過去2日間、youtube-dlコマンドラインツールを使用して動画をダウンロードしていました。動画をダウンロードしようとすると、次のようなエラーが表示されます。
$ youtube-dl https://www.youtube.com/watch?v=bFew8mgQJ9o
[youtube] Setting language
[youtube] bFew8mgQJ9o: Downloading video webpage
[youtube] bFew8mgQJ9o: Downloading video info webpage
[youtube] bFew8mgQJ9o: Extracting video information
Traceback (most recent call last):
File "/usr/bin/youtube-dl", line 4645, in <module>
main()
File "/usr/bin/youtube-dl", line 4636, in main
_real_main()
File "/usr/bin/youtube-dl", line 4620, in _real_main
retcode = fd.download(all_urls)
File "/usr/bin/youtube-dl", line 869, in download
ie.extract(url)
File "/usr/bin/youtube-dl", line 1135, in extract
return self._real_extract(url)
File "/usr/bin/youtube-dl", line 1406, in _real_extract
url_map = dict((ud['itag'][0], ud['url'][0] + '&signature=' + ud['sig'][0]) for ud in url_data)
File "/usr/bin/youtube-dl", line 1406, in <genexpr>
url_map = dict((ud['itag'][0], ud['url'][0] + '&signature=' + ud['sig'][0]) for ud in url_data)
KeyError: 'sig'
どうしたの?
まったく同じ問題がありました。
更新されたyoutube-dl:
Sudo youtube-dl -U
Sudo経由でyoutube-dlを実行します
Sudo youtube-dl
そして、配布を変更し、更新する必要があることを通知します。 Enterキーを押すと、準備完了です。
youtube-dl
を使用してYouTubeから動画をダウンロードする前に、プロキシ設定をエクスポートする必要があります。これを行うには、次を使用してプロキシ設定をエクスポートします。
export http_proxy=http://username:password@Host:port_no/
export https_proxy=https://username:password@Host:port_no/
export HTTP_PROXY=http://username:password@Host:port_no/
export HTTPS_PROXY=https://username:password@Host:port_no/
ユーザー名、パスワード、ホスト、およびポート番号をyourそれぞれの変数に置き換えます。ユーザー名またはパスワードに特殊文字がある場合は、その特殊文字をHTMLコードに置き換えてください。ユーザー名とパスワードがない場合は無視し、次のようにエクスポートします。
export HTTP_PROXY=http://Host:port_no/
等.
例:
export HTTP_PROXY=http://123431212:[email protected]:3128/
これを~/.bashrc
ファイルに書き込んで、将来のセッションで何度も何度も書き込まないようにすることもできます。
これを行った後、ビデオのダウンロードを再試行してください。
他の回答に示されているように、Sudoでアップグレードしようとしたとき:
Sudo youtube-dl -U
パッケージマネージャーを使用してyoutube-dlがインストールされたことを示すメッセージが表示されました。これを使用してアップグレードする必要があります。しかし、私はすでにやった
Sudo easy_install -U youtube-dl
最終的に、Sudoを使用して実行するだけで機能しました。
Sudo youtube-dl