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

使用pytube下载YouTube视频遇正则相关错误求解决

解决pytube正则表达式匹配错误的方案

方案一:手动修复pytube核心文件

YouTube页面结构更新会导致pytube原有正则表达式失效,直接修改库文件即可解决:

  1. 找到Python环境中pytube的安装目录(比如Lib\site-packages\pytube)
  2. 打开extract.py文件,找到player_response_regex的定义:
    player_response_regex = re.compile(
        r"ytInitialPlayerResponse\s*=\s*({.*?});\s*var\s+"
    )
    
    将其替换为:
    player_response_regex = re.compile(
        r"ytInitialPlayerResponse\s*=\s*({.*?});\s*</script>"
    )
    
  3. 再打开cipher.py文件,找到var_regex:
    var_regex = re.compile(r"var\s+([a-zA-Z0-9_$]+)\s*=\s*function\(\)\s*\{"
    )
    
    替换为:
    var_regex = re.compile(r"var\s+([a-zA-Z0-9_$]+)\s*=\s*\(function\(\)\s*\{"
    )
    

方案二:安装修复版pytube

如果不想手动修改,直接安装官方最新修复分支:

pip uninstall -y pytube
pip install git+https://github.com/pytube/pytube.git@master

方案三:替换为更稳定的yt-dlp

pytube对YouTube的更新适配较慢,换用yt-dlp能避免这类问题:

  1. 安装yt-dlp:
    pip install yt-dlp
    
  2. 替换你的代码为:
    import yt_dlp
    
    link = "https://www.youtube.com/watch?v=vEQ8CXFWLZU&t=475s&ab_channel=InternetMadeCoder"
    with yt_dlp.YoutubeDL({}) as ydl:
        video_info = ydl.extract_info(link, download=False)
        print(video_info['title'])
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:01:08