name: 使用YouTube下载 description: 使用yt-dlp和ffmpeg下载YouTube视频或音频,以最高可用质量。
YouTube下载技能
教授如何以最高质量将YouTube视频下载为视频文件和MP3音频。
前提条件
yt-dlp(youtube-dl的推荐分支):https://github.com/yt-dlp/yt-dlpffmpeg(用于合并/转换)
安装(Linux/macOS):
python3 -m pip install -U yt-dlp
# 或
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp && sudo chmod a+rx /usr/local/bin/yt-dlp
# ffmpeg
sudo apt install ffmpeg # Debian/Ubuntu
brew install ffmpeg # macOS(Homebrew)
Windows:使用yt-dlp.exe发布版并安装Windows版ffmpeg。
下载最高质量视频(合并为MP4)
这会下载最佳视频和最佳音频,并将它们合并为MP4(默认最高质量)。
yt-dlp -f "bestvideo+bestaudio/best" --merge-output-format mp4 -o "%(title)s.%(ext)s" <视频URL>
注意:
-f "bestvideo+bestaudio/best"偏好单独的最佳视频和音频流,并回退到单个最佳格式。--merge-output-format mp4确保广泛的容器兼容性。- 输出模板
%(title)s.%(ext)s以视频标题命名文件。
强制最大分辨率(例如,1080p):
yt-dlp -f "bestvideo[height<=1080]+bestaudio/best" --merge-output-format mp4 -o "%(title)s.%(ext)s" <视频URL>
下载为MP3(最高音频质量)
提取并转换最佳可用音频为MP3(最高质量):
yt-dlp -x --audio-format mp3 --audio-quality 0 -o "%(title)s.%(ext)s" <视频URL>
选项:
-x/--extract-audio提取音频。--audio-format mp3转换为MP3。--audio-quality 0告诉ffmpeg使用最佳VBR质量。
如果偏好320kbps恒定比特率MP3:
yt-dlp -x --audio-format mp3 --postprocessor-args "-b:a 320k" -o "%(title)s.%(ext)s" <视频URL>
下载播放列表
下载整个播放列表(保持顺序):
yt-dlp -f "bestvideo+bestaudio/best" --merge-output-format mp4 -o "%(playlist_index)s - %(title)s.%(ext)s" <播放列表URL>
要仅下载播放列表中的单个视频,使用 --no-playlist。
高级示例
- 仅下载最佳音频(不转换):
yt-dlp -f bestaudio -o "%(title)s.%(ext)s" <视频URL>
- 按时间范围下载片段(需要ffmpeg后处理):
yt-dlp -f bestvideo+bestaudio --external-downloader ffmpeg --external-downloader-args "-ss 00:01:00 -to 00:02:00" -o "%(title)s.%(ext)s" <视频URL>
Windows PowerShell示例
.
# 最高质量视频
yt-dlp.exe -f "bestvideo+bestaudio/best" --merge-output-format mp4 -o "%(title)s.%(ext)s" https://www.youtube.com/watch?v=...
# MP3
yt-dlp.exe -x --audio-format mp3 --audio-quality 0 -o "%(title)s.%(ext)s" https://www.youtube.com/watch?v=...
注意事项和最佳实践
- 尊重YouTube的服务条款和版权法。仅下载您拥有权利或权限的内容。
- 使用
--no-overwrites避免替换现有文件。 - 使用
--download-archive archive.txt避免在处理播放列表或频道时重新下载先前下载的视频。 - 使用
--quiet用于脚本编写,并检查退出代码以确认成功。 - 缓存和限制请求以避免速率限制。
此技能涵盖常见的 yt-dlp 模式,以下载最高质量的视频和音频(MP3)。对于自动化,将这些命令组合成脚本,并使用环境变量处理URL和输出目录。