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

如何用Pytube获取320kbps比特率的YouTube音频并转为MP3?

使用Pytube获取可转换为320kbps MP3的YouTube音频

问题根源

你之前使用的progressive=True流是音视频合并流,这类流的音频比特率上限极低(通常在128-160kbps之间),所以无论怎么转换,都无法得到320kbps的MP3。YouTube的高比特率音频仅存在于单独的音频流(DASH流)中。

解决方案

要实现需求,需要分两步:下载YouTube提供的最高质量音频流,再转换为指定320kbps的MP3。

1. 下载最高质量的单独音频流

使用Pytube过滤仅音频的流,并按比特率降序选择最高质量的流:

from pytube import YouTube

# 替换为你的YouTube视频链接
yt_link = YouTube("https://www.youtube.com/watch?v=xxx")
download_folder = "你的保存路径"

# 筛选仅音频流,按比特率从高到低排序,取第一个
highest_audio_stream = yt_link.streams.filter(only_audio=True).order_by("bitrate").desc().first()
# 下载音频流(默认保存为mp4容器格式)
audio_file = highest_audio_stream.download(output_path=download_folder)

你也可以先查看所有可用音频流的详细信息,手动选择特定itag:

for stream in yt_link.streams.filter(only_audio=True):
    print(f"itag: {stream.itag}, 比特率: {stream.bitrate}, 格式: {stream.mime_type}")

常见高比特率音频流itag参考:

  • 251:Opus编码,160kbps(YouTube目前提供的最高比特率音频流之一)
  • 141:AAC编码,256kbps
  • 140:AAC编码,128kbps

2. 转换为320kbps MP3

使用MoviePy转换时,通过bitrate参数指定输出比特率为320kbps:

from moviepy.editor import AudioFileClip

# 直接加载音频文件,无需加载视频
audio_clip = AudioFileClip(audio_file)
# 指定输出MP3的比特率为320k
output_mp3 = f"{download_folder}\\{yt_link.title}.mp3"
audio_clip.write_audiofile(output_mp3, bitrate="320k")

# 释放资源
audio_clip.close()

注意事项

如果YouTube提供的原音频流比特率低于320kbps,转换后的MP3只是强制提升比特率,实际音质不会变好,仅文件体积增大。因此优先选择YouTube提供的最高质量音频流是关键。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:13:10