我不知道该怎么做,每当我尝试从其他话题中解决这个问题时,我就会出错。 主要是“typeerror:show_progress_bar()缺少一个必需的位置参数:'bytes_retain'”。
from pytube import YouTube
#took this def from another topic
def progress_function(stream, chunk, file_handle, bytes_remaining):
percent = round((1-bytes_remaining/video.filesize)*100)
if( percent%10 == 0):
print(percent, 'done...')
url = "Any youtube url"
yt = YouTube(url, on_progress_callback=progress_function)
yt.streams[0].download()
例如,当我运行这段代码时,它会给我这个错误。
我实在无法理解它的逻辑。 我也搜索了pytube3网站的文档,但我无法解决这个问题。 请帮帮我。 谢了。
删除流
然后它就会工作,最近我试图开发类似的逻辑,遇到类似的错误,
下面是对我有效的代码,
def progress( chunk, file_handle, bytes_remaining):
global filesize
remaining=(100*(bytes_remaining))/filesize
step=100-int(remaining)
print("Completed:",step)#show the percentage of completed download
一旦选择要下载的视频或音频(如
yt = YouTube(str(link)) #yt = YouTube(str(link),on_progress_callback=progress) to implement on_progress_callback
yt1=yt.streams.get_by_itag(int(itag)) #itag is given when you list all the strams of a youtube video
filesize=yt1.filesize
希望这有用!