mcpField
Y
youtube-automation

youtube-automation

github.com/davepoon营销与增长3.7k136 次安装1 天前更新
代码仓库

关于 youtube-automation

youtube-automation 通过 Rube MCP 调用 Composio 的 YouTube 工具包,自动处理 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/davepoon/buildwithclaude --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