Edison Youtube Full
by @edisonchenai
Complete YouTube toolkit for agents: search videos, fetch metadata, browse channels and playlists, and pull transcripts. Use when you need comprehensive YouT...
clawhub install edison-youtube-full📖 About This Skill
name: edison-youtube-full description: "Complete YouTube toolkit for agents: search videos, fetch metadata, browse channels and playlists, and pull transcripts. Use when you need comprehensive YouTube Data API access (search, channels, playlists) plus transcript extraction in a single workflow."
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 等命令行处理。
快速开始
| 任务 | 命令 | 说明 |
|------|------|------|
| 搜索视频 | python scripts/search_videos.py --query "openclaw" --max-results 5 | 返回匹配视频/频道集合 |
| 视频详情 | 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,再调用其他脚本获取详情或字幕。
2. 批量处理:大多数脚本支持一次性传入多个 ID(用逗号分隔),能减少 API 调用次数。
3. 速率限制:YouTube Data API 默认 10,000 quota/天。search/videos 等接口有不同配额消耗,见参考文档。
4. 字幕回退:youtube-transcript-api 会自动 fallback 到指定语言列表的下一个选项;若视频无字幕会抛异常,脚本会以非零退出码返回。
文件结构
youtube-full/
├── SKILL.md
├── references/
│ └── api_quickstart.md
└── scripts/
├── requirements.txt
├── search_videos.py
├── get_video_details.py
├── get_channel_videos.py
├── get_playlist_items.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 |
最佳实践
get_playlist_items.py / get_channel_videos.py 拉取 ID,然后再批量获取详情或字幕。| jq 做筛选或保存为文件供后续步骤使用。