mcpField
Y
youtube-automation

youtube-automation

github.com/sickn33营销与增长48.8k279 次安装今天更新
代码仓库

关于 youtube-automation

youtube-automation 是通过 Composio 的 YouTube 工具包和 Rube MCP 操作 YouTube 的技能,涵盖视频发布、搜索、播放列表、频道指标、订阅和评论,并强调连接与授权检查。

主要功能

  1. 01上传和更新视频
  2. 02搜索视频、频道和播放列表
  3. 03创建和管理播放列表
  4. 04获取频道与视频指标
  5. 05管理订阅和评论

适用场景

  1. 01发布视频并设置元数据
  2. 02查找视频或播放列表内容
  3. 03查看频道和视频统计
  4. 04管理频道订阅或查看评论

MCP 相关

通过 Rube MCP 使用 Composio 的 YouTube 工具包。需要连接 Rube MCP 并启用 YouTube 连接;操作前应先获取工具架构。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill youtube-automation

安装后在 Claude Code 中输入/youtube-automation确认已加载。

详细介绍

通过 Rube MCP 自动执行 YouTube 操作

通过 Rube MCP 使用 Composio 的 YouTube 工具包自动执行 YouTube 操作。

前提条件

  • 必须已连接 Rube MCP(可使用 RUBE_SEARCH_TOOLS)
  • 通过 RUBE_MANAGE_CONNECTIONS 建立有效的 YouTube 连接,工具包为 youtube
  • 始终先调用 RUBE_SEARCH_TOOLS,获取当前工具架构

设置

获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥——添加此端点即可使用。

  1. 确认 RUBE_SEARCH_TOOLS 可以响应,以验证 Rube MCP 是否可用
  2. 使用工具包 youtube 调用 RUBE_MANAGE_CONNECTIONS
  3. 如果连接状态不是 ACTIVE,请访问返回的授权链接,完成 Google OAuth
  4. 运行任何工作流前,确认连接状态显示为 ACTIVE

发布与账号边界

确认连接的频道以及目标视频/播放列表 ID 无误。更改上传视频的公开状态、发表评论和订阅频道都需要用户明确授权;未经授权发布时,请先使用私密暂存。确认媒体的权利/许可,并妥善保护私密/不公开链接。进行局部更新前先读取现有元数据,以免端点采用替换语义时意外清除未提供的可变字段。记录返回的上传/视频 ID,并在重试不确定的上传之前检查处理状态。通过实时架构和 YouTube 官方文档核实当前配额费用/限制;下方数值为历史示例。

核心工作流

1. 上传和管理视频

适用场景:用户想要上传视频或更新视频元数据

工具调用顺序:

  1. YOUTUBE_UPLOAD_VIDEO - 上传新视频[必需]
  2. YOUTUBE_UPDATE_VIDEO - 更新标题、说明、标签、隐私设置[可选]
  3. YOUTUBE_UPDATE_THUMBNAIL - 设置自定义缩略图[可选]

关键参数:

  • title:视频标题(最多 100 个字符)
  • description:视频说明(最多 5000 字节)
  • tags:关键词标签数组
  • categoryId:YouTube 类别 ID(例如,People & Blogs 对应 '22')
  • privacyStatus:'public'、'private' 或 'unlisted'
  • videoFilePath:包含 {name, mimetype, s3key} 的视频文件对象

注意事项:

  • UPLOAD_VIDEO 会消耗大量配额;仅更改元数据时,优先使用 UPDATE_VIDEO
  • videoFilePath 必须是包含 s3key 的对象,不能是原始文件路径或 URL
  • 标签总长度(含分隔符)不得超过 500 个字符
  • 标签中的尖括号 < > 会被自动移除
  • 说明长度限制为 5000 字节,而非字符数(多字节字符占用更多字节)
2. 搜索 YouTube 内容

适用场景:用户想查找视频、频道或播放列表

工具调用顺序:

  1. YOUTUBE_SEARCH_YOU_TUBE - 搜索内容[必需]
  2. YOUTUBE_VIDEO_DETAILS - 获取指定视频的完整详情[可选]
  3. YOUTUBE_GET_VIDEO_DETAILS_BATCH - 获取多个视频的详情[可选]

