toMedia
进阶功能

字幕下载

下载、嵌入和转换字幕

查看可用字幕

# 列出所有可用字幕
yt-dlp --list-subs "URL"
import yt_dlp

with yt_dlp.YoutubeDL({'skip_download': True}) as ydl:
    info = ydl.extract_info("URL", download=False)
    subs = info.get('subtitles', {})
    auto_subs = info.get('automatic_captions', {})

    print("手动字幕:")
    for lang, formats in subs.items():
        print(f"  {lang}: {[f['ext'] for f in formats]}")

    print("自动生成字幕:")
    for lang in list(auto_subs.keys())[:5]:
        print(f"  {lang}")
终端输出
Available subtitles for BV1xx411c7mD:
Language  Formats
zh-Hans   vtt, srt, ass
en        vtt, srt, ass

Available automatic captions:
Language  Formats
zh-Hans   vtt, json3
en        vtt, json3
ja        vtt, json3

下载字幕文件

# 下载中文字幕
yt-dlp --write-sub --sub-lang "zh-Hans" "URL"

# 下载多种语言
yt-dlp --write-sub --sub-lang "zh-Hans,en,ja" "URL"

# 下载所有可用字幕
yt-dlp --all-subs "URL"

# 包含自动生成的字幕
yt-dlp --write-auto-sub --sub-lang "zh-Hans" "URL"

# 指定字幕格式
yt-dlp --write-sub --sub-lang "zh-Hans" --sub-format srt "URL"

# 只下载字幕(不下载视频)
yt-dlp --skip-download --write-sub --sub-lang "zh-Hans" "URL"
import yt_dlp

ydl_opts = {
    'writesubtitles': True,         # 下载手动字幕
    'writeautomaticsub': True,      # 下载自动生成字幕
    'subtitleslangs': ['zh-Hans', 'en'],  # 语言列表
    'subtitlesformat': 'srt',       # 字幕格式
}

with yt_dlp.YoutubeDL(ydl_opts) as ydl:
    ydl.download(["URL"])

嵌入字幕到视频

# 下载并嵌入字幕
yt-dlp --write-sub --sub-lang "zh-Hans,en" --embed-subs "URL"

# 合并为 mp4 并嵌入字幕
yt-dlp --write-sub --sub-lang "zh-Hans" --embed-subs \
  --merge-output-format mp4 "URL"
import yt_dlp

ydl_opts = {
    'writesubtitles': True,
    'subtitleslangs': ['zh-Hans', 'en'],
    'merge_output_format': 'mp4',
    'postprocessors': [
        {'key': 'EmbedSubtitle'},
    ],
}

with yt_dlp.YoutubeDL(ydl_opts) as ydl:
    ydl.download(["URL"])

嵌入字幕后,字幕成为视频文件的一部分。大多数播放器(VLC、PotPlayer、mpv)都支持切换嵌入字幕的语言。

字幕格式转换

# 转换字幕格式为 srt
yt-dlp --write-sub --sub-format srt --convert-subs srt "URL"

# 转换为 ass(高级字幕格式,支持样式)
yt-dlp --write-sub --convert-subs ass "URL"

常用语言代码

代码语言
zh-Hans简体中文
zh-Hant繁体中文
en英语
ja日语
ko韩语
es西班牙语
fr法语
de德语

On this page