Как я могу исправить эту ошибку регулярного выражения pytube python3 pytube3

У меня проблемы с pytube на raspberry pi 4b под управлением python 3.7. Я получаю этот код ошибки:

%Запустить Pyoutube_downloader
https://www.youtube.com/watch?v=-QLVxOvESf4

Traceback (most recent call last):
  File "/home/pi/Documents/My_Scripts/Pyoutube_downloader", line 5, in <module>
    yt = YouTube(link)
  File "/home/pi/.local/lib/python3.7/site-packages/pytube/__main__.py", line 71, in __init__
    self.video_id = extract.video_id(url)
  File "/home/pi/.local/lib/python3.7/site-packages/pytube/extract.py", line 162, in video_id
    return regex_search(r"(?:v=|\/)([0-9A-Za-z_-]{11}).*", url, group=1)
  File "/home/pi/.local/lib/python3.7/site-packages/pytube/helpers.py", line 129, in regex_search
    raise RegexMatchError(caller="regex_search", pattern=pattern)
pytube.exceptions.RegexMatchError: regex_search: could not find match for (?:v=|\/)([0-9A-Za-z_-]{11}).*

Я пробовал все изменения и обновления, описанные на github, я пытался обновить все и пытался скопировать и вставить код ошибки специально в Google, но безрезультатно.

У кого-нибудь было такое и исправил? Любая помощь приветствуется.


person Unagi    schedule 16.06.2021    source источник


Ответы (1)


Кредиты: изменение выражения регулярного выражения, созданного пользователем Stack Overflow kwarunek в его ответить


Я изменил выражение регулярного выражения, созданное пользователем Stack Overflow kwarunek в его ответ и вот результат:

(?:https?:\/\/)?(?:www.)?(?:[0-9A-Z-]+\.)?(?:youtube|youtu|youtube-nocookie)\.(?:com|be)\/(?:watch\?v=|watch\?.+&v=|embed\/|v\/|.+\?v=)?([^&=\n%\?]{11})

Визуализация регулярных выражений

Вы можете протестировать это регулярное выражение в этой демонстрации, доступной по адресу Debuggex.com

person Community    schedule 16.06.2021
comment
Итак, этот код вы усовершенствовали, куда мне его поместить? И что мне нужно заменить для этого? - person Unagi; 16.06.2021
comment
где выражение регулярного выражения не работает - внимательно проверьте ошибки, которые вы указали в своем вопросе: pytube.exceptions.RegexMatchError: regex_search: could not find match for (?:v=|\/)([0-9A-Za-z_-]{11}).*. - person Marco Aurelio Fernandez Reyes; 16.06.2021
comment
Ну, я знаю, что ошибка совпадения появляется в extract.py, поэтому я бы заменил регулярное выражение ошибки тем, которое вы предоставили, да? - person Unagi; 16.06.2021
comment
Я попытался заменить вещи и добавить это к существующим шаблонам, и все та же ошибка. - person Unagi; 17.06.2021