Ошибка Youtube-dl: неверный литерал для int () с основанием 10: '7766645.83333' - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь загрузить видео из файла .mpd и получаю следующую ошибку:

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

Когда я смотрю в файл .mpd, он содержит эти <S> элементы, некоторые из которых содержат float.

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

Программа, похоже, имеет проблему с d, являющимся float. Однако, если сегменты отображаются так:

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

Тогда нет проблем. Есть ли обходной путь для этого? Есть ли способ, которым я могу преобразовать этот файл .mpd в формат, который может обрабатывать youtube-dl. В настоящее время я использую 2018.06.25 версию youtube-dl.

1 Ответ

0 голосов
/ 08 июля 2018

Считайте обратную трассировку при возникновении ошибки. Вы заметите, что он указывает на исходный код /usr/lib/python3.6/site-packages/youtube_dl/extractor/common.py или что-то подобное. Когда вы откроете этот файл: line, вы увидите что-то вроде

'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, похоже, временно решает проблему.

...