YouTube Full Skill
本技能把常见的 YouTube 工作流(搜索、视频/频道/播放列表元数据、字幕抓取)封装成可复用脚本,方便在单个会话里串联使用。
依赖与准备
- 1. YouTube Data API Key
- 到
Google Cloud Console 启用 YouTube Data API v3,并创建 API Key。
- 在当前 shell 设置:
export YOUTUBE_API_KEY="YOUR_KEY"
或者在运行脚本时使用
--api-key 参数。
- 2. Python 依赖(建议放在虚拟环境):
pip install -r scripts/requirements.txt
-
requests:调用官方 REST API
-
youtube-transcript-api:抓取字幕
- 3. 所有脚本默认输出 JSON(stdout),方便直接被上游工具读取,或通过
jq 等命令行处理。
快速开始
| 任务 | 命令 | 说明 |
|---|
| 搜索视频 | INLINECODE4 | 返回匹配视频/频道集合 |
| 视频详情 |
python scripts/get_video_details.py --ids dQw4w9WgXcQ | 支持一次查询多个视频 ID(逗号分隔) |
| 频道最新上传 |
python scripts/get_channel_videos.py --channel-id UC_x5XG1OV2P6uZZ5FSM9Ttw --max-results 10 | 可指定 order=latest/popular |
| 播放列表内容 |
python scripts/get_playlist_items.py --playlist-id PLBCF2DAC6FFB574DE | 支持分页(自动拉全量) |
| 字幕抓取 |
python scripts/get_transcript.py --video-id dQw4w9WgXcQ --languages zh-CN,en | 按语言优先级尝试抓取 |
🌐 更多 API 字段参考 references/api_quickstart.md。
工作流建议
- 1. 组合式使用:先用
search_videos.py 拿到 videoId/channelId,再调用其他脚本获取详情或字幕。 - 批量处理:大多数脚本支持一次性传入多个 ID(用逗号分隔),能减少 API 调用次数。
- 速率限制:YouTube Data API 默认 10,000 quota/天。
search/videos 等接口有不同配额消耗,见参考文档。 - 字幕回退:
youtube-transcript-api 会自动 fallback 到指定语言列表的下一个选项;若视频无字幕会抛异常,脚本会以非零退出码返回。
文件结构
CODEBLOCK2
故障排查
| 问题 | 可能原因 | 解决办法 |
|---|
| HTTP 403 / quotaExceeded | API Key 配额不足或未启用服务 | 去 GCP 控制台检查配额、启用结算或更换 Key |
| 找不到字幕 |
视频关闭字幕或无匹配语言 | 换语言列表、改用自动字幕 (
--languages auto) |
|
HttpAccessTokenRefreshError | 使用 OAuth token 且已过期 | 重新获取 token 或改用 API Key |
| CLI 报
ModuleNotFoundError | 缺少依赖 | 重新执行
pip install -r scripts/requirements.txt |
最佳实践
- - 把常用命令写成脚本/Makefile,方便一键获取多条数据。
- 对于需要批量处理的视频列表,优先调用
get_playlist_items.py / get_channel_videos.py 拉取 ID,然后再批量获取详情或字幕。 - 脚本输出 JSON,建议直接
| jq 做筛选或保存为文件供后续步骤使用。
YouTube Full Skill
本技能将常见的YouTube工作流(搜索、视频/频道/播放列表元数据、字幕抓取)封装为可复用的脚本,方便在单个会话中串联使用。
依赖与准备
- 1. YouTube Data API Key
- 前往
Google Cloud Console 启用 YouTube Data API v3,并创建 API Key。
- 在当前 shell 中设置:
bash
export YOUTUBE
APIKEY=YOUR_KEY
或者在运行脚本时使用 --api-key 参数。
- 2. Python 依赖(建议放在虚拟环境中):
bash
pip install -r scripts/requirements.txt
- requests:调用官方 REST API
- youtube-transcript-api:抓取字幕
- 3. 所有脚本默认输出 JSON(stdout),方便直接被上游工具读取,或通过 jq 等命令行工具处理。
快速开始
| 任务 | 命令 | 说明 |
|---|
| 搜索视频 | python scripts/searchvideos.py --query openclaw --max-results 5 | 返回匹配的视频/频道集合 |
| 视频详情 |
python scripts/getvideo_details.py --ids dQw4w9WgXcQ | 支持一次查询多个视频 ID(逗号分隔) |
| 频道最新上传 | python scripts/get
channelvideos.py --channel-id UC_x5XG1OV2P6uZZ5FSM9Ttw --max-results 10 | 可指定 order=latest/popular |
| 播放列表内容 | python scripts/get
playlistitems.py --playlist-id PLBCF2DAC6FFB574DE | 支持分页(自动拉取全量) |
| 字幕抓取 | python scripts/get_transcript.py --video-id dQw4w9WgXcQ --languages zh-CN,en | 按语言优先级尝试抓取 |
🌐 更多 API 字段请参考 references/api_quickstart.md。
工作流建议
- 1. 组合式使用:先用 search_videos.py 获取 videoId/channelId,再调用其他脚本获取详情或字幕。
- 批量处理:大多数脚本支持一次性传入多个 ID(用逗号分隔),可减少 API 调用次数。
- 速率限制:YouTube Data API 默认 10,000 quota/天。search/videos 等接口有不同的配额消耗,详见参考文档。
- 字幕回退:youtube-transcript-api 会自动回退到指定语言列表中的下一个选项;若视频无字幕则会抛出异常,脚本将以非零退出码返回。
文件结构
youtube-full/
├── SKILL.md
├── references/
│ └── api_quickstart.md
└── scripts/
├── requirements.txt
├── search_videos.py
├── getvideodetails.py
├── getchannelvideos.py
├── getplaylistitems.py
└── get_transcript.py
故障排查
| 问题 | 可能原因 | 解决办法 |
|---|
| HTTP 403 / quotaExceeded | API Key 配额不足或未启用服务 | 前往 GCP 控制台检查配额、启用结算或更换 Key |
| 找不到字幕 |
视频关闭字幕或无匹配语言 | 更换语言列表、改用自动字幕 (--languages auto) |
| HttpAccessTokenRefreshError | 使用 OAuth token 且已过期 | 重新获取 token 或改用 API Key |
| CLI 报 ModuleNotFoundError | 缺少依赖 | 重新执行 pip install -r scripts/requirements.txt |
最佳实践
- - 将常用命令写成脚本/Makefile,方便一键获取多条数据。
- 对于需要批量处理的视频列表,优先调用 getplaylistitems.py / getchannelvideos.py 拉取 ID,然后再批量获取详情或字幕。
- 脚本输出 JSON,建议直接 | jq 进行筛选或保存为文件供后续步骤使用。