{"skill":{"slug":"youtube-publisher","displayName":"YouTube Publisher","summary":"YouTube 视频自动上传工具。支持视频上传、设置标题/描述/标签/缩略图、管理频道和播放列表。基于 YouTube Data API v3 + OAuth 2.0。","description":"---\nname: youtube-publisher\ndescription: \"YouTube 视频自动上传工具。支持视频上传、设置标题/描述/标签/缩略图、管理频道和播放列表。基于 YouTube Data API v3 + OAuth 2.0。\"\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🎬\",\n      },\n  }\n---\n\n# youtube-publisher\n\n**YouTube 视频自动上传与管理工具**\n\n基于 YouTube Data API v3 + OAuth 2.0，支持从命令行自动上传视频到 YouTube。\n\n## 架构\n\n```\n本地 Mac (Python)\n    ↓ OAuth 2.0 认证\nGoogle YouTube Data API v3\n    ↓ 断点续传上传\nYouTube 频道\n```\n\n## 功能\n\n- ✅ 视频上传（支持大文件断点续传，10MB 分块）\n- ✅ 设置标题、描述、标签、分类\n- ✅ 隐私状态控制（private / public / unlisted）\n- ✅ 自定义缩略图\n- ✅ 添加到播放列表\n- ✅ 频道信息查询\n- ✅ 已上传视频列表\n- ✅ OAuth 2.0 自动刷新 Token\n\n## 快速开始\n\n### 第一步：Google Cloud Console 配置\n\n**⚠️ 这一步必须手动完成，只需做一次。**\n\n1. 打开 [Google Cloud Console](https://console.cloud.google.com)\n2. 创建新项目（或选择已有项目）\n3. **启用 API：**\n   - 搜索 \"YouTube Data API v3\" → 点击 \"启用\"\n4. **创建 OAuth 凭证：**\n   - 左侧菜单 → \"API 和服务\" → \"凭据\"\n   - \"创建凭据\" → \"OAuth 客户端 ID\"\n   - 应用类型选 **\"桌面应用\"**\n   - 名称随意（如 \"OpenClaw YouTube\"）\n   - 下载 JSON 文件\n5. **保存凭证文件：**\n   ```bash\n   mv ~/Downloads/client_secret_*.json ~/.openclaw/workspace/skills/youtube-publisher/client_secret.json\n   ```\n\n> **注意：** 如果项目处于\"测试\"状态，需要在 OAuth 同意屏幕 → 测试用户 中添加你的 Google 邮箱。\n\n### 第二步：安装依赖\n\n```bash\npip3 install google-api-python-client google-auth-oauthlib google-auth-httplib2\n```\n\n### 第三步：首次授权\n\n```bash\npython3 {baseDir}/scripts/youtube_upload.py auth\n```\n\n浏览器会自动打开 Google 授权页面，登录并授权后，Token 自动保存到本地。后续使用无需再授权。\n\n### 第四步：上传视频\n\n```bash\n# 基本上传（默认 private）\npython3 {baseDir}/scripts/youtube_upload.py upload video.mp4 \\\n  --title \"视频标题\" \\\n  --description \"视频描述\" \\\n  --tags AI OpenClaw 自动化\n\n# 公开发布 + 设置缩略图\npython3 {baseDir}/scripts/youtube_upload.py upload video.mp4 \\\n  --title \"OpenClaw 实战教程\" \\\n  --description \"详细教程...\" \\\n  --tags AI OpenClaw 教程 \\\n  --privacy public \\\n  --thumbnail cover.png \\\n  --category 28\n\n# 上传并添加到播放列表\npython3 {baseDir}/scripts/youtube_upload.py upload video.mp4 \\\n  --title \"系列教程 #1\" \\\n  --playlist PLxxxxxx\n```\n\n## 其他命令\n\n```bash\n# 查看频道信息\npython3 {baseDir}/scripts/youtube_upload.py channels\n\n# 列出最近上传的视频\npython3 {baseDir}/scripts/youtube_upload.py list\npython3 {baseDir}/scripts/youtube_upload.py list -n 20\n\n# 列出播放列表\npython3 {baseDir}/scripts/youtube_upload.py playlists\n```\n\n## 在 OpenClaw 中使用\n\n直接对 Agent 说：\n\n```\n\"帮我把 ~/Videos/demo.mp4 上传到 YouTube，标题是 xxx，标签加上 AI 和教程\"\n```\n\nAgent 会自动调用上传脚本完成发布。\n\n## 视频分类 ID 参考\n\n| 分类 | ID | 分类 | ID |\n|------|-----|------|-----|\n| 电影/动画 | 1 | 游戏 | 20 |\n| 汽车/交通 | 2 | 博客/Vlog | 22 |\n| 音乐 | 10 | 喜剧 | 23 |\n| 宠物/动物 | 15 | 娱乐 | 24 |\n| 体育 | 17 | 新闻 | 25 |\n| 短片 | 18 | 时尚 | 26 |\n| 旅游/活动 | 19 | **教育** | **27** |\n| | | **科技** | **28** |\n\n## 隐私状态\n\n- `private` — 仅自己可见（默认，推荐先用此状态检查后再公开）\n- `unlisted` — 不公开列出，有链接可访问\n- `public` — 公开发布\n\n## 故障排查\n\n### 1. \"client_secret.json 找不到\"\n请按照\"第一步\"从 Google Cloud Console 下载 OAuth 凭证文件。\n\n### 2. \"Access blocked: This app's request is invalid\"\nOAuth 同意屏幕未配置。在 Google Cloud Console → OAuth 同意屏幕 → 设置。\n\n### 3. \"The user has exceeded the number of videos they may upload\"\nYouTube API 有每日上传配额限制（通常约 6 个视频/天）。\n\n### 4. \"缩略图设置失败\"\n自定义缩略图需要频道已通过电话号码验证。\n\n### 5. Token 过期\n脚本会自动刷新 Token。如果持续失败，删除 `token.json` 重新授权：\n```bash\nrm ~/.openclaw/workspace/skills/youtube-publisher/token.json\npython3 {baseDir}/scripts/youtube_upload.py auth\n```\n\n## 文件结构\n\n```\nyoutube-publisher/\n├── SKILL.md              # 本文档\n├── client_secret.json    # Google OAuth 凭证（需自行配置）\n├── token.json            # 自动生成的访问令牌\n└── scripts/\n    └── youtube_upload.py  # 上传脚本\n```\n\n## 参考资料\n\n- [YouTube Data API v3](https://developers.google.com/youtube/v3)\n- [Google Cloud Console](https://console.cloud.google.com)\n- [OAuth 2.0 配置指南](https://developers.google.com/youtube/v3/guides/auth/installed-apps)\n- [视频上传 API](https://developers.google.com/youtube/v3/docs/videos/insert)\n- [API 配额说明](https://developers.google.com/youtube/v3/determine_quota_cost)\n","tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":2482,"installsAllTime":93,"installsCurrent":11,"stars":8,"versions":1},"createdAt":1771850717793,"updatedAt":1778491617178},"latestVersion":{"version":"1.0.0","createdAt":1771850717793,"changelog":"初始版本：YouTube Data API v3 + OAuth 2.0 视频自动上传，支持标题/描述/标签/缩略图/隐私设置/频道管理","license":null},"metadata":{"setup":[],"os":null,"systems":null},"owner":{"handle":"pdpaer","userId":"s1764ydr9j5js1zjsjnzagph95885fz7","displayName":"leogao","image":"https://avatars.githubusercontent.com/u/232205444?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1779952802102}}