如何使用pytube获取YouTube视频的文件大小?
问题原因
- 属性归属错误:
filesize是单条视频流Stream对象的属性,不是YouTube实例的属性。同一个YouTube视频存在多种分辨率、编码格式、音视频组合的流,不同流的文件大小各不相同,无法直接从整个视频对象获取统一的文件大小。 - 执行顺序错误:你当前代码先打印文件大小,后选择目标分辨率的流,还未确定要使用的流自然无法获取对应文件大小。
- 拼写笔误:代码中
Donwloading、DonwloadedVideo存在拼写错误,正确拼写为Downloading、DownloadedVideo。
修正后代码
from pytube import YouTube, Stream import time link = input("Youtube Link: ") video = YouTube(link) # 先选定要下载的视频流 video_resolution = video.streams.get_highest_resolution() print(f""" Title: {video.title} Owner: {video.channel_id} Length: {video.length} 秒 Date Published: {video.publish_date} Rating: {video.rating} Views: {video.views} File Size: {round(video_resolution.filesize / (1024 * 1024), 2)} MB """) time.sleep(1) print("Downloading... ") video_resolution.download('YoutubeVideoDownloader/DownloadedVideo') print("Download complete!")
补充说明
如果需要获取所有可选流的文件大小,可以遍历video.streams逐个打印属性即可。
内容的提问来源于stack exchange,提问作者A Man Codes
相关产品推荐
相关产品推荐

