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

使用pytube下载YouTube内容时报RegexMatchError无法匹配问题求助

pytube get_throttling_function_name: could not find match for multiple 错误解决方案

该错误由YouTube更新前端播放器节流函数的命名规则导致,你本地安装的pytube版本内置的正则匹配规则未同步更新,无法识别新的函数命名格式。

解决方案

方案1:升级pytube到最新版本

优先尝试升级官方正式版,执行以下命令即可:

pip install --upgrade pytube

升级完成后重新运行下载代码测试即可。

方案2:手动修改源码修复(升级后仍报错时使用)

如果官方还未同步更新修复规则,可手动修改pytube的匹配逻辑:

  1. 打开报错提示的pytube安装路径下的cipher.py文件,你对应的路径为:
    C:\Users\Me\AppData\Local\Programs\Python\Python39\lib\site-packages\pytube\cipher.py
  2. 找到文件内get_throttling_function_name函数下的function_patterns列表,将列表原有内容全部替换为以下规则:
function_patterns = [
    r'a\.[a-zA-Z]\s*&&\s*\([a-z]\s*=\s*a\.get\("n"\)\)\s*&&\s*'
    r'\([a-z]\s*=\s*([a-zA-Z0-9$]+)(\[\d+\])?\([a-z]\)',
]
  1. 找到该函数下如下代码行:
return match.group(1)

修改为:

return match.group(1) if not match.group(2) else match.group(1) + match.group(2)
  1. 保存修改后的文件,重新运行下载代码即可正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:30:00