youtube-transcribe
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseYouTube Transcript Extraction
YouTube 字幕提取
Extract subtitles and transcripts from YouTube videos.
从YouTube视频中提取字幕和转录文本。
Methods
方法
| Method | Tool | When to Use |
|---|---|---|
| CLI | yt-dlp | Fast, reliable, preferred |
| Browser | Chrome automation | Fallback when CLI fails |
| API | youtube-transcript-api | Python programmatic access |
| 方法 | 工具 | 使用场景 |
|---|---|---|
| CLI | yt-dlp | 快速、可靠,优先推荐 |
| 浏览器 | Chrome自动化 | CLI失效时的备选方案 |
| API | youtube-transcript-api | Python程序化调用 |
yt-dlp Method (Preferred)
yt-dlp 方法(优先推荐)
Basic Command
基础命令
bash
yt-dlp --write-auto-sub --write-sub --sub-lang en --skip-download -o "%(title)s.%(ext)s" "VIDEO_URL"bash
yt-dlp --write-auto-sub --write-sub --sub-lang en --skip-download -o "%(title)s.%(ext)s" "VIDEO_URL"Key Flags
关键参数
| Flag | Purpose |
|---|---|
| Download manual subtitles |
| Download auto-generated subtitles |
| Specify language (en, zh-Hans, etc.) |
| Don't download video |
| Use browser cookies for restricted videos |
| 参数 | 用途 |
|---|---|
| 下载人工字幕 |
| 下载自动生成的字幕 |
| 指定语言(en、zh-Hans等) |
| 不下载视频文件 |
| 使用浏览器Cookie访问受限视频 |
Common Issues
常见问题
| Issue | Solution |
|---|---|
| Sign-in required | Add |
| No subtitles found | Video has no captions available |
| Age-restricted | Use cookies from logged-in browser |
| 问题 | 解决方案 |
|---|---|
| 需要登录 | 添加 |
| 未找到字幕 | 该视频无可用字幕 |
| 年龄限制视频 | 使用已登录浏览器的Cookie |
Browser Automation Fallback
浏览器自动化备选方案
When CLI fails, use browser automation:
- Open video page - Navigate to YouTube URL
- Expand description - Click "...more" button
- Open transcript - Click "Show transcript" button
- Extract text - Query DOM for transcript segments
当CLI失效时,使用浏览器自动化:
- 打开视频页面 - 导航至YouTube视频URL
- 展开描述区 - 点击“...更多”按钮
- 打开转录文本 - 点击“显示转录文本”按钮
- 提取文本 - 查询DOM获取转录文本片段
DOM Selectors
DOM选择器
| Element | Selector |
|---|---|
| Transcript segments | |
| Timestamp | |
| Text | |
| 元素 | 选择器 |
|---|---|
| 转录文本片段 | |
| 时间戳 | |
| 文本内容 | |
Output Formats
输出格式
| Format | Extension | Use Case |
|---|---|---|
| VTT | .vtt | Web standard, includes timing |
| SRT | .srt | Video editing, media players |
| TXT | .txt | Plain text, no timing |
| 格式 | 扩展名 | 适用场景 |
|---|---|---|
| VTT | .vtt | Web标准格式,包含时间轴信息 |
| SRT | .srt | 视频编辑、媒体播放器兼容 |
| TXT | .txt | 纯文本格式,无时间轴 |
Convert VTT to Plain Text
将VTT转换为纯文本
bash
undefinedbash
undefinedStrip timing and formatting
移除时间轴和格式信息
sed '/^[0-9]/d; /^$/d; /WEBVTT/d; /-->/d' video.vtt > video.txt
---sed '/^[0-9]/d; /^$/d; /WEBVTT/d; /-->/d' video.vtt > video.txt
---Language Codes
语言代码
| Language | Code |
|---|---|
| English | |
| Chinese (Simplified) | |
| Chinese (Traditional) | |
| Spanish | |
| Multiple | |
| 语言 | 代码 |
|---|---|
| 英语 | |
| 中文(简体) | |
| 中文(繁体) | |
| 西班牙语 | |
| 多语言 | |
Best Practices
最佳实践
| Practice | Why |
|---|---|
| Try manual subs first | Higher quality than auto-generated |
| Use cookies for restricted | Avoids sign-in errors |
| Check multiple languages | Some videos have better subs in other languages |
| Verify transcript exists | Not all videos have captions |
| 实践建议 | 原因 |
|---|---|
| 优先尝试人工字幕 | 质量优于自动生成的字幕 |
| 为受限视频使用Cookie | 避免登录验证错误 |
| 检查多语言选项 | 部分视频的其他语言字幕质量更高 |
| 确认转录文本存在 | 并非所有视频都提供字幕 |