youtube-transcribe

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

YouTube Transcript Extraction

YouTube 字幕提取

Extract subtitles and transcripts from YouTube videos.

从YouTube视频中提取字幕和转录文本。

Methods

方法

MethodToolWhen to Use
CLIyt-dlpFast, reliable, preferred
BrowserChrome automationFallback when CLI fails
APIyoutube-transcript-apiPython programmatic access

方法工具使用场景
CLIyt-dlp快速、可靠,优先推荐
浏览器Chrome自动化CLI失效时的备选方案
APIyoutube-transcript-apiPython程序化调用

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

关键参数

FlagPurpose
--write-sub
Download manual subtitles
--write-auto-sub
Download auto-generated subtitles
--sub-lang LANG
Specify language (en, zh-Hans, etc.)
--skip-download
Don't download video
--cookies-from-browser chrome
Use browser cookies for restricted videos
参数用途
--write-sub
下载人工字幕
--write-auto-sub
下载自动生成的字幕
--sub-lang LANG
指定语言(en、zh-Hans等)
--skip-download
不下载视频文件
--cookies-from-browser chrome
使用浏览器Cookie访问受限视频

Common Issues

常见问题

IssueSolution
Sign-in requiredAdd
--cookies-from-browser chrome
No subtitles foundVideo has no captions available
Age-restrictedUse cookies from logged-in browser

问题解决方案
需要登录添加
--cookies-from-browser chrome
参数
未找到字幕该视频无可用字幕
年龄限制视频使用已登录浏览器的Cookie

Browser Automation Fallback

浏览器自动化备选方案

When CLI fails, use browser automation:
  1. Open video page - Navigate to YouTube URL
  2. Expand description - Click "...more" button
  3. Open transcript - Click "Show transcript" button
  4. Extract text - Query DOM for transcript segments
当CLI失效时,使用浏览器自动化:
  1. 打开视频页面 - 导航至YouTube视频URL
  2. 展开描述区 - 点击“...更多”按钮
  3. 打开转录文本 - 点击“显示转录文本”按钮
  4. 提取文本 - 查询DOM获取转录文本片段

DOM Selectors

DOM选择器

ElementSelector
Transcript segments
ytd-transcript-segment-renderer
Timestamp
.segment-timestamp
Text
.segment-text

元素选择器
转录文本片段
ytd-transcript-segment-renderer
时间戳
.segment-timestamp
文本内容
.segment-text

Output Formats

输出格式

FormatExtensionUse Case
VTT.vttWeb standard, includes timing
SRT.srtVideo editing, media players
TXT.txtPlain text, no timing
格式扩展名适用场景
VTT.vttWeb标准格式,包含时间轴信息
SRT.srt视频编辑、媒体播放器兼容
TXT.txt纯文本格式,无时间轴

Convert VTT to Plain Text

将VTT转换为纯文本

bash
undefined
bash
undefined

Strip 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

语言代码

LanguageCode
English
en
Chinese (Simplified)
zh-Hans
Chinese (Traditional)
zh-Hant
Spanish
es
Multiple
en,es,zh-Hans

语言代码
英语
en
中文(简体)
zh-Hans
中文(繁体)
zh-Hant
西班牙语
es
多语言
en,es,zh-Hans

Best Practices

最佳实践

PracticeWhy
Try manual subs firstHigher quality than auto-generated
Use cookies for restrictedAvoids sign-in errors
Check multiple languagesSome videos have better subs in other languages
Verify transcript existsNot all videos have captions
实践建议原因
优先尝试人工字幕质量优于自动生成的字幕
为受限视频使用Cookie避免登录验证错误
检查多语言选项部分视频的其他语言字幕质量更高
确认转录文本存在并非所有视频都提供字幕