Pytube 错误:get_throttle_function_name:找不到多个匹配

kis*_*idu 5 python pytube

我正在尝试从网址“https://www.youtube.com/watch?v=uyVYfSNb_Pc&list=PLBxwSeQlMDNiNt72UmSvKBLsxPgGY_Jy-”下载 YouTube 播放列表,但收到错误“get_throtdling_function_name:无法找到多个匹配”。

代码块是:

`

from pytube import Playlist

play_list = Playlist('https://www.youtube.com/watch?v=uyVYfSNb_Pc&list=PLBxwSeQlMDNiNt72UmSvKBLsxPgGY_Jy-')

print(f'Downloading: {play_list.title}')

for video in play_list.videos:
    print(video.title)
    st = video.streams.get_highest_resolution()
    st.download(r'path')  `
Run Code Online (Sandbox Code Playgroud)

我正在使用最新版本的 pytube。

ero*_*123 7

因为 youtube 改变了一些东西,现在你必须将 pytube 的 ciper.py 更改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$]{2,3})(\[\d+\])?\([a-z]\)'
Run Code Online (Sandbox Code Playgroud)

你还必须将第 288 行更改为:

nfunc=re.escape(function_match.group(1))),
Run Code Online (Sandbox Code Playgroud)

在 pytube 正式发布修复之前,您必须使用此解决方法。

  • 目前有一个针对此修复的拉取请求:https://github.com/pytube/pytube/pull/1312 (2认同)