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

使用pytube下载播放列表音频无输出无报错,程序无限运行求助

解决Pytube下载YouTube播放列表音频无限运行的问题

你的程序出现无响应、无限运行的情况,主要是旧版本Pytube的解析逻辑失效,加上手动修改正则表达式导致匹配错误,以下是针对性修复方案:

1. 优先更新Pytube到最新版

旧版本Pytube对YouTube页面结构的适配已经过时,直接执行升级命令:

pip install --upgrade pytube

2. 删除手动修改的正则表达式

新版本已经修复了播放列表视频列表的获取逻辑,之前添加的这行代码会干扰解析,直接删掉:

playlist._video_regex = re.compile(r'"url":"(/watch\?v=[\w-]*)')

3. 添加调试输出定位问题

如果更新后还是卡住,在代码里加打印语句,明确程序的执行进度:

from pytube import Playlist

YOUTUBE_STREAM_AUDIO = 140
DOWNLOAD_DIR = r'C:\Users\spane\Downloads'

playlist = Playlist('https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi')

# 打印找到的视频数量
print(f"共找到 {len(playlist.video_urls)} 个视频")

for idx, video_url in enumerate(playlist.video_urls):
    print(f"正在处理第 {idx+1} 个视频: {video_url}")
    video = playlist.video_at(idx)
    # 改用更稳定的音频流筛选方式
    audioStream = video.streams.filter(only_audio=True, file_extension='mp4').first()
    print(f"开始下载: {video.title}")
    audioStream.download(output_path=DOWNLOAD_DIR)
    print(f"{video.title} 下载完成!")

4. 检查网络代理

如果打印显示卡在获取视频信息阶段,说明网络无法访问YouTube,需要添加代理:

from pytube.request import set_proxy

# 替换成你的代理地址和端口
set_proxy(proxy_host="127.0.0.1", proxy_port=7890)

# 后续播放列表初始化代码不变

内容的提问来源于stack exchange,提问作者ИСПАНСКАЯ МАТЬ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:33:20