首页 > 解决方案 > Youtube-dl 错误:以 10 为基数的 int() 的无效文字:'7766645.83333'

问题描述

我正在尝试从 .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 可以处理的格式。我目前正在使用 youtube-dl 的2018.06.25版本。

标签: youtube-dlmpd

解决方案


发生错误时阅读回溯。您会注意到它指向源代码/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 更改intfloat似乎可以暂时解决问题。


推荐阅读