You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pytube的progress_Check回调参数配置及整数减None报错解决方案咨询

报错根源
  • 回调函数的参数签名和pytube官方要求的规则不匹配,多定义了无效参数file_handle导致参数位置错位,remaining变量无法正确接收到pytube传递的剩余字节数值,仅能拿到你设置的默认值None
  • 全局变量file_size没有提前正确赋值,也可能出现为None的情况,最终触发整数和None做减法的报错
解决方法

修正回调函数的参数定义,直接从pytube传入的stream对象获取文件总大小,无需用全局变量存储,从根源避免变量未初始化的问题。

修正后的完整代码如下:

  1. 进度回调函数
def progress_Check(stream, chunk, bytes_remaining):
    # 直接从stream对象获取文件总字节数,无需依赖全局变量
    total_size = stream.filesize
    bytes_downloaded = total_size - bytes_remaining
    # 增加总大小判断避免除零报错
    if total_size > 0:
        percent = (bytes_downloaded / total_size) * 100
        print("{:00.0f}% downloaded".format(percent))
  1. 调用逻辑无需修改
yt = YouTube(link,on_progress_callback=progress_Check)
补充说明
  • 如果运行仍有异常,可先升级pytube到最新版本:pip install --upgrade pytube
  • 不要给回调参数设置不必要的默认值,避免参数错位时无法第一时间发现问题

内容的提问来源于stack exchange,提问作者SimpleGuy_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:36:07