关键参数:

  • q:搜索查询(支持精确短语、排除项和频道句柄)
  • type:'video'、'channel' 或 'playlist'
  • maxResults:每页结果数(1-50)
  • pageToken:用于分页

注意事项:

  • 搜索端点仅返回 snippet 部分;统计数据请使用 VIDEO_DETAILS
  • 搜索结果限制取决于参数/账号;分页不能证明已获取频道的全部内容
  • 搜索的配额成本较高(100 个单位),而列表端点为 1 个单位
  • BATCH 视频详情接口单次调用的实用上限约为 50 个 ID;更大的集合应分批处理
3. 管理播放列表

适用场景:用户想要创建播放列表或管理播放列表内容

工具调用顺序:

  1. YOUTUBE_LIST_USER_PLAYLISTS - 列出用户现有的播放列表 [可选]
  2. YOUTUBE_CREATE_PLAYLIST - 创建新的播放列表 [可选]
  3. YOUTUBE_ADD_VIDEO_TO_PLAYLIST - 将视频添加到播放列表 [可选]
  4. YOUTUBE_LIST_PLAYLIST_ITEMS - 列出播放列表中的视频 [可选]

关键参数:

  • playlistId:播放列表 ID(用户创建的播放列表以 'PL...' 开头,上传内容播放列表以 'UU...' 开头)
  • part:要包含的资源部分(例如,'snippet,contentDetails')
  • maxResults:每页项目数(1-50)
  • pageToken:上一响应中的分页令牌

注意事项:

  • 不要将频道 ID 作为 playlistId 传入;请从频道的 contentDetails 中读取上传内容播放列表 ID
  • 大型播放列表需要通过 pageToken 分页;持续使用 nextPageToken,直到该字段不存在
  • items[].id 不是 videoId;请使用 items[].snippet.resourceId.videoId
  • 允许创建同名播放列表;请先检查现有播放列表
4. 获取频道和视频分析数据

适用场景:用户想要分析频道表现或视频指标

工具调用顺序:

  1. YOUTUBE_GET_CHANNEL_ID_BY_HANDLE - 将用户名句柄解析为频道 ID [前置步骤]
  2. YOUTUBE_GET_CHANNEL_STATISTICS - 获取频道订阅者数、观看次数和视频数 [必需]
  3. YOUTUBE_LIST_CHANNEL_VIDEOS - 列出频道的所有视频 [可选]
  4. YOUTUBE_GET_VIDEO_DETAILS_BATCH - 获取每个视频的统计数据 [可选]
  5. YOUTUBE_GET_CHANNEL_ACTIVITIES - 获取近期频道活动 [可选]

关键参数:

  • channelId:频道 ID('UC...')、用户名句柄('@handle')或 'me'
  • forHandle:频道用户名句柄(例如,'@Google')
  • id:以逗号分隔的视频 ID,用于批量获取详情
  • parts:要包含的资源部分(例如,'snippet,statistics')

注意事项:

  • 频道统计数据是生命周期累计总数,而非特定时间段的数据
  • 对于私有或已删除的视频,批量获取视频详情时返回的项目可能少于请求数量
  • 响应数据可能嵌套在 data 或 data_preview 下,请采用稳健的解析方式
  • contentDetails.duration 使用 ISO 8601 格式(例如,'PT4M13S')
5. 管理订阅和评论

适用场景:用户想要订阅频道或查看视频评论

工具调用顺序:

  1. YOUTUBE_SUBSCRIBE_CHANNEL - 订阅频道 [可选]
  2. YOUTUBE_UNSUBSCRIBE_CHANNEL - 取消订阅频道 [可选]
  3. YOUTUBE_LIST_USER_SUBSCRIPTIONS - 列出订阅内容 [可选]
  4. YOUTUBE_LIST_COMMENT_THREADS - 列出视频评论 [可选]

关键参数:

  • channelId:要订阅或取消订阅的频道
  • videoId:评论串对应的视频 ID
  • maxResults:每页结果数
  • pageToken:分页令牌

