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

Pytube出现RegexMatchError错误:get_throttling_function_name匹配失败求解决

解决Pytube的RegexMatchError下载问题

问题说明

你的代码出现pytube.exceptions.RegexMatchError: get_throttling_function_name: could not find match for multiple报错,原因是YouTube更新了反爬机制,导致pytube内置的正则表达式无法匹配新的节流函数名称。

可行解决方案

  • 更新pytube到最新稳定版
    执行命令升级:

    pip install --upgrade pytube
    

    官方通常会快速修复这类匹配问题,升级后大概率能解决。

  • 手动修改正则表达式(适用于升级后仍报错的情况)
    找到Python环境中pytube的安装目录(例如Lib/site-packages/pytube),打开cipher.py文件:

    1. 定位到get_throttling_function_name函数
    2. 将原有的function_patterns列表替换为:
      function_patterns = [
          r'a\.[a-zA-Z]\s*&&\s*\([a-z]\s*=\s*a\.get\("n"\)\)\s*&&.*?\|\|\s*([a-z]+)',
          r'\([a-z]\s*=\s*([a-zA-Z0-9$]+)(\[\d+\])?\([a-z]\)',
      ]
      
    3. 保存文件后重新运行下载代码
  • 安装pytube开发版
    如果稳定版未及时修复,安装最新的GitHub开发分支:

    pip install git+https://github.com/pytube/pytube.git
    
  • 使用OAuth登录绕过限制
    在创建YouTube对象时添加OAuth参数,触发浏览器登录验证(仅首次需要):
    在你的_get_streams函数中,将YouTube实例化代码修改为:

    from pytube import YouTube
    
    yt = YouTube(
        cleaned_url,
        use_oauth=True,
        allow_oauth_cache=True
    )
    

    此方法可绕过大部分反爬检测。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 09:12:44