关于 youtube-transcribe
YouTube Transcribe 是一项将单个或多个视频整理成精简实用文字摘要的技能。它结合视频搜索、下载和带说话人标注的转录;仅凭语音不足时,还可提取画面并用 Gemini 分析视觉内容。
主要功能
- 01按主题搜索 YouTube 视频
- 02下载音频或视频
- 03转录并标注说话人
- 04按间隔或时间戳提取画面
- 05使用 Gemini 回答视觉问题
- 06综合多部视频的要点
适用场景
- 01将教程整理为可执行步骤
- 02比较同一主题视频中的观点
- 03查看图表、幻灯片或屏幕文字
- 04保留带时间戳的论点和细节
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ marks97/ youtube-transcribe --skill youtube-transcribe安装后在 Claude Code 中输入/youtube-transcribe确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitignorescripts/ask-gemini.pyask-gemini.shbatch.shdownload.shframes.shload-keys.shsearch.shsetup.shtranscribe.pytranscribe.sh详细介绍
YouTube Transcribe
将一段视频——或围绕某个主题的一系列视频——转换成真正便于阅读和分析的文本。重点不是只交付一份转录稿,而是吸收视频讲授的内容,并以有用的方式汇报。
流程:查找 → 下载 → 转录 →(查看画面)→(询问 Gemini)→ 综合整理。 大多数任务只需中间几步。只有在口述内容不够时,才采用视觉分析步骤。
设置(每台机器仅需一次)
S=.claude/skills/youtube-transcribe/scripts
bash "$S/setup.sh" # creates a venv, installs yt-dlp + elevenlabs + google-genai (idempotent)
如果在 Debian/Ubuntu 上创建 venv 失败,请先安装 python3-venv(sudo apt-get install -y python3-venv)。
**密钥:**转录会读取 ELEVENLABS_API_KEY;Gemini 回退方案会读取 GEMINI_API_KEY。导出这些变量,或创建一个 scripts/load-keys.local.sh,按你喜欢的方式解析密钥(包装脚本会自动加载该文件;它已被 gitignore 忽略,不会随项目发布)。切勿在输出中打印密钥。
模式 A——单个视频
S=.claude/skills/youtube-transcribe/scripts
OUT=/tmp/claude/youtube-transcribe/<video-id> # scratch; never a repo
bash "$S/download.sh" "<url>" "$OUT" audio # audio.mp3 + metadata.json
bash "$S/transcribe.sh" "$OUT/audio.mp3" "$OUT" # transcript.txt + .diarized.txt + .json
然后阅读 transcript.diarized.txt(带时间戳,并按说话人分组),整理出重要内容:核心论点、步骤/方法、具体主张、数字,以及任何可采取行动的内容。略过填充内容。如果是教程,就记录实际操作方法;如果是演讲,就梳理论点和证据。
transcribe.sh 参数:--no-diarize(单个说话人)、--lang spa(语言提示;省略则自动检测)、--keyterms "Kubernetes,PyTorch,yt-dlp"(确保名称/术语拼写正确——否则 Scribe 会把它们弄错,进而影响摘要质量)。
模式 B——一个主题(多个视频)
搜索免费且无需 API 密钥——它使用 yt-dlp 自带的搜索功能。
S=.claude/skills/youtube-transcribe/scripts
# 1. Find candidates — pick the good ones by title/channel/duration before spending transcription on them.
bash "$S/search.sh" "quantitative trading with LLMs" 20 # id | duration | channel | title
bash "$S/search.sh" "quantitative trading with LLMs" 20 --date # sort by newest instead of relevance
# 2. Transcribe the chosen ones in one go (each lands in <OUT>/<video-id>/).
bash "$S/search.sh" "quantitative trading with LLMs" 20 --urls > /tmp/urls.txt
# ...edit /tmp/urls.txt down to the 10-15 worth watching, then:
bash "$S/batch.sh" /tmp/claude/youtube-transcribe/topic /tmp/urls.txt
有选择地挑选,而非穷尽搜索:3 小时的直播和 40 秒的 Shorts 很少都值得观看。优先考虑内容价值(时长、频道权威性、标题具体程度),而非单纯的观看次数。然后阅读每份转录稿,并综合整理出一份总结,涵盖它们的共识、分歧、最值得参考的单一来源,以及尚未解答的问题——而不是分别总结 N 个视频。
查看屏幕内容
转录稿会遗漏幻灯片、图表、代码、仪表板、产品画面,以及任何人指着说“这个”的内容。这里有两种逐步升级的工具:
**1. 视频帧(成本低,在本地完成)。**下载视频、提取静帧,然后阅读 JPG 文件。
bash "$S/download.sh" "<url>" "$OUT" video # video.mp4 (≤720p)
bash "$S/frames.sh" "$OUT/video.mp4" "$OUT/frames" every 30 # one frame / 30s
bash "$S/frames.sh" "$OUT/video.mp4" "$OUT/frames" at 00:01:20,00:04:05 # exact moments from the transcript
根据 transcript.diarized.txt 中的时间戳,截取有人说“正如你在这里看到的”那一刻的画面。
**2. Gemini(最后手段,需要 GEMINI_API_KEY)。**当视频帧不够用时——例如你需要理解视频内容、读取屏幕文字,或回答直接的视觉问题。Gemini 可直接处理 YouTube URL(无需下载);若处理本地文件,则会先上传文件。
bash "$S/ask-gemini.sh" "<url-or-local-mp4>" "What indicators are shown on the chart at minute 4, and what are their values?"
Gemini 是回退方案,而非默认选项:转录成本更低、速度更快,而且通常已足够。只有在答案确实取决于视觉内容时,才使用 Gemini。
输出——吸收内容,不要照搬
默认生成精炼的知识摘要,而非一大堆转录稿:
- **内容是什么:**标题、频道、时长,以及一句话概述。
- **核心知识:**用自己的话概括实际观点/方法/主张,内容要具体、信息密集。
- **值得注意的细节:**值得保留的数字、名称、工具、步骤、引言(附
[mm:ss]时间戳)。 - **注意事项/未经证实或带有营销意味的内容。**许多“教育类”视频实际上是营销漏斗——请直截了当地说明。
将原始 transcript.txt 保存在磁盘上,并注明其位置;只粘贴引言,不要贴出全文。
脚本
| 脚本 | 功能 |
|---|---|
scripts/setup.sh | 创建 venv,安装依赖(可幂等执行) |
scripts/search.sh "<q>" [n] [--date] [--urls] | 搜索相关主题的视频——免费,无需 API 密钥 |
scripts/download.sh <url> <out> [audio|video|both] | 使用 yt-dlp 下载音频(mp3)和/或视频(≤720p)及 metadata.json |
scripts/transcribe.sh <audio> <out> [--no-diarize] [--lang] [--keyterms] | 使用 ElevenLabs Scribe v2 转录,生成文本、说话人分离结果和原始 json |
scripts/batch.sh <outdir> <urls-file> | 批量下载并转录;每个视频单独存放在一个文件夹中,并生成清单 |
scripts/frames.sh <video> <out> every <sec> | at <ts,ts> | 提取静帧以供查看 |
scripts/ask-gemini.sh <url|file> "<question>" | 使用 Gemini 进行视觉理解(备用方案) |
注意事项
- 仅用于临时处理。 媒体文件和转录文本存放在
/tmp/claude/youtube-transcribe/…中,切勿放入代码仓库。文件可能很大。 - Scribe 限制: 每个文件最大 3 GB / 10 小时;支持 90 多种语言,可自动检测。约 12 分钟的演讲可一次调用完成。
- 年龄限制、仅限会员或私人视频可能需要 Cookie(
yt-dlp --cookies-from-browser或--cookies)。使用 Gemini 时,最好上传下载好的文件,而不是提供它无法访问的 URL。 - 此工具用于从公开视频中学习。 请尊重版权和各平台的条款;请勿将他人的内容重新发布为自己的作品。