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

如何通过PyTube清晰打印YouTube视频的全部分辨率?

解决PyTube获取YouTube视频所有分辨率不全的问题

你之前的代码只过滤了progressive流,这是问题核心——YouTube的progressive流是音视频合并的格式,仅支持低分辨率(通常最高到720p);而1080p及以上的高分辨率视频,都是以adaptive流的形式存在(视频与音频分离),只取progressive流必然会漏掉这些高分辨率选项。

要获取所有分辨率,需要同时包含progressive和adaptive的视频流,具体实现代码如下:

from pytube import YouTube

video_url = "你的YouTube视频链接"
yt = YouTube(video_url)

# 获取所有视频流(包含progressive和adaptive),提取分辨率并去重
resolutions = []
for stream in yt.streams.filter(type="video"):
    if stream.resolution not in resolutions:
        resolutions.append(stream.resolution)

# 按分辨率数值大小排序(避免字符串排序导致的顺序错误)
resolutions.sort(key=lambda x: int(x[:-1]))

print("所有可用分辨率:")
for res in resolutions:
    print(res)

代码关键点说明:

  • yt.streams.filter(type="video"):筛选所有视频流,覆盖音视频合并的progressive和分离的adaptive两种类型
  • 去重处理:同一分辨率可能对应不同编码格式的流,避免重复添加
  • 自定义排序规则:key=lambda x: int(x[:-1]) 提取分辨率的数字部分转成整数,保证排序为144p→240p→360p→…→2160p的正确顺序

运行代码后,会输出该视频完整的分辨率列表,示例如下:

所有可用分辨率:
144p
240p
360p
480p
720p
1080p
1440p
2160p

内容的提问来源于stack exchange,提问作者Hasan Hüseyin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 12:13:18