【问题标题】:pytube urllib.error.HTTPError: HTTP Error 403: Forbiddenpytube urllib.error.HTTPError:HTTP 错误 403:禁止
【发布时间】:2019-07-18 12:46:13
【问题描述】:

当我尝试使用 pytube 从 youtube 下载视频时出现错误。

from pytube import YouTube

yt = YouTube('https://www.youtube.com/watch?v=9bZkp7q19f0')
stream = yt.streams.first()
stream
stream.download()

错误显示“禁止”,但正在获取例如来自同一个 URL 的 curl 似乎工作得很好。这里有什么问题?

Traceback (most recent call last):
  File "C:/Users/Mr. jarvis/Desktop/youtube/youtube.py", line 7, in <module>
    stream.download()
  File "C:\Users\Mr. jarvis\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pytube\streams.py", line 217, in download
    bytes_remaining = self.filesize
  File "C:\Users\Mr. jarvis\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pytube\streams.py", line 164, in filesize
    headers = request.get(self.url, headers=True)
  File "C:\Users\Mr. jarvis\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pytube\request.py", line 21, in get
    response = urlopen(url)
  File "C:\Users\Mr. jarvis\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\Mr. jarvis\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 531, in open
    response = meth(req, response)
  File "C:\Users\Mr. jarvis\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 641, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Users\Mr. jarvis\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 569, in error
    return self._call_chain(*args)
  File "C:\Users\Mr. jarvis\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 503, in _call_chain
    result = func(*args)
  File "C:\Users\Mr. jarvis\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

【问题讨论】:

  • 我在尝试文档中的教程代码时收到了同样的错误。我在 github 上检查了 pytube 的问题,其他人正在经历 the same issue。 github 上的This Issue thread 有一些可能对您有用的解决方案。谷歌经常改变 YouTube,所以你可以打赌这是这个库经常出现的问题。可以从脚本中删除代码中的单个 stream 行,因为它仅在 Python REPL 中使用时打印变量的数据。
  • 感谢您的帮助,如果您找到解决方案,请告诉我

标签: python python-3.x pytube


【解决方案1】:

改用 pytube3,它修复了这个错误(但仅限 Python 3):https://github.com/hbmartin/pytube3

【讨论】:

  • 我试过这个,得到和 OP 一样的错误。似乎所有版本的 pytube 都在 youtube 上自动生成字幕。
猜你喜欢
  • 2017-05-22
  • 1970-01-01
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多