Я использую драгоценный камень под названием youtube-dl.rb, он отлично работает, но несколько дней назад он дал мне ошибку, и я не смог почини это.Ошибка Ruby youtube-dl.rb, вызванная KeyError ('Ai',)
Это пример кода, я использовал, чтобы проверить камень после того, как он продолжал давать мне ошибки:
require 'youtube-dl.rb'
options_mp3 = {
extract_audio: true,
audio_format: "mp3",
output: '%(title)s.%(ext)s'
}
YoutubeDL.download "https://www.youtube.com/watch?v=bqUZn0gWLk4", options_mp3
И это ошибка я получаю:
D:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/cocaine-0.5.8/lib/cocaine/command_line.rb:91:in `run': Command 'D:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/youtube-dl.rb-0.3.1.2016.09.11.1/vendor/bin/youtube-dl --output "some_file.mp3" --no-color --no-progress --print-json "https://www.youtube.com/watch?v=bqUZn0gWLk4"' returned 1. Expected 0 (Cocaine::ExitStatusError)
Here is the command output: STDOUT:
STDERR:
ERROR: Signature extraction failed: Traceback (most recent call last):
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpj47q005f\build\youtube_dl\extractor\youtube.py", line 1005, in _decrypt_signature
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpj47q005f\build\youtube_dl\extractor\youtube.py", line 932, in _extract_signature_function
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpj47q005f\build\youtube_dl\extractor\youtube.py", line 984, in <lambda>
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpj47q005f\build\youtube_dl\jsinterp.py", line 254, in resf
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpj47q005f\build\youtube_dl\jsinterp.py", line 55, in interpret_statement
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpj47q005f\build\youtube_dl\jsinterp.py", line 174, in interpret_expression
KeyError: 'Ai'
(caused by KeyError('Ai',)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
from D:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/youtube-dl.rb-0.3.1.2016.09.11.1/lib/youtube-dl/runner.rb:62:in `run'
from D:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/youtube-dl.rb-0.3.1.2016.09.11.1/lib/youtube-dl/video.rb:39:in `download'
from D:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/youtube-dl.rb-0.3.1.2016.09.11.1/lib/youtube-dl/video.rb:15:in `download'
from D:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/youtube-dl.rb-0.3.1.2016.09.11.1/lib/youtube-dl.rb:25:in `download'
from test.rb:12:in `<main>'
Всякий раз, когда я использовал пример YouTube ссылка на сайте GitHub это не дает мне ошибку и загружает видео в mp4
YoutubeDL.download "https://www.youtube.com/watch?v=gvdf5n-zI14", output: 'some_file.mp4'
Кто-то час как любая идея, как это исправить? Если нет, любое предложение по загрузке видео YouTube по-другому?
Было бы разумно, что старые видео работали, а новые - нет. Вместо этого gem я использую оригинальный youtube-dl, и теперь я использую команду «system», и она отлично работает, просто пришлось немного изменить код. – LisanneG
Это меньше о возрасте видео, но видео-классе. Музыка (и некоторые коммерческие) видео использует другой плеер YouTube. Таким образом, если этот (или любой другой) ответ будет решен, не стесняйтесь [принять его] (http://meta.stackexchange.com/a/5235/141962). Благодаря! – phihag