示例代码:
from pytube import YouTube
#ask for the link from user
link = input("输入要下载地址: ")
yt = YouTube(link)
#Showing details
print("Title: ",yt.title)
print("Number of views: ",yt.views)
print("Length of video: ",yt.length)
print("Rating of video: ",yt.rating)
#Getting the highest resolution possible
ys = yt.streams.get_highest_resolution()
#Starting download
print("Downloading...")
ys.download()
print("Download completed!!")
报错信息:
File "C:\Users\Madjid\PycharmProjects\pythonProject\app2.py", line 6, in <module>
yt = YouTube(link)
File "C:\Users\Madjid\PycharmProjects\pythonProject\venv\lib\site-packages\pytube\__main__.py", line 91, in __init__
self.prefetch()
File "C:\Users\Madjid\PycharmProjects\pythonProject\venv\lib\site-packages\pytube\__main__.py", line 181, in prefetch
self.vid_info_raw = request.get(self.vid_info_url)
File "C:\Users\Madjid\PycharmProjects\pythonProject\venv\lib\site-packages\pytube\request.py", line 36, in get
return _execute_request(url).read().decode("utf-8")
File "C:\Users\Madjid\PycharmProjects\pythonProject\venv\lib\site-packages\pytube\request.py", line 24, in _execute_request
return urlopen(request) # nosec
File "E:\Python\lib\urllib\request.py", line 214, in urlopen
return opener.open(url, data, timeout)
File "E:\Python\lib\urllib\request.py", line 523, in open
response = meth(req, response)
File "E:\Python\lib\urllib\request.py", line 632, in http_response
response = self.parent.error(
File "E:\Python\lib\urllib\request.py", line 555, in error
result = self._call_chain(*args)
File "E:\Python\lib\urllib\request.py", line 494, in _call_chain
result = func(*args)
File "E:\Python\lib\urllib\request.py", line 747, in http_error_302
return self.parent.open(new, timeout=req.timeout)
File "E:\Python\lib\urllib\request.py", line 523, in open
response = meth(req, response)
File "E:\Python\lib\urllib\request.py", line 632, in http_response
response = self.parent.error(
File "E:\Python\lib\urllib\request.py", line 561, in error
return self._call_chain(*args)
File "E:\Python\lib\urllib\request.py", line 494, in _call_chain
result = func(*args)
File "E:\Python\lib\urllib\request.py", line 641, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 410: Gone
解决方法:
尝试升级,在11.0.0版本中修复:
python -m pip install --upgrade pytube
或者
python -m pip install git+https://github.com/Zeecka/pytube@fix_1060
如果电脑上还没有安装Git,可以在这个地址安装:https://git-scm.com/download/win