mcpField
Y
youtube-automation

youtube-automation

github.com/composiohq营销与增长78.4k97 次安装14 周前更新
代码仓库

关于 youtube-automation

面向 YouTube 频道运营者和内容团队的自动化技能,通过 Rube MCP 与 Composio YouTube 工具包管理视频、发现内容、处理播放列表、分析数据及查看评论。

主要功能

  1. 01上传和编辑视频
  2. 02搜索视频、频道和播放列表
  3. 03创建和管理播放列表
  4. 04获取频道及视频数据
  5. 05管理订阅并查看评论

适用场景

  1. 01上传视频并设置元数据
  2. 02按查询查找视频或频道
  3. 03将视频整理到播放列表
  4. 04查看频道统计和视频评论

MCP 相关

通过 Rube MCP 调用 Composio 的 YouTube 工具包,需要已连接 YouTube 账号。

安装

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

$npx skills add https://github.com/composiohq/awesome-claude-skills --skill youtube-automation

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

详细介绍

通过 Rube MCP 自动执行 YouTube 操作

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

工具包文档:composio.dev/toolkits/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

核心工作流

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
  • 搜索结果总数上限为 500 项
  • 搜索的配额成本较高(100 个单位),而列表端点仅需 1 个单位
  • 批量获取视频详情时,每次调用实际最多处理约 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('UC...')作为播放列表 ID 传入;对于上传内容,请将 'UC' 转换为 'UU'
  • 大型播放列表需要通过 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. Replace 'UC' prefix with 'UU' to get uploads playlist ID
3. Use with LIST_PLAYLIST_ITEMS to enumerate all videos
分页
  • 设置 maxResults(每页最多 50 条)
  • 检查响应中的 nextPageToken
  • 在下一个请求中将令牌作为 pageToken 传入
  • 持续请求,直到 nextPageToken 不再存在
批量获取视频详情
  • 从搜索结果或播放列表中收集视频 ID
  • 将 ID 分成每组约 50 个
  • 对每组调用 GET_VIDEO_DETAILS_BATCH
  • 合并各组的结果

已知注意事项

配额管理:

  • YouTube API 有每日配额限制(默认 10,000 个单位)
  • 上传 = 1600 个单位;搜索 = 100 个单位;列表 = 1 个单位
  • 尽可能优先使用列表端点,而非搜索端点
  • 监控配额使用情况,避免达到每日上限

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(请查看架构)

由 Composio 提供支持

评论

支持 Markdown