关于 youtube-transcribe-skill
用于提取 YouTube 视频字幕并将带时间戳的文本保存到本地。优先尝试 `yt-dlp`,失败时可通过 Chrome DevTools MCP 自动操作浏览器。
主要功能
- 01验证 YouTube 链接格式
- 02使用 `yt-dlp` 提取字幕
- 03通过 Chrome DevTools MCP 备用提取
- 04输出带时间戳的纯文本
适用场景
- 01保存 YouTube 视频字幕
- 02通过浏览器自动化提取转录文本
MCP 相关
命令行方式失败或不可用时,技能通过 Chrome DevTools MCP 打开 YouTube、显示转录面板、提取片段并关闭页面。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ feiskyer/ claude-code-settings --skill youtube-transcribe-skill安装后在 Claude Code 中输入/youtube-transcribe-skill确认已加载。
详细介绍
YouTube 转录稿提取
从 YouTube 视频 URL 提取字幕/转录稿,并保存为本地文件。
YouTube URL 输入:$ARGUMENTS
第 1 步:验证 URL
确认输入的是有效的 YouTube URL(支持 youtube.com/watch?v=、youtu.be/ 和 youtube.com/shorts/ 格式)。如果参数中未提供 URL,请检查对话上下文中是否有 YouTube 链接。
第 2 步:CLI 快速提取(优先尝试)
使用命令行工具快速提取字幕。
2.1 检查工具是否可用
执行 which yt-dlp。
- 如果找到
yt-dlp,继续执行 2.2。 - 如果未找到
yt-dlp,跳转到第 3 步。
2.2 获取视频标题
yt-dlp --cookies-from-browser=chrome --get-title "[VIDEO_URL]"
- 提示:始终添加
--cookies-from-browser,以避免登录限制。默认使用chrome。 - 如果因浏览器错误而失败(例如 “Could not open Chrome”),请询问用户可用的浏览器(例如
firefox、safari、edge),然后重试。
2.3 下载字幕
yt-dlp --cookies-from-browser=chrome --write-auto-sub --write-sub --sub-lang zh-Hans,zh-Hant,en --skip-download --output "<Video Title>.%(ext)s" "[VIDEO_URL]"
2.4 转换为纯文本
yt-dlp 会将字幕保存为 .vtt 或 .srt 文件。将下载的文件转换为纯文本 Timestamp Text 格式:
- 读取下载的字幕文件(
.vtt或.srt)。 - 删除 VTT/SRT 标头、样式标签和重复行。
- 保存为
<Video Title>.txt,每行包含一条Timestamp Text条目。
2.5 验证结果
- 退出代码为 0:转换并保存字幕文件,然后报告完成情况。
- 退出代码非 0:
- 如果错误与浏览器/Cookie 有关,请询问用户正确的浏览器并重试。
- 如果是其他错误(例如视频不可用),继续执行第 3 步。
第 3 步:浏览器自动化(备用方案)
当 CLI 方法失败或缺少 yt-dlp 时,使用 Chrome DevTools MCP 通过浏览器 UI 自动化提取字幕。
3.1 检查工具是否可用
检查 Chrome DevTools MCP 工具是否可用(查找名称类似 chrome__new_page 的工具)。
如果 Chrome DevTools MCP 不可用,且在第 2 步中未找到 yt-dlp,则停止并通知用户:“无法继续。请安装 yt-dlp(用于快速 CLI 提取),或配置 Chrome DevTools MCP(用于浏览器自动化)。”
3.2 打开视频页面
使用 Chrome DevTools MCP new_page 打开视频 URL。
3.3 分析页面状态
使用 Chrome DevTools MCP take_snapshot 读取页面的无障碍树。
3.4 展开视频说明
“显示转录稿”按钮通常隐藏在折叠的视频说明区域中。
- 在快照中查找标记为 “…more”、“…更多” 或 “Show more” 的按钮(位于视频标题下方的说明区域中)。
- 使用 Chrome DevTools MCP
click点击该按钮。
3.5 打开转录稿面板
- 使用 Chrome DevTools MCP
take_snapshot获取更新后的 UI。 - 查找标记为 “Show transcript”、“显示转录稿” 或 “内容转文字” 的按钮。
- 使用 Chrome DevTools MCP
click点击该按钮。 - 如果未找到该按钮,视频可能没有可用的转录稿 — 通知用户并停止。
3.6 通过 DOM 提取内容
直接读取无障碍树中的长转录稿列表会很慢且消耗大量令牌。改用 Chrome DevTools MCP evaluate_script 执行以下 JavaScript:
() => {
const segments = document.querySelectorAll("ytd-transcript-segment-renderer");
if (!segments.length) return "BUFFERING";
return Array.from(segments)
.map((seg) => {
const time = seg.querySelector(".segment-timestamp")?.innerText.trim();
const text = seg.querySelector(".segment-text")?.innerText.trim();
return `${time} ${text}`;
})
.join("\n");
};
如果返回 "BUFFERING",请等待几秒后重试(最多尝试 3 次)。
3.7 保存并清理
- 将提取的文本保存为
<Video Title>.txt。 - 使用 Chrome DevTools MCP
close_page释放资源。
输出要求
- 将字幕文件保存到当前工作目录。
- 文件名格式:
<Video Title>.txt - 文件内容格式:每行应为
Timestamp Subtitle Text。 - 完成后报告:文件路径、字幕语言和总行数。