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

如何用Python获取YouTube视频的MP3格式直链?

获取YouTube视频的MP3在线直链方案

核心说明

YouTube本身不提供原生MP3格式的音频流,平台默认的音频格式为WebM/Opus(对应weba文件)或M4A。所以无论用youtube-dl还是替代工具,都无法直接抓取到官方的MP3直链——你拿到的weba链接已经是YouTube能提供的最高质量音频源。

可行解决思路

1. 切换到维护活跃的yt-dlp库

youtube-dl已停止维护,建议替换为yt-dlp(它是youtube-dl的分支,支持更多特性且更新频繁)。安装命令:

pip install yt-dlp

使用yt-dlp获取兼容性更好的M4A音频源代码:

import yt_dlp

link = 'https://www.youtube.com/watch?v=8fATAQtY9ag'
ydl_opts = {
    'format': 'bestaudio/best',
    'quiet': True,
}

with yt_dlp.YoutubeDL(ydl_opts) as ydl:
    info = ydl.extract_info(link, download=False)
    # 筛选M4A格式(兼容性优于weba)
    for fmt in info['formats']:
        if fmt['ext'] == 'm4a':
            print(fmt['url'])
            break

注:这仍然是获取平台原生音频格式,并非MP3,但M4A在多数播放器中兼容性更好。

2. 搭建实时转码服务生成MP3临时链接

如果必须获取MP3格式的在线链接,需要自己搭建简单的转码服务:抓取YouTube的音频流,用ffmpeg实时转码为MP3后对外提供流式链接。示例代码(基于Flask框架):

from flask import Flask, Response
import yt_dlp
import subprocess

app = Flask(__name__)

def get_youtube_audio_stream(url):
    ydl_opts = {
        'format': 'bestaudio/best',
        'quiet': True,
        'noplaylist': True,
    }
    with yt_dlp.YoutubeDL(ydl_opts) as ydl:
        info = ydl.extract_info(url, download=False)
        return info['url']

@app.route('/mp3/<video_id>')
def stream_mp3(video_id):
    youtube_url = f'https://www.youtube.com/watch?v={video_id}'
    audio_url = get_youtube_audio_stream(youtube_url)
    
    # ffmpeg实时转码为MP3
    cmd = [
        'ffmpeg',
        '-i', audio_url,
        '-f', 'mp3',
        '-acodec', 'libmp3lame',
        '-b:a', '128k',
        '-'
    ]
    return Response(
        subprocess.Popen(cmd, stdout=subprocess.PIPE).stdout,
        mimetype='audio/mpeg'
    )

if __name__ == '__main__':
    app.run(debug=True)

启动服务后,访问http://localhost:5000/mp3/8fATAQtY9ag即可获取该视频的MP3流式链接。

重要提醒

  • 未经授权抓取和转码YouTube内容可能违反平台服务条款及版权法,请确保操作符合相关规定。
  • 实时转码会消耗服务器带宽和CPU资源,仅适合个人或小规模使用场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:15:35