toMedia
基础用法

下载音频

使用 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 表示最低。也可以直接指定比特率如 192K320K

批量下载音频

# 从文件批量下载
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

相关页面

On this page