拾流 / YouTube视频转录与中英对照 · 创作技能

SHILIU · 创作资源

YouTube视频转录与中英对照 · 创作技能

把YouTube视频转为Markdown文字稿:优先抓官方/自动字幕,抓不到再下载音频用SenseVoice转录,英文内容经LLM翻译输出中英对照。含单条与批量脚本、翻译配置与已知限制,适合个人学习性整理。

拾流编辑部 · 更新于 2026-11-02

这个技能解决什么问题

把YouTube视频转为Markdown文字稿:优先抓官方/自动字幕,抓不到再下载音频用SenseVoice转录,英文内容经LLM翻译输出中英对照。含单条与批量脚本、翻译配置与已知限制,适合个人学习性整理。

适用任务

将YouTube视频链接转录为文字并(对英文内容)翻译成中文,输出中英对照Markdown;支持批量URL列表处理。

需要的输入

YouTube视频链接或URL列表文件;输出目录;可选 --no-translate 关闭翻译、--no-subtitle 强制音频转录、--stop-on-error 批量严格模式;翻译需 DEEPSEEK_API_KEY(或兼容OpenAI格式的服务);音频转录需 funasr、modelscope、torch、torchaudio 与 ffmpeg、yt-dlp。

交付内容

每个视频一个Markdown,frontmatter 含 title、type、tags、language、translated;正文含「中文翻译」与「English Original」两节,并标注转录引擎与翻译来源;批量模式逐条产出,单条失败默认继续。

任务示例

python scripts/transcribe.py "https://www.youtube.com/watch?v=xxxxx" --output ./output

输出示例

示意(非真实结果):output/视频标题.md,frontmatter 含 language: en、translated: true,正文先「## 中文翻译」段落,再「## English Original」原文段落,顶部注明转录引擎 SenseVoice-Small、翻译 DeepSeek。

来源与使用

作者 chubbyguan;许可 MIT。已核对来源与包结构,未据此宣称完成运行实测。

查看原始来源

机器可读详情 · 读取 SKILL.md · 下载完整技能包

技能说明全文

---
name: youtube-transcribe
description: >
  YouTube 视频 → 下载 → 转录 → 翻译 → 存为 Markdown。
  支持中英文,英文内容自动翻译成中文,输出中英对照。
metadata:
  category: "media"
  triggers: "[\"用户发送 YouTube 视频链接\", \"把这个 YouTube 视频转成文字\", \"帮我转录这个 YouTube\", \"YouTube 翻译\"]"
  version: "1.0.0"
  tags: "[\"media\", \"audio\", \"video\", \"transcription\", \"youtube\", \"translation\"]"
---

# 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 格式的服务

## 性能数据

| 视频时长 | 下载 | 转录 | 翻译 | 总耗时 |
|------|------|------|------|------|
| 5 min | ~10s | ~5s | ~10s | ~30s |
| 10 min | ~15s | ~10s | ~20s | ~50s |
| 30 min | ~30s | ~30s | ~60s | ~2min |

## 已知限制

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

## 参考项目

- [yt-dlp/yt-dlp](https://github.com/yt-dlp/yt-dlp) - 视频下载工具
- [FunAudioLLM/SenseVoice](https://github.com/FunAudioLLM/SenseVoice) - 语音识别模型
- [DeepSeek](https://platform.deepseek.com/) - 翻译用 LLM

## ⚖️ 合规声明

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

技能是任务材料,不会自动授予账户权限、付费授权或其他系统权限。请让 Agent 按说明核对依赖,再在授权范围内使用。

把这个任务交给你的 Agent

数据、技能和创作空间,一起备好。复制接入指令,发给你正在使用的 AI 工具。

阅读 Agent 接入指南
正在复制指令

粘贴发给你的 Agent
让它成为你的自媒体专家

打开你正在使用的 AI 工具,把下面这段话粘贴到对话框并发送。

发给 Agent 的完整指令

发送后,告诉它你想做什么账号、实现什么目标。

这些 Agent 都可以使用24 个工具