关于 youtube-full
youtube-full 是用于在脚本和应用中自动执行 YouTube API 任务的技能,面向需要管理视频、字幕、频道、评论、播放列表或上传内容的开发者和工作流。
主要功能
- 01获取、搜索和删除视频
- 02提取视频字幕
- 03访问频道统计数据
- 04读取和发布评论
- 05管理播放列表
- 06上传视频
适用场景
- 01提取字幕用于内容分析
- 02查看频道表现指标
- 03在媒体应用中管理播放列表
- 04上传用户生成的视频
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill youtube-full安装后在 Claude Code 中输入/youtube-full确认已加载。
详细介绍
youtube-full
用途
此技能提供用于与 YouTube API 交互的工具,可处理视频管理、字幕提取、频道分析、评论、播放列表和上传,从而在脚本或应用程序中实现自动化。
适用场景
当任务涉及 YouTube 数据时使用此技能,例如在内容分析中获取视频字幕、上传用户生成的视频、分析频道表现以生成报告,或在媒体应用中管理播放列表。当可使用 Google API,且任务需要实时提取或操作数据时,也可使用此技能。
主要功能
- 视频管理:使用 YouTube Data API v3 端点(如 /youtube/v3/videos)检索、搜索或删除视频。
- 字幕提取:通过 /youtube/v3/captions 端点获取视频字幕,支持英语等语言以及自动生成的字幕。
- 频道分析:从 /youtube/v3/channels 访问观看次数和订阅者数据等指标,包括日期范围参数。
- 评论:使用 /youtube/v3/commentThreads 阅读或发布评论串,并通过审核标记处理垃圾信息。
- 播放列表:通过 /youtube/v3/playlists 创建、更新或删除播放列表,包括添加视频条目。
- 上传:通过 multipart POST 请求上传视频至 /youtube/v3/videos,大型文件需要可续传会话。
使用模式
在 AI Agent 代码中通过函数调用使用此技能,并传入视频 ID 或 API 密钥等必需参数。请务必先设置 $YOUTUBE_API_KEY 环境变量,再检查身份验证。批量操作时,可将请求放在循环中,例如处理多个视频字幕。POST 请求使用 JSON 负载,GET 请求使用查询参数。通过在 API 调用之间添加延迟来处理速率限制,例如每 10 次请求后休眠 1 秒。
常用命令/API
- 列出视频:使用带查询字符串参数的 GET https://www.googleapis.com/youtube/v3/search?part=snippet&q=query&key=$YOUTUBE_API_KEY。
- 提取字幕:GET https://www.googleapis.com/youtube/v3/captions?videoId=VIDEO_ID&key=$YOUTUBE_API_KEY,然后解析 JSON 响应以获取文本。
- 获取视频详情的代码片段:
import requests; import os api_key = os.environ.get('YOUTUBE_API_KEY') response = requests.get(f'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=VIDEO_ID&key={api_key}') data = response.json() - 上传视频:向 https://www.googleapis.com/upload/youtube/v3/videos?part=snippet,status 发送 POST 请求,使用 multipart/form-data,并包含 title 和 file 等字段。
- 频道分析:GET https://www.googleapis.com/youtube/v3/channels?part=statistics&id=CHANNEL_ID&key=$YOUTUBE_API_KEY,返回包含 viewCount 等指标的 JSON。
- 播放列表管理:POST https://www.googleapis.com/youtube/v3/playlists?part=snippet,并使用 JSON 请求体 {"snippet": {"title": "New Playlist"}}。
集成说明
在 AI Agent 的代码库中导入此技能,并确保在环境中设置 $YOUTUBE_API_KEY,以便使用 OAuth 或 API 密钥进行身份验证。可使用 JSON 等配置文件存储端点默认值,例如 {"base_url": "https://www.googleapis.com/youtube/v3"}。为确保安全,请勿将密钥硬编码;应使用 Python 的 google-auth 等库。如果使用 OAuth,请重定向用户以交换令牌;若只需简单的 API 访问,则使用 $YOUTUBE_API_KEY 即可。在沙盒环境中测试集成,避免超出配额。
错误处理
检查响应中的 HTTP 状态码;例如,如果 status == 403,则记录 "Quota exceeded" 并在延迟后重试。通过在请求前验证输入来处理无效视频 ID(错误代码 404)等特定 YouTube 错误。使用代码中的 try-except 块处理网络问题:
try:
response = requests.get(url)
response.raise_for_status()
except requests.exceptions.HTTPError as err:
print(f"Error: {err} - Check API key or parameters")
对于速率限制错误(例如,带有配额消息的 403),请实施指数退避策略,等待 2^x 秒后重试,最多重试 3 次。记录所有错误及上下文信息,例如所用的 API 端点和参数。
使用示例
- 提取指定视频的文字记录:首先,设置 $YOUTUBE_API_KEY。然后,使用 GET https://www.googleapis.com/youtube/v3/captions?videoId=VIDEO_ID&key=$YOUTUBE_API_KEY 调用 API。在代码中,解析响应以提取文本:import json; transcript = [item['text'] for item in response.json()['items']]。将输出保存到文件,以便后续处理。
- 将视频上传到频道:确保已设置 $YOUTUBE_API_KEY,并拥有上传权限。使用 POST https://www.googleapis.com/upload/youtube/v3/videos,并通过 multipart 数据包含视频文件和类似 {"snippet": {"title": "Uploaded Video"}} 的 JSON 元数据。上传后,从响应中获取视频 ID,并根据需要更新其状态。
图关系
- 关联:google-api(用于共享身份验证和端点)
- 依赖:authentication-service(用于处理 $YOUTUBE_API_KEY)
- 连接:video-processing skills(用于提取后的分析)
- 集成:storage-services(用于管理上传的文件)