Aar*_*oni 9 python python-3.x pytube
我正在编写一个代码,通过编写下面的代码来查看可用的视频流
from pytube import Playlist
from pytube import YouTube as YT
import threading as th
import time
plist=input('Enter the playlist: ')
videos=list(Playlist(plist))
i=videos[0]
video=YT(i)
strm=video.streams.filter(res="720p")
print(strm)
Run Code Online (Sandbox Code Playgroud)
从上面的代码我得到这样的错误
Traceback (most recent call last):
File "D:\Practicals\Python\ML\youtube\temp.py", line 11, in <module>
strm=video.streams.filter(res="720p")
^^^^^^^^^^^^^
File "D:\Python311\Lib\site-packages\pytube\__main__.py", line 296, in streams
return StreamQuery(self.fmt_streams)
^^^^^^^^^^^^^^^^
File "D:\Python311\Lib\site-packages\pytube\__main__.py", line 176, in fmt_streams
stream_manifest = extract.apply_descrambler(self.streaming_data)
^^^^^^^^^^^^^^^^^^^
File "D:\Python311\Lib\site-packages\pytube\__main__.py", line 161, in streaming_data
return self.vid_info['streamingData']
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
KeyError: 'streamingData'
Run Code Online (Sandbox Code Playgroud)
小智 11
我遇到了同样的问题,并通过向 YT(i) 添加use_oauth和allowed_oauth_cache属性来修复它。
from pytube import Playlist
from pytube import YouTube as YT
import threading as th
import time
plist=input('Enter the playlist: ')
videos=list(Playlist(plist))
i=videos[0]
video=YT(i, use_oauth=True, allow_oauth_cache=True)
strm=video.streams.filter(res="720p")
print(strm)
Run Code Online (Sandbox Code Playgroud)
这将要求您通过浏览器连接到 YouTube 一次,但随后您将可以下载视频。
小智 7
使用 pytube 12.1.2 时遇到同样的错误。
video=YT(i, use_oauth=True, allow_oauth_cache=True)
Run Code Online (Sandbox Code Playgroud)
不适合我。
升级 pytube(到 15.0.0)后,错误消失了。
| 归档时间: |
|
| 查看次数: |
14596 次 |
| 最近记录: |