0

我正在尝试在下载 Youtube 视频时添加下载进度,但是我尝试的每种方法都会出现一些奇怪的问题。任何人都可以帮忙吗?

问题是 TypeError:progress_func() 缺少 2 个必需的位置参数:“file_handle”和“bytes_remaining”

我尝试为每个提供 None 值,但接着说 bytes_remaining & size 不是同一类型。

谢谢

def progress_func(self, stream, chunk, file_handle,bytes_remaining):
  size = self.video.filesize
  progress = (float(abs(bytes_remaining-size)/size))*float(100)
  self.loadbar.setValue(progress)

yurl = input("VURL here: ")
yt = YouTube(yurl, on_progress_callback=progress_func)
4

1 回答 1

0

on_progress_callback 函数只需要 3 个参数:stream、chunk 和 bytes_remaining。此外,看起来该函数是类中的方法:在这种情况下,您必须使用 lambda 函数手动传递“self”参数,因此您的代码应如下所示:

yt = YouTube(yurl, on_progress_callback=lambda stream, chunk, bytes_remaining: self.progress_func(self, stream, chunk, bytes_remaining))

不久前我遇到了同样的问题,这就是我解决它的方法。希望这也将成为您的解决方案!

于 2020-10-28T11:43:29.503 回答