Pytube如何添加进度条?
Pytube how to add a progress bar?
我不知道该怎么做,每当我尝试其他主题的关于这个问题的解决方案时,我都会遇到错误。
主要是 "TypeError: show_progress_bar() missing 1 required positional argument: 'bytes_remaining'".
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 网站上搜索了文档,但我无法解决这个问题。请帮助我。谢谢
去掉stream
就可以了,最近我尝试开发类似的逻辑遇到类似的错误。
这是对我有用的代码:
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
可以检索文件大小,一旦您 select 下载哪个视频或音频,例如
yt = YouTube(str(link), on_progress_callback=progress) # Declare YouTube
yt1 = yt.streams.get_by_itag(int(itag)) # itag is given when you list all the streams of a youtube video
filesize = yt1.filesize
希望对您有所帮助!
我不知道该怎么做,每当我尝试其他主题的关于这个问题的解决方案时,我都会遇到错误。 主要是 "TypeError: show_progress_bar() missing 1 required positional argument: 'bytes_remaining'".
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 网站上搜索了文档,但我无法解决这个问题。请帮助我。谢谢
去掉stream
就可以了,最近我尝试开发类似的逻辑遇到类似的错误。
这是对我有用的代码:
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
可以检索文件大小,一旦您 select 下载哪个视频或音频,例如
yt = YouTube(str(link), on_progress_callback=progress) # Declare YouTube
yt1 = yt.streams.get_by_itag(int(itag)) # itag is given when you list all the streams of a youtube video
filesize = yt1.filesize
希望对您有所帮助!