toMedia
平台专项

YouTube

YouTube 视频下载专项指南

▶️ YouTube 下载指南

基础下载

# 下载最佳画质
yt-dlp "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

# 下载 1080p mp4
yt-dlp -f "bestvideo[height<=1080][ext=mp4]+bestaudio[ext=m4a]" \
  --merge-output-format mp4 "URL"
import yt_dlp

ydl_opts = {
    'format': 'bestvideo[height<=1080][ext=mp4]+bestaudio[ext=m4a]',
    'merge_output_format': 'mp4',
}

with yt_dlp.YoutubeDL(ydl_opts) as ydl:
    ydl.download(["https://www.youtube.com/watch?v=dQw4w9WgXcQ"])

YouTube 短视频 (Shorts)

# Shorts 和普通视频下载方式相同
yt-dlp "https://www.youtube.com/shorts/VIDEO_ID"

年龄限制内容

# 需要 Cookies 绕过年龄验证
yt-dlp --cookies-from-browser chrome "URL"

# 或使用 OAuth 登录(实验性)
yt-dlp --username oauth --password "" "URL"
import yt_dlp

ydl_opts = {
    'cookiesfrombrowser': ('chrome',),
}

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

播放列表

# 下载整个播放列表
yt-dlp "https://www.youtube.com/playlist?list=PLxxxxxxx"

# 按序号命名
yt-dlp -o "%(playlist_title)s/%(playlist_index)03d - %(title)s.%(ext)s" \
  "https://www.youtube.com/playlist?list=PLxxxxxxx"

# 使用归档避免重复
yt-dlp --download-archive youtube-archive.txt \
  "https://www.youtube.com/playlist?list=PLxxxxxxx"
import yt_dlp

ydl_opts = {
    'outtmpl': '%(playlist_title)s/%(playlist_index)03d - %(title)s.%(ext)s',
    'download_archive': 'youtube-archive.txt',
}

with yt_dlp.YoutubeDL(ydl_opts) as ydl:
    ydl.download(["https://www.youtube.com/playlist?list=PLxxxxxxx"])

频道下载

# 下载频道所有视频
yt-dlp "https://www.youtube.com/@ChannelName/videos"

# 只下载最新 10 个
yt-dlp -I :10 "https://www.youtube.com/@ChannelName/videos"

# 频道中特定标签页
yt-dlp "https://www.youtube.com/@ChannelName/shorts"
yt-dlp "https://www.youtube.com/@ChannelName/streams"

直播录制

# 录制正在进行的直播
yt-dlp --live-from-start "https://www.youtube.com/watch?v=LIVE_ID"

# 等待直播开始
yt-dlp --wait-for-video 60 "https://www.youtube.com/watch?v=UPCOMING_ID"

字幕

# 下载手动字幕
yt-dlp --write-sub --sub-lang "zh-Hans,en" "URL"

# 下载自动生成字幕(YouTube 的 AI 字幕)
yt-dlp --write-auto-sub --sub-lang "zh-Hans" "URL"

# 嵌入字幕到 mp4
yt-dlp --write-sub --sub-lang "en" --embed-subs \
  --merge-output-format mp4 "URL"
import yt_dlp

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

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

SponsorBlock 去广告

# 标记赞助片段(显示章节标记)
yt-dlp --sponsorblock-mark all "URL"

# 自动删除赞助片段
yt-dlp --sponsorblock-remove sponsor "URL"

# 删除片头片尾 + 赞助
yt-dlp --sponsorblock-remove "sponsor,intro,outro" "URL"

YouTube 格式特点

编码容器特点
AVC (H.264)mp4兼容性最好
VP9webmYouTube 主力编码,质量好
AV1webm最新编码,高画质小体积
AACm4a音频,兼容性好
Opuswebm音频,质量更好体积更小
# 优先 H.264 编码(兼容老设备)
yt-dlp -S "codec:h264" "URL"

# 优先 AV1 编码(最佳压缩率)
yt-dlp -S "codec:av01" "URL"

常见问题

下载速度慢

# YouTube 可能对某些 IP 限速,尝试:
# 1. 使用代理
yt-dlp --proxy "http://proxy:port" "URL"

# 2. 并发下载
yt-dlp -N 4 "URL"

"Sign in to confirm your age"

# 使用浏览器 Cookies
yt-dlp --cookies-from-browser chrome "URL"

被 YouTube 封禁 IP

YouTube 会对频繁下载的 IP 进行限速或封禁。建议:

  • 不要过于频繁地下载
  • 使用 --sleep-interval 设置下载间隔
  • 使用 --limit-rate 限制下载速度

On this page