mcpField
Y
youtube-transcribe

youtube-transcribe

github.com/marks97生产力0920 次安装3 周前更新
代码仓库

关于 youtube-transcribe

YouTube Transcribe 是一项将单个或多个视频整理成精简实用文字摘要的技能。它结合视频搜索、下载和带说话人标注的转录;仅凭语音不足时,还可提取画面并用 Gemini 分析视觉内容。

主要功能

  1. 01按主题搜索 YouTube 视频
  2. 02下载音频或视频
  3. 03转录并标注说话人
  4. 04按间隔或时间戳提取画面
  5. 05使用 Gemini 回答视觉问题
  6. 06综合多部视频的要点

适用场景

  1. 01将教程整理为可执行步骤
  2. 02比较同一主题视频中的观点
  3. 03查看图表、幻灯片或屏幕文字
  4. 04保留带时间戳的论点和细节

安装

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

$npx skills add https://github.com/marks97/youtube-transcribe --skill youtube-transcribe

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitignore
scripts/
ask-gemini.py
ask-gemini.sh
batch.sh
download.sh
frames.sh
load-keys.sh
search.sh
setup.sh
transcribe.py
transcribe.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。
  • 此工具用于从公开视频中学习。 请尊重版权和各平台的条款;请勿将他人的内容重新发布为自己的作品。

评论

支持 Markdown