mcpbeat

Youtube Transcribe

chubbyguan/youtube-transcribe

> YouTube 视频 → 下载 → 转录 → 翻译 → 存为 Markdown。 支持中英文,英文内容自动翻译成中文,输出中英对照。

4k tokens
context cost
the whole folder, loaded on every use
4
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
588
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/chubbyguan/chubbyskills --skill youtube-transcribe

The instruction itself

5 sections, as written by the author

YouTube 视频转录 + 翻译 Skill

字幕优先:先抓官方/自动字幕(秒级、免 GPU),抓不到再下载音频用 SenseVoice-Small 转录;英文内容自动翻译成中文,输出中英对照 Markdown。加 --no-subtitle 可强制走音频转录。

为什么需要这个

YouTube 有大量优质英文内容,但很多人没时间看完或语言不通。这个 skill:

  • 转录视频为文字(支持中英文)
  • 英文内容自动翻译成高质量中文
  • 输出中英对照,方便学习

环境要求

# Python 3.9+
python -m venv .venv
source .venv/bin/activate

# 依赖
pip install funasr modelscope torch torchaudio

# 系统依赖
# macOS: brew install ffmpeg yt-dlp
# Ubuntu: sudo apt install ffmpeg && pip install yt-dlp

# 翻译功能(可选,英文视频需要)
export DEEPSEEK_API_KEY="your-api-key"

使用方法

python scripts/transcribe.py "https://www.youtube.com/watch?v=xxxxx"
python scripts/transcribe.py "https://www.youtube.com/watch?v=xxxxx" --output ./output
python scripts/transcribe.py "https://www.youtube.com/watch?v=xxxxx" --no-translate  # 不翻译
python scripts/transcribe.py "https://www.youtube.com/watch?v=xxxxx" --no-subtitle  # 强制音频转录
python scripts/batch_transcribe.py ../../examples/youtube-urls.txt -o ./output --no-translate

流程

Step 1: yt-dlp 下载音频

yt-dlp --extract-audio --audio-format mp3 --audio-quality 128K \
  "https://www.youtube.com/watch?v=xxxxx"

Step 2: SenseVoice-Small 转录

from funasr import AutoModel
model = AutoModel(model="iic/SenseVoiceSmall", ...)
result = model.generate(input=audio_path, language="auto", use_itn=True)

Step 3: 语言检测 + 翻译

  • 中文内容 → 直接输出
  • 英文内容 → LLM 翻译成中文,输出中英对照

Step 4: 生成 Markdown

---
title: 视频标题
type: note
tags: [YouTube]
language: en
translated: true
---

# 视频标题

> 转录引擎:SenseVoice-Small | 翻译:DeepSeek

## 中文翻译

翻译内容...

---

## English Original

原文内容...

批量模式

scripts/batch_transcribe.py 支持 URL 列表批处理,默认单条失败后继续处理下一条;需要严格模式时加 --stop-on-error

翻译配置

默认使用 DeepSeek API 翻译。需要设置环境变量:

export DEEPSEEK_API_KEY="your-api-key"

支持的 LLM:

  • DeepSeek(推荐,性价比高)
  • OpenAI
  • 任何兼容 OpenAI API 格式的服务

性能数据

| 视频时长 | 下载 | 转录 | 翻译 | 总耗时 |

|------|------|------|------|------|

| 5 min | ~10s | ~5s | ~10s | ~30s |

| 10 min | ~15s | ~10s | ~20s | ~50s |

| 30 min | ~30s | ~30s | ~60s | ~2min |

已知限制

  • SenseVoice-Small 对英文转录准确率不如中文
  • 翻译质量取决于 LLM 能力
  • 长视频翻译可能需要较长时间
  • 部分 YouTube 视频有地区限制

参考项目

⚖️ 合规声明

仅供个人学习与研究使用。请遵守目标平台的服务条款(ToS)与 robots 规则,控制请求频率,不要用于批量抓取、商用爬取或侵犯他人权益的场景。下载内容的版权归原作者所有。

How to use it

Copy the folder

Take chubbyguan/youtube-transcribe from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference pip, brew. Without those the skill loads but fails at the first command.