Youtube-dl 错误:以 10 为基数的 int() 的无效文字:'7766645.83333'

Posted

技术标签:

【中文标题】Youtube-dl 错误:以 10 为基数的 int() 的无效文字:\'7766645.83333\'【英文标题】:Youtube-dl error: invalid literal for int() with base 10: '7766645.83333'Youtube-dl 错误:以 10 为基数的 int() 的无效文字:'7766645.83333' 【发布时间】:2018-06-29 16:46:56 【问题描述】:

我正在尝试从 .mpd 文件下载视频,但出现以下错误:

ValueError: invalid literal for int() with base 10: '7766645.83333'

当我查看 .mpd 文件时,它有这些 <S> 元素,其中一些包含浮点数。

<S t="636000000" d="6000000"/>
<S t="642000000" d="6000000"/>
<S t="648000000" d="7766645.83333"/>

程序似乎有一个问题,d 是一个浮点数。但是,如果分段显示如下:

<SegmentURL media="segment-1.m4s"/>
<SegmentURL media="segment-2.m4s"/>
<SegmentURL media="segment-3.m4s"/>

那么就没有问题了。有解决方法吗?有没有办法可以将此 .mpd 文件转换为 youtube-dl 可以处理的格式。我目前正在使用 2018.06.25 版本的 youtube-dl。

【问题讨论】:

您下载的是哪个网址?这应该只在 youtube-dl 中修复,但我和其他任何人都无法在无法重现问题的情况下真正做到这一点。 嘿,我也遇到了同样的问题,你找到解决方案了吗? 【参考方案1】:

发生错误时读取回溯。你会注意到它指向源代码/usr/lib/python3.6/site-packages/youtube_dl/extractor/common.py,或类似的东西。当您打开该文件:行时,您会看到类似

't': int(s.get('t', 0)),
 # @d is mandatory (see [1, 5.3.9.6.2, Table 17, page 60])
'd': int(s.attrib['d']),
'r': r,

把2个int改成float好像可以暂时解决问题。

【讨论】:

以上是关于Youtube-dl 错误:以 10 为基数的 int() 的无效文字:'7766645.83333'的主要内容,如果未能解决你的问题,请参考以下文章

django ValueError:以 10 为基数的 int() 的无效文字:''

Django:无法将空表单字段保存到数据库 - 以 10 为基数的 int() 的无效文字:''

基数排序循环错误

以 10 为基数到以 2 为基数的数字转换如何工作?

youtube-dl 使用小记

Django - ValueError: int() 以 10 为基数的无效文字:''