360 Secure SkillHub
360 安全技能中心

YouTube Publisher

基于 YouTube Data API v3 + OAuth 2.0 的 Python 命令行工具,可上传视频并设置标题、描述、标签、分类、隐私状态与缩略图,支持加入播放列表、查询频道信息、列出已上传视频与播放列表,并自动刷新 Token;需手动配置 Google Cloud OAuth 凭证。

pdpaer
pdpaer
热度 94.11
最近更新 2026-05-11 17:26:57
分类:营销依赖:代码执行 / 第三方 API / 读写文件应用场景:社交媒体 / 自动化脚本 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add youtube-publisher
Metadata
name
youtube-publisher
description
YouTube 视频自动上传工具。支持视频上传、设置标题/描述/标签/缩略图、管理频道和播放列表。基于 YouTube Data API v3 + OAuth 2.0。
metadata
{"openclaw":{"emoji":"🎬"}}

youtube-publisher

YouTube 视频自动上传与管理工具

基于 YouTube Data API v3 + OAuth 2.0,支持从命令行自动上传视频到 YouTube。

架构

本地 Mac (Python)
    ↓ OAuth 2.0 认证
Google YouTube Data API v3
    ↓ 断点续传上传
YouTube 频道

功能

  • ✅ 视频上传(支持大文件断点续传,10MB 分块)
  • ✅ 设置标题、描述、标签、分类
  • ✅ 隐私状态控制(private / public / unlisted)
  • ✅ 自定义缩略图
  • ✅ 添加到播放列表
  • ✅ 频道信息查询
  • ✅ 已上传视频列表
  • ✅ OAuth 2.0 自动刷新 Token

快速开始

第一步:Google Cloud Console 配置

⚠️ 这一步必须手动完成,只需做一次。

  1. 打开 Google Cloud Console
  2. 创建新项目(或选择已有项目)
  3. 启用 API:
    • 搜索 "YouTube Data API v3" → 点击 "启用"
  4. 创建 OAuth 凭证:
    • 左侧菜单 → "API 和服务" → "凭据"
    • "创建凭据" → "OAuth 客户端 ID"
    • 应用类型选 "桌面应用"
    • 名称随意(如 "OpenClaw YouTube")
    • 下载 JSON 文件
  5. 保存凭证文件:
    mv ~/Downloads/client_secret_*.json ~/.openclaw/workspace/skills/youtube-publisher/client_secret.json
    

注意: 如果项目处于"测试"状态,需要在 OAuth 同意屏幕 → 测试用户 中添加你的 Google 邮箱。

第二步:安装依赖

pip3 install google-api-python-client google-auth-oauthlib google-auth-httplib2

第三步:首次授权

python3 {baseDir}/scripts/youtube_upload.py auth

浏览器会自动打开 Google 授权页面,登录并授权后,Token 自动保存到本地。后续使用无需再授权。

第四步:上传视频

# 基本上传(默认 private)
python3 {baseDir}/scripts/youtube_upload.py upload video.mp4 \
  --title "视频标题" \
  --description "视频描述" \
  --tags AI OpenClaw 自动化

# 公开发布 + 设置缩略图
python3 {baseDir}/scripts/youtube_upload.py upload video.mp4 \
  --title "OpenClaw 实战教程" \
  --description "详细教程..." \
  --tags AI OpenClaw 教程 \
  --privacy public \
  --thumbnail cover.png \
  --category 28

# 上传并添加到播放列表
python3 {baseDir}/scripts/youtube_upload.py upload video.mp4 \
  --title "系列教程 #1" \
  --playlist PLxxxxxx

其他命令

# 查看频道信息
python3 {baseDir}/scripts/youtube_upload.py channels

# 列出最近上传的视频
python3 {baseDir}/scripts/youtube_upload.py list
python3 {baseDir}/scripts/youtube_upload.py list -n 20

# 列出播放列表
python3 {baseDir}/scripts/youtube_upload.py playlists

在 OpenClaw 中使用

直接对 Agent 说:

"帮我把 ~/Videos/demo.mp4 上传到 YouTube,标题是 xxx,标签加上 AI 和教程"

Agent 会自动调用上传脚本完成发布。

视频分类 ID 参考

分类 ID 分类 ID
电影/动画 1 游戏 20
汽车/交通 2 博客/Vlog 22
音乐 10 喜剧 23
宠物/动物 15 娱乐 24
体育 17 新闻 25
短片 18 时尚 26
旅游/活动 19 教育 27
科技 28

隐私状态

  • private — 仅自己可见(默认,推荐先用此状态检查后再公开)
  • unlisted — 不公开列出,有链接可访问
  • public — 公开发布

故障排查

1. "client_secret.json 找不到"

请按照"第一步"从 Google Cloud Console 下载 OAuth 凭证文件。

2. "Access blocked: This app's request is invalid"

OAuth 同意屏幕未配置。在 Google Cloud Console → OAuth 同意屏幕 → 设置。

3. "The user has exceeded the number of videos they may upload"

YouTube API 有每日上传配额限制(通常约 6 个视频/天)。

4. "缩略图设置失败"

自定义缩略图需要频道已通过电话号码验证。

5. Token 过期

脚本会自动刷新 Token。如果持续失败,删除 token.json 重新授权:

rm ~/.openclaw/workspace/skills/youtube-publisher/token.json
python3 {baseDir}/scripts/youtube_upload.py auth

文件结构

youtube-publisher/
├── SKILL.md              # 本文档
├── client_secret.json    # Google OAuth 凭证(需自行配置)
├── token.json            # 自动生成的访问令牌
└── scripts/
    └── youtube_upload.py  # 上传脚本

参考资料