Pytube错误,当我尝试下载视频



当我尝试使用pytube下载视频时pytube.exceptions.RegexMatchError: get_throttling_function_name:无法找到多个匹配项。

我在这里看到这个,但是当我尝试它不工作。(如果是唯一的决定,请发送cipher.py的所有代码)

下面是代码

from pytube import YouTube
stream = YouTube("https://www.youtube.com/watch?v=SBQprWeOx8g").streams.get_highest_resolution()
stream.download('video.mp4')

升级pytube到12.0.0

python3 -m pip install --upgrade pytube

然后如果你得到错误:AttributeError: 'NoneType'对象没有属性'span'进入python根目录,如下所示:

C:Users#AppDataLocalProgramsPythonPython310Libsite-packagespytubeparser.py

修改这一行:152: func_regex = re.compile(r"function([^)]+)")

to this: 152: func_regex = re.compile(r"function([^)]?)")

如果不工作,请尝试:在pytube/cipher.py第311行:

change: name = re.escape(get_throttling_function_name(js))

to: name = "hha"

我也有类似的问题。

跟踪错误,似乎故障点在cipher.py

的286处
array = re.search(
    r'var {nfunc}s*=s*([.+?]);'.format(
        nfunc=re.escape(function_match.group(1))),
    js
)

这一行应该在它给定的youtubeObject.js中找到一个特定的赋值,在我的例子中,所讨论的行实际上确实存在,看起来像这样:

var Msa=[ema],Jsa=!1;

现在我很确定,这是一个逗号,抛出了一个扳动的东西,正则表达式期望行以一个普通的分号结束,因为它会找到的行没有;在]之后,数组找到None并抛出错误

我从

编辑了第287行
r'var {nfunc}s*=s*([.+?]);'.format(

r'var {nfunc}s*=s*([.+?])[;,]'.format(

,以便它能够匹配单独的赋值或与第二个变量一起完成的赋值(就像这里一样)

不幸的是,我是一个业余爱好者,不能可靠地告诉你软件包的位置,但在我的计算中,我通过微软商店重新安装了python,我的cipher.py位于C:Users###AppDataLocalPackagesPythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0LocalCachelocal-packagesPython311site-packagespytubecipher.py

相关内容

  • 没有找到相关文章

最新更新