注意事项:

  • 订阅已订阅的频道可能会返回错误
  • 评论串会返回顶级评论,每条评论最多包含 5 条回复
  • 某些视频可能已禁用评论
  • 取消订阅需要订阅 ID,而非频道 ID

常见模式

解析频道 ID

将用户名句柄解析为频道 ID:

1. Call YOUTUBE_GET_CHANNEL_ID_BY_HANDLE with '@handle'
2. Extract channelId from response
3. Use in subsequent channel operations

上传内容播放列表:

1. Get channel ID (starts with 'UC')
2. Read contentDetails.relatedPlaylists.uploads from the actual channel resource
3. Use with LIST_PLAYLIST_ITEMS to enumerate all videos
分页
  • 设置 maxResults(每页最多 50 条)
  • 检查响应中是否包含 nextPageToken
  • 在下一个请求中将令牌作为 pageToken 传入
  • 持续请求,直到 nextPageToken 不存在
批量获取视频详情
  • 从搜索结果或播放列表中收集视频 ID
  • 将其分成每组约 50 个 ID
  • 对每组调用 GET_VIDEO_DETAILS_BATCH
  • 合并各组结果

已知陷阱

配额管理:

  • YouTube API 有每日配额限制(默认 10,000 个单位)
  • 规划批量操作前,请确认各方法的配额消耗;不要假设历史上的上传或列表操作配额消耗仍然适用。
  • 尽可能优先使用列表端点,而非搜索端点。
  • 监控配额使用情况,避免触及每日上限。

ID 格式:

  • 视频 ID:由 11 个字母数字字符组成
  • 频道 ID:以 UC 开头,后接 22 个字符
  • 播放列表 ID:以 PL(用户)或 UU(上传内容)开头
  • 不要混淆频道 ID 和播放列表 ID

缩略图:

  • 自定义缩略图需要频道通过手机验证
  • 必须为 JPG、PNG 或 GIF 格式;文件大小低于 2MB
  • 建议分辨率:1280x720(宽高比为 16:9)

响应解析:

  • 统计值以字符串而非整数形式返回;进行数学运算前请先转换类型
  • 时长采用 ISO 8601 格式(PT#H#M#S)
  • 批量响应中的数据可能位于不同的键下

快速参考

任务工具标识关键参数
上传视频YOUTUBE_UPLOAD_VIDEOtitle, description, tags, categoryId, privacyStatus, videoFilePath
更新视频YOUTUBE_UPDATE_VIDEOvideo_id, title, description, tags
设置缩略图YOUTUBE_UPDATE_THUMBNAILvideoId, thumbnailUrl
搜索 YouTubeYOUTUBE_SEARCH_YOU_TUBEq, type, maxResults
视频详情YOUTUBE_VIDEO_DETAILSid, part
批量获取视频详情YOUTUBE_GET_VIDEO_DETAILS_BATCHid, parts
列出播放列表YOUTUBE_LIST_USER_PLAYLISTSmaxResults, pageToken
创建播放列表YOUTUBE_CREATE_PLAYLIST(请查看架构)
添加到播放列表YOUTUBE_ADD_VIDEO_TO_PLAYLIST(请查看架构)
列出播放列表项目YOUTUBE_LIST_PLAYLIST_ITEMSplaylistId, maxResults
频道统计信息YOUTUBE_GET_CHANNEL_STATISTICSid/forHandle/mine
列出频道视频YOUTUBE_LIST_CHANNEL_VIDEOSchannelId, maxResults
通过账号标识获取频道 IDYOUTUBE_GET_CHANNEL_ID_BY_HANDLEchannel_handle
订阅YOUTUBE_SUBSCRIBE_CHANNELchannelId
列出订阅YOUTUBE_LIST_USER_SUBSCRIPTIONS(请查看架构)
列出评论YOUTUBE_LIST_COMMENT_THREADSvideoId
频道动态YOUTUBE_GET_CHANNEL_ACTIVITIES(请查看架构)

适用场景

当需要执行概览中描述的工作流或操作时,可使用此技能。

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为环境特定验证、测试或专家审查的替代品。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请暂停并请求澄清。

评论

支持 Markdown