You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python yt-dlp提取YouTube音频?脚本下载视频问题求解

解决yt-dlp Python脚本下载视频而非音频的问题

你的问题出在Python脚本的配置参数不够完整——命令行的--extract-audio其实隐含了「选择最佳音频流」的逻辑,但Python API里仅设置extract_audio: True不足以强制程序只选音频流。

直接用下面的修正脚本即可解决:

import yt_dlp

def download_audio(link):
    # 完善配置参数,明确指定音频流和转码选项
    ydl_opts = {
        'extract_audio': True,
        'format': 'bestaudio/best',  # 优先选择最佳质量的音频流
        'postprocessors': [{
            'key': 'FFmpegExtractAudio',
            'preferredcodec': 'mp3',  # 直接转成MP3格式,无需手动改扩展名
            'preferredquality': '192',  # 音频质量,可选128/192/256等
        }],
        'outtmpl': '%(title)s.%(ext)s',  # 输出文件名格式(可选,保持默认也可以)
    }

    with yt_dlp.YoutubeDL(ydl_opts) as ydl:
        info_dict = ydl.extract_info(link, download=True)
        print(f"已下载音频:{info_dict['title']}.mp3")

download_audio('https://www.youtube.com/watch?v=cJuO985zF8E')

关键修改点说明:

  • 添加format: 'bestaudio/best':强制yt-dlp只抓取音频流,避免选中包含视频的混合流
  • 加入postprocessors配置:调用FFmpeg直接将音频转成MP3(需要你的系统已安装FFmpeg,如果不想转码,删掉这部分即可得到webm格式音频)
  • 可选的outtmpl:自定义输出文件名,避免默认的复杂命名

如果不需要转MP3,只想保留webm格式,简化配置如下:

ydl_opts = {
    'extract_audio': True,
    'format': 'bestaudio/best',
}

内容的提问来源于stack exchange,提问作者404

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 00:52:23