python - YouTube下载进度栏问题

标签 python download youtube progress-bar pytube

我正在尝试下载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)

最佳答案

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))
不久前,我遇到了同样的问题,这就是我解决问题的方法。希望这也是您的解决方案!

关于python - YouTube下载进度栏问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62153175/

相关文章:

python - 查找列表中数字后跟较大数字的次数

python - 以 Python 方式执行 Bash 命令

android - 如何在mysql数据库中上传图片链接的android中显示图片

node.js - 如何在 res.redirect ('/' )之后执行操作或发送信息?

objective-c - 如何从GDataEntryYouTubeVideo获取YouTube视频ID?

python - 从 [list] 字典 python 中删除多个值

python - Gtk3 with Python, TextView 上升多个 'mark-set' 信号

javascript - YouTube iframe 嵌入在 Internet Explorer 8 中抛出 JavaScript 错误

java - 在 Android Firebase 中获取上传文件的下载 URL 时遇到问题

ios - Youtube 解雇事件(iOS)