así que mi problema es que ejecuto este código simple para intentar hacer un objeto de flujo de pytube...
from pytube import YouTube yt = YouTube('https://www.youtube.com/watch?v=aQNrG7ag2G4') stream = yt.streams.filter(file_extension='mp4')Y terminar con el error en el título.
error completo:
Traceback (most recent call last): File ".\test.py", line 4, in <module> stream = yt.streams.filter(file_extension='mp4') File "C:\Users\logan\AppData\Local\Programs\Python\Python38\lib\site-packages\pytube\__main__.py", line 292, in streams return StreamQuery(self.fmt_streams) File "C:\Users\logan\AppData\Local\Programs\Python\Python38\lib\site-packages\pytube\__main__.py", line 184, in fmt_streams extract.apply_signature(stream_manifest, self.vid_info, self.js) File "C:\Users\logan\AppData\Local\Programs\Python\Python38\lib\site-packages\pytube\extract.py", line 409, in apply_signature cipher = Cipher(js=js) File "C:\Users\logan\AppData\Local\Programs\Python\Python38\lib\site-packages\pytube\cipher.py", line 33, in __init__ raise RegexMatchError( pytube.exceptions.RegexMatchError: __init__: could not find match for ^\w+\Wversión de python: 3.8.10 versión de pytube: 11.0.2
Como sugirió juanchosaravia en https://github.com/pytube/pytube/issues/1199 , para resolver el problema, debe ingresar al archivo cipher.py y reemplazar la línea 30, que es:
var_regex = re.compile(r"^\w+\W")Con esa línea:
var_regex = re.compile(r"^\$*\w+\W")Después de eso, funcionó de nuevo.