3

我正在使用 pytube3 实现一个 youtube 视频下载器。在以下progress_bar()函数中,我收到了一个positional argument丢失的错误。

我的 progress_bar() 函数:

def progress_bar(stream, chunk, file_handle, bytes_remaining):
    file_downloaded = file_size - bytes_remaining
    percentage = (file_downloaded / file_size) * 100
    print(f'{percentage :00.0f}% done...')

我的 YouTube() 对象:

yt_object = YouTube(url, on_progress_callback=progress_bar)

显示或打印进度时出现以下错误

progress_bar() missing 1 required positional argument: 'bytes_remaining'

如果我确实删除了 YouTube 对象中的 progress_bar 引用,即 yt_object,则该文件正在成功下载,但我在实现 progress_bar() 时遇到了错误。

4

1 回答 1

1

遇到了同样的问题。通过这种方式解决了它:

from pytube import YouTube
from pytube.cli import on_progress

def download_video(url):
    yt = YouTube(url, on_progress_callback=on_progress)
    stream = yt.streams.first()
    print("start to download url: " + url)
    print(stream.title)
    stream.download(DOWNLOAD_DIR)
于 2020-06-26T10:56:49.037 回答