0
私は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>'
githubサイトのリンクでエラーが発生せず、mp4でビデオをダウンロードします
YoutubeDL.download "https://www.youtube.com/watch?v=gvdf5n-zI14", output: 'some_file.mp4'
誰かhどのようにこれを修正するためのアイデアとして?そうでない場合は、YouTube動画を別の方法でダウンロードすることをお勧めしますか?
これは、古いビデオは機能していて、新しいビデオは機能しなかったことがわかります。この宝石の代わりに私はオリジナルのyoutube-dlを使い、 "システム"コマンドを使用し、うまくいきました。私のコードをちょっと編集しなければなりませんでした。 – LisanneG
ビデオの年齢は少なくなりますが、ビデオクラスです。音楽(およびいくつかの商業用)ビデオは異なるYouTubeプレーヤーを使用します。もし、この(または他の)答えが解決すれば、それを受け入れることができます(http://meta.stackexchange.com/a/5235/141962)。ありがとう! – phihag