# Youtube Transcribe

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

- Repository: https://github.com/chubbyguan/chubbyskills (1292 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-14
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add chubbyguan/chubbyskills --skill youtube-transcribe -g -a claude-code -y`
Codex: `npx skills add chubbyguan/chubbyskills --skill youtube-transcribe -g -a codex -y`
Cursor: `npx skills add chubbyguan/chubbyskills --skill youtube-transcribe -g -a cursor -y`
Gemini CLI: `npx skills add chubbyguan/chubbyskills --skill youtube-transcribe -g -a gemini-cli -y`

## Description

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

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# YouTube 视频转录 + 翻译 Skill

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

## 为什么需要这个

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

- 转录视频为文字（支持中英文）
- 英文内容自动翻译成高质量中文
- 输出中英对照，方便学习

## 环境要求

```bash
# 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"
```

## 使用方法

```bash
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 urls.txt -o ./output --no-translate
```

## 流程

### Step 1: yt-dlp 下载音频

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

### Step 2: SenseVoice-Small 转录

```python
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

```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 翻译。需要设置环境变量：

```bash
export DEEPSEEK_API_KEY="your-api-key"
```

支持的 LLM：
- DeepSeek（推荐，性价比高）
- OpenAI
- 任何兼容 OpenAI API 格式的服务

## 性能数据

The rest: https://github.com/chubbyguan/chubbyskills/blob/HEAD/youtube-transcribe/SKILL.md
