基础用法
下载音频
使用 yt-dlp 提取和下载音频文件
从视频中提取音频是 yt-dlp 最常用的功能之一。支持 mp3、m4a、flac、opus 等多种格式。
音频提取功能需要 FFmpeg。请确保已安装,参见 FFmpeg 安装指南。
基础音频提取
# 提取最佳音频,自动选择格式
yt-dlp -x "URL"
# 指定输出为 mp3
yt-dlp -x --audio-format mp3 "URL"
# 指定输出为 m4a(推荐,质量好体积小)
yt-dlp -x --audio-format m4a "URL"import yt_dlp
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'm4a', # 输出格式
'preferredquality': '0', # 0 = 最高质量
}],
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download(["URL"])[download] Destination: 歌曲名称.webm
[download] 100% of 4.2MiB in 00:01
[ExtractAudio] Destination: 歌曲名称.m4a
Deleting original file 歌曲名称.webm高质量音频 + 封面 + 元数据
这是实际使用中最推荐的配置,一步到位获得完整的音频文件:
yt-dlp -x \
--audio-format m4a \
--audio-quality 0 \
--embed-thumbnail \
--add-metadata \
-o "%(title)s.%(ext)s" \
"URL"import yt_dlp
ydl_opts = {
'format': 'bestaudio/best',
'outtmpl': '%(title)s.%(ext)s',
'writethumbnail': True,
'overwrites': True,
'postprocessors': [
{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'm4a',
'preferredquality': '0',
},
{'key': 'EmbedThumbnail'}, # 嵌入封面图
{'key': 'FFmpegMetadata'}, # 写入元数据(标题、作者等)
],
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download(["URL"])后处理器顺序很重要! 必须先提取音频,然后嵌入封面和元数据。yt-dlp 会按照 postprocessors 列表中的顺序依次执行。
音频格式对比
| 格式 | 质量 | 体积 | 兼容性 | 推荐场景 |
|---|---|---|---|---|
m4a (AAC) | ⭐⭐⭐⭐ | 小 | 极好 | 推荐,手机/播放器通用 |
mp3 | ⭐⭐⭐ | 中 | 极好 | 老设备兼容 |
opus | ⭐⭐⭐⭐⭐ | 最小 | 中等 | 体积优先 |
flac | ⭐⭐⭐⭐⭐ | 大 | 好 | 无损音质 |
wav | ⭐⭐⭐⭐⭐ | 很大 | 极好 | 后期编辑 |
音频质量控制
# 最高质量(0 = best)
yt-dlp -x --audio-format mp3 --audio-quality 0 "URL"
# 中等质量
yt-dlp -x --audio-format mp3 --audio-quality 5 "URL"
# 指定比特率(如 320kbps)
yt-dlp -x --audio-format mp3 --audio-quality 320K "URL"import yt_dlp
# 最高质量
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '0', # 0 = 最高
}],
}
# 指定比特率
ydl_opts_320k = {
'format': 'bestaudio/best',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '320', # 320kbps
}],
}--audio-quality 的值:0 表示最高质量,10 表示最低。也可以直接指定比特率如 192K、320K。
批量下载音频
# 从文件批量下载
yt-dlp -x --audio-format m4a -a urls.txt
# urls.txt 内容(每行一个 URL):
# https://www.youtube.com/watch?v=xxx1
# https://www.youtube.com/watch?v=xxx2
# https://www.youtube.com/watch?v=xxx3