【问题标题】:How can I fix this pytube regex error python3 pytube3如何修复这个 pytube 正则表达式错误 python3 pytube3
【发布时间】:2021-09-01 05:53:17
【问题描述】:

我在运行 python 3.7 的树莓派 4b 上遇到了 pytube 问题。我收到此错误代码:

%Run 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 中,但无济于事。

有人遇到过这个问题并解决了吗?非常感谢任何帮助。

【问题讨论】:

    标签: python raspberry-pi youtube pytube


    【解决方案1】:

    致谢:Stack Overflow 用户 kwarunek 在他的 answer 中创建的正则表达式的修改


    我已经修改了 Stack Overflow 用户 kwarunek 在他的 answer 中创建的正则表达式,结果如下:

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

    您可以在demo 中测试此正则表达式,网址为Debuggex.com

    【讨论】:

    • 所以这段代码你已经提炼了,我该放在哪里呢?我需要为此更换什么?
    • 正则表达式失败的地方 - 仔细检查您在问题中提出的错误:pytube.exceptions.RegexMatchError: regex_search: could not find match for (?:v=|\/)([0-9A-Za-z_-]{11}).*.
    • 嗯,我知道在 extract.py 中出现匹配错误,所以我可以用你提供的那个替换错误正则表达式吗?
    • 我尝试替换东西并将其添加到现有模式中,但仍然是同样的错误
    猜你喜欢
    • 2020-05-03
    • 2022-12-21
    • 1970-01-01
    • 2016-04-15
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    相关资源
    最近更新 更多