夜雨聆风学习资料网

ARTICLE · 1114298

一百个视频的标题,让 AI 自己去改

一百个视频的标题,让 AI 自己去改

管一个 YouTube 频道,烦的从来不是拍视频,是后台那些重复点击。改标题、换封面、加标签、把一批旧视频归到新建的播放列表里、把评论区的垃圾广告清掉,一个个点下去,一小时就没了。

官方接口当然能做这些,但要用得上,你得先看懂 OAuth,再对着文档拼一堆 JSON 参数。对做内容的人来说,这条路太远了。

yutu 干的就是把这条路的台阶铲平。

它是什么

一个把 YouTube 官方接口包成命令行的工具,同时还是一个 MCP 服务器和一个 AI 智能体。

https://github.com/eat-pray-ai/yutu

Apache-2.0 协议,macOS、Linux、Windows 都能跑。

有四种用法,按你的习惯挑

最简单的一种是直接在终端敲命令。第二种是把它挂进 Claude Code、Cursor、VS Code 这类客户端当 MCP 服务器,然后就变成你说话、它去调接口。第三种是它自带一个智能体,自己就是那个「它」。第四种是一份技能说明书,把 YouTube 的领域知识和 SEO 规则喂给别的 AI。

命令有多少条

顶层三十几条命令。除了授权、版本、补全这几个,剩下的按资源分成八组,就是下面这些。每条命令后面一般还挂着 list、insert、update、delete 这几个动作,加起来七十多个操作,基本上把 YouTube 数据接口能摸到的东西都收进去了。

举几个具体的。传视频的时候,标题、描述、标签、分类、隐私状态、定时发布时间、缩略图可以一次带上。改老视频也一样,标题描述标签分类想改哪个改哪个。字幕能传能下,多语言也支持。

评论这块是给频道主用的:拉评论列表、回复、置顶、标记成垃圾、改成待审、删除。播放列表能建能改、能加删条目、还能给播放列表单换一张封面图。直播可以建直播、绑流、切状态,也能往直播聊天里发消息、删消息、禁言、加管理员。频道那边有水印、横幅、分区、第三方链接。

标题里说的那件事,具体是这么走的

官方文档里给了一套很实在的做法:拿一个「不公开」的播放列表当待办箱。

先把片子以不公开的状态传上去,标题随便写个草稿,描述里老实写清这条视频讲的是什么(这段描述后面是留给 AI 当素材的):

CHANNEL_ID=$(yutu channel list --for mine --output json | jq -r '.[0].id')VIDEO_ID=$(yutu video insert --file video.mp4 \  --title '草稿标题' \  --description '这条视频里发生了什么,什么调性,写给 AI 当素材' \  --categoryId 22 --privacy unlisted --yes \  --output json | jq -r '.id')# 顺手丢进待办箱yutu playlistItem insert --kind video \  --playlistId 待办箱的 ID --channelId 「$CHANNEL_ID」 \  --kVideoId 「$VIDEO_ID」 --yes

等标题、描述、标签都收拾好了,再改一次就上线,顺手换封面、挪进正式播放列表、从待办箱里摘掉。中间这段时间片子在频道上是看不见的,什么时候想让它露脸再露脸。

有个细节值得记一下:search 这个接口只返回公开视频。想找自己不公开或者私享的片子,得走频道自带的那个上传播放列表(频道 ID 是 UC 开头,对应的播放列表是 UU 开头那串)。而列表接口一次最多塞 50 个 ID,所以批量的时候按 50 个一批切。

挂进 AI 之后,是它最舒服的用法

配好授权之后,yutu mcp 就是一个标准的 MCP 服务器,Claude Code、Codex、Cursor、VS Code 都能挂上去。挂上去要填的东西也不多,一条命令加两个环境变量:

{  「yutu」: {    「command」: 「yutu」,    「args」: [「mcp」],    「env」: {      「YUTU_CREDENTIAL」: 「.../client_secret.json」,      「YUTU_CACHE_TOKEN」: 「.../youtube.token.json」    }  }}

挂完你在对话框里提要求就行,挑哪条命令、参数怎么填,它自己去想。比如你说一句「把待办箱里那批的标题都挨个改成带年份的格式」,它自己去列表、逐个改、再回来告诉你结果。

官方仓库里挂着一段完整的真实录屏。下面这张是 AI 在复述它手上有什么工具,紧接着出现的第一句人话,就是一句很普通的自然语言:

再往后是它跑去调接口之后回来的东西。上面那些参数是它自己拼的,下面是接口真实返回的订阅频道清单,最后一行是接着提的另一个要求:

顺带一提,除了用管道连的本地模式,它也能起一个 HTTP 模式的 MCP 服务,那个支持带 OAuth 的客户端。

它自己也能当那个「助手」

yutu agent 会起一个叫 Miffy 的智能体,跑在 Gemini 上,内置了一套 YouTube 增长策略和 SEO 经验。有终端模式,也有网页模式。

同一套经验也做成了一份技能包。里面把七十多个工具分成了只读、写入、删除三档,删除那一档还专门写了规矩:动手前把要删的东西列出来,让人确认;改之前先读一遍,确认东西真的在;只改用户点名要改的字段,别顺手把别的也动了。技能包里还塞了一份 SEO 指南,标题控制在六十个字符以内、关键词往前提,描述的前两行要放关键词和时间轴,标签里前两三个权重最高,封面要高对比、三四个字的文字配表情。

配额这件事得先算清楚

YouTube 官方接口每天给每个项目的免费额度是一万单位,每个操作花多少,官方文档里列得很细。yutu 也把这个表抄进了仓库:

上传一个视频              1600读取一次列表                 1修改一次视频信息            50搜索一次                   100新增 / 修改一次字幕    400 / 450------------------------------每天总额度               10000

所以一天最多传六个视频。批量改一百个视频的标题要花五千单位,一轮就用掉一半。做之前心里有个数,别跑一半卡住。

装起来很省事

常见的包管理器都收了:Homebrew、winget、npm 都能装,也有 Docker 镜像,或者直接下编译好的二进制,macOS、Linux、Windows 各有 amd64 和 arm64 两份。下载完还可以用它签名的证明文件验一下来源。

装完还有一步,得去 Google Cloud 建个项目、开通 YouTube 数据接口、建一个 OAuth 客户端,下载凭证文件,然后跑一次 yutu auth 开浏览器授权。授权完 token 存在本地,后面就不用了。凭证的位置可以走环境变量传,塞 Docker 里也方便。

另外还有两个现成的 GitHub Action,一个通用的,一个专门用来传视频,想接进自动化流程的话可以直接用。

动手之前,几句实话

第一步在 Google Cloud 建项目的流程,对没用过的人有点绕,好在仓库里写得挺细,跟着点就行。智能体模式还在开发中,目前只支持 Gemini。会员和会员等级那两个接口有已知问题,官方还挂着 issue。

还有一句得说清楚,它调的是 YouTube 官方接口,用的是你自己授权的那把钥匙。所以它能做的事,就是官方接口允许你对自己频道做的事。刷播放量这种事,这套接口本来就不给你做。

https://github.com/eat-pray-ai/yutu,Apache-2.0 协议。

你有在管频道吗?最想让它替你做掉哪件重复的事,评论区说说。

相关学习资料