简介:所以我正在尝试制作一个pytube项目,但我在这一步上被卡住了
问题:我不知道如何让pytube列出所有可用的分辨率
from pytube import YouTube
# import the package
print("Please Paste The URL of the youtube video")
url = input()
# URL (user input)
my_video = YouTube(url)
print(my_video.title)
# Title of The Video
#Now for the Thumbnail Image
print("Thumbnail URL")
print(my_video.thumbnail_url)
#To Download the video with the users Choice of resolution
print("Choose A Resolution Please")
for stream in my_video.stream:
print(stream)
#command for downloading the video
my_video.download()
流对象有一个按分辨率变化的属性。比如说
你有:
但是,由于要显示每个流对象的分辨率,您可以尝试:
我花时间写了一个脚本来测试我的想法
url = "https://youtu.be/o9aaoiyJlcM"
只是一个静态行,我不必重新输入url,如果您愿意,可以将其更改回输入。将链接分配给url
变量后,我将该url
传递给名为sort_resolutions(url)
的函数,在该函数中使用链接并提取我们需要的所有内容。我使用这个函数是因为它使代码更有条理在
sort_resolution
函数通知中,我创建了两个List对象video_resolutions
和videos
,video_resolutions = []
,videos = []
,我用流对象填充它们my_video.streams.order_by('resolution')
这只是按分辨率顺序对流对象进行排序return video_resolutions, videos
只是返回已填充的列表,video_resolutions, videos = sort_resolutions(url)
返回的值现在将被传递给
download
函数download(video_resolutions, videos)
。请注意,在该功能中while loop
是在屏幕上显示所有可下载的可用分辨率的菜单。如果用户选择了一个有效的数字choice
变量收集值,然后我们将使用choice - 1
通过resolution_to_download = video_resolutions[choice - 1]
查找所需分辨率的索引,但这将只查找分辨率。要下载与视频列表中相同索引号匹配的视频,您必须videos[choice - 1].download()
。换句话说,videos[choice - 1]
是一个流对象,因此通过调用下载方法videos[choice - 1].download()
仍然有效再次通知,解决方案列表可能包含解决方案的副本。也许你可以调整一下
相关问题 更多 >
编程相关推荐