tldr:最新のyoutube-dlが4つのデバイスのうち1つで奇妙に動作し、リクエスト間のタイムアウトを無視する
私はしばらくの間youtube-dlを使用してビデオをダウンロードしています。サーバー側で何かが変更されると時々機能しなくなり、クイックアップデートで修正されます。私がこれを使用していたデスクトップPCを持っていますが、再び動作しなくなりました。最後に成功したビデオのダウンロードは2019-10-08でした。私はアップデートをしばらく待っていましたが、これを修正したものはありません。
当時、私のPCは以前のLTS(16.04だと思います)を実行していたため、18.04にアップグレードし、youtube-dlパッケージを削除し、以前のpipパッケージをクリーンアップしました。 youtube-dlをpipのリポジトリから試し、直接(wget https://yt-dl.org/latest/youtube-dl -O ~/bin/ytdl2
を使用して)サイトから試しても、どちらも機能しません。
このPCは、Raspberry Pi(1B +)とともに、同じ外部IPアドレスを持つルーターの後ろにあります。-自宅にいるとき-ラップトップとAndroid電話。両方のpipのyoutube -dlと上記のURLの1つは、他のすべてのデバイスで完全に機能します(電話のTermuxのpython内)。ただし、これを私のPCで実行したいと思います。
このプログラムは私のPCのさまざまなWebサイトでも動作しますが(チェックビッキュート)、YouTubeでは動作しません。エラーコード429は、サーバーがダウンロードの速度を気に入らないことを示唆しているため、-socket-timeout、-sleep-interval、-limit-rateオプション(数秒)を使用してダウンロード速度を制限しようとしました、および50kB/sまで)、何も変更されません。ユーザーエージェント文字列がすべてのデバイスでわずかに異なることに気付いたので、それも変更しようとしました。 --geo-bypassは問題ではありません。私は約30種類のビデオを試しましたが、音だけを試しました。 --get-titleを使用して動画のタイトルだけを取得しても、なんとかして失敗します。ブラウザで同じ動画を見ることができます。私のIPも明らかに禁止されていません。
タイトルを取得したいだけでも同じです。もう1つ:PCとラップトップでtime ytdl2 --print-traffic --get-title --socket-timeout 5 --sleep-interval 5 --max-sleep-interval 10 https://www.youtube.com/watch?v=SuqRisgZfrU
を実行して結果を比較すると、ラップトップがリクエスト間で少し長く待機しているのに、プロセスが約2秒で完了することがわかります。しかし、--ignore-configを使用した場合でも、何かが原因で速度が異なり、結果が異なります。 (私のPCは私のラップトップより約8年古いですが、私の電話とRPiは明らかに遅いです)
したがって、4つのデバイスすべてでコードが同じであっても、18.04 Ubuntuを実行している両方のコンピューターはタイムアウト、構成を無視しますが、一方は要求が成功するまで十分待機し、もう一方は待機しません。以前は機能していました。
確認すべき点や修正方法はありますか?
私のPCからの完全な出力:
nyos@hex:~$ time ytdl2 --print-traffic --get-title --socket-timeout 5 --sleep-interval 5 --max-sleep-interval 10 --ignore-config https://www.youtube.com/watch?v=SuqRisgZfrU
send: u'GET /watch?has_verified=1&bpctr=9999999999&hl=en&v=SuqRisgZfrU&disable_polymer=true&gl=US HTTP/1.1\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.38 Safari/537.36\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nHost: www.youtube.com\r\nCookie: PREF=f1=50000000&hl=en\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
header: Cache-Control: no-cache
header: Strict-Transport-Security: max-age=31536000
header: Expires: Tue, 27 Apr 1971 19:44:06 EST
header: X-Frame-Options: SAMEORIGIN
header: X-Content-Type-Options: nosniff
header: Content-Encoding: gzip
header: Content-Type: text/html; charset=utf-8
header: P3P: CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info."
header: Date: Thu, 17 Oct 2019 00:51:35 GMT
header: Server: YouTube Frontend Proxy
header: X-XSS-Protection: 0
header: Set-Cookie: VISITOR_INFO1_LIVE=sn_5wz6eikA; path=/; domain=.youtube.com; expires=Tue, 14-Apr-2020 00:51:35 GMT; httponly
header: Set-Cookie: GPS=1; path=/; domain=.youtube.com; expires=Thu, 17-Oct-2019 01:21:35 GMT
header: Set-Cookie: s_gl=1d69aac621b2f9c0a25dade722d6e24bcwIAAABVUw==; path=/; domain=.youtube.com
header: Set-Cookie: YSC=OGFieKP1qeE; path=/; domain=.youtube.com; httponly
header: Alt-Svc: quic=":443"; ma=2592000; v="46,43",h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000
header: Connection: close
header: Transfer-Encoding: chunked
send: u'GET /get_video_info?ps=default&el=embedded&video_id=SuqRisgZfrU&hl=en&disable_polymer=true&gl=US&eurl= HTTP/1.1\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.38 Safari/537.36\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nHost: www.youtube.com\r\nCookie: s_gl=1d69aac621b2f9c0a25dade722d6e24bcwIAAABVUw==; VISITOR_INFO1_LIVE=sn_5wz6eikA; YSC=OGFieKP1qeE; PREF=f1=50000000&hl=en; GPS=1\r\n\r\n'
reply: 'HTTP/1.1 429 Too Many Requests\r\n'
header: Expires: Tue, 27 Apr 1971 19:44:06 EST
header: X-Frame-Options: SAMEORIGIN
header: Cache-Control: no-cache
header: Content-Type: text/html; charset=utf-8
header: Strict-Transport-Security: max-age=31536000
header: X-Content-Type-Options: nosniff
header: P3P: CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info."
header: Content-Length: 0
header: Date: Thu, 17 Oct 2019 00:51:35 GMT
header: Server: YouTube Frontend Proxy
header: X-XSS-Protection: 0
header: Set-Cookie: s_gl=1d69aac621b2f9c0a25dade722d6e24bcwIAAABVUw==; path=/; domain=.youtube.com
header: Alt-Svc: quic=":443"; ma=2592000; v="46,43",h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000
header: Connection: close
WARNING: unable to download video info webpage: HTTP Error 429: Too Many Requests
send: u'GET /get_video_info?ps=default&el=detailpage&video_id=SuqRisgZfrU&hl=en&disable_polymer=true&gl=US&eurl= HTTP/1.1\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.38 Safari/537.36\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nHost: www.youtube.com\r\nCookie: s_gl=1d69aac621b2f9c0a25dade722d6e24bcwIAAABVUw==; VISITOR_INFO1_LIVE=sn_5wz6eikA; YSC=OGFieKP1qeE; PREF=f1=50000000&hl=en; GPS=1\r\n\r\n'
reply: 'HTTP/1.1 429 Too Many Requests\r\n'
header: P3P: CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info."
header: Strict-Transport-Security: max-age=31536000
header: Content-Type: text/html; charset=utf-8
header: Cache-Control: no-cache
header: Content-Length: 0
header: X-Frame-Options: SAMEORIGIN
header: X-Content-Type-Options: nosniff
header: Expires: Tue, 27 Apr 1971 19:44:06 EST
header: Date: Thu, 17 Oct 2019 00:51:35 GMT
header: Server: YouTube Frontend Proxy
header: X-XSS-Protection: 0
header: Set-Cookie: s_gl=1d69aac621b2f9c0a25dade722d6e24bcwIAAABVUw==; path=/; domain=.youtube.com
header: Alt-Svc: quic=":443"; ma=2592000; v="46,43",h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000
header: Connection: close
WARNING: unable to download video info webpage: HTTP Error 429: Too Many Requests
send: u'GET /get_video_info?ps=default&el=vevo&video_id=SuqRisgZfrU&hl=en&disable_polymer=true&gl=US&eurl= HTTP/1.1\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.38 Safari/537.36\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nHost: www.youtube.com\r\nCookie: s_gl=1d69aac621b2f9c0a25dade722d6e24bcwIAAABVUw==; VISITOR_INFO1_LIVE=sn_5wz6eikA; YSC=OGFieKP1qeE; PREF=f1=50000000&hl=en; GPS=1\r\n\r\n'
reply: 'HTTP/1.1 429 Too Many Requests\r\n'
header: Content-Length: 0
header: X-Content-Type-Options: nosniff
header: Strict-Transport-Security: max-age=31536000
header: P3P: CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info."
header: Cache-Control: no-cache
header: Content-Type: text/html; charset=utf-8
header: Expires: Tue, 27 Apr 1971 19:44:06 EST
header: X-Frame-Options: SAMEORIGIN
header: Date: Thu, 17 Oct 2019 00:51:36 GMT
header: Server: YouTube Frontend Proxy
header: X-XSS-Protection: 0
header: Set-Cookie: s_gl=1d69aac621b2f9c0a25dade722d6e24bcwIAAABVUw==; path=/; domain=.youtube.com
header: Alt-Svc: quic=":443"; ma=2592000; v="46,43",h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000
header: Connection: close
WARNING: unable to download video info webpage: HTTP Error 429: Too Many Requests
send: u'GET /get_video_info?ps=default&video_id=SuqRisgZfrU&hl=en&disable_polymer=true&gl=US&eurl= HTTP/1.1\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.38 Safari/537.36\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nHost: www.youtube.com\r\nCookie: s_gl=1d69aac621b2f9c0a25dade722d6e24bcwIAAABVUw==; VISITOR_INFO1_LIVE=sn_5wz6eikA; YSC=OGFieKP1qeE; PREF=f1=50000000&hl=en; GPS=1\r\n\r\n'
reply: 'HTTP/1.1 429 Too Many Requests\r\n'
header: X-Frame-Options: SAMEORIGIN
header: Content-Type: text/html; charset=utf-8
header: Cache-Control: no-cache
header: P3P: CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info."
header: Expires: Tue, 27 Apr 1971 19:44:06 EST
header: Content-Length: 0
header: Strict-Transport-Security: max-age=31536000
header: X-Content-Type-Options: nosniff
header: Date: Thu, 17 Oct 2019 00:51:36 GMT
header: Server: YouTube Frontend Proxy
header: X-XSS-Protection: 0
header: Set-Cookie: s_gl=1d69aac621b2f9c0a25dade722d6e24bcwIAAABVUw==; path=/; domain=.youtube.com
header: Alt-Svc: quic=":443"; ma=2592000; v="46,43",h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000
header: Connection: close
WARNING: unable to download video info webpage: HTTP Error 429: Too Many Requests
ERROR: SuqRisgZfrU: YouTube said: Unable to extract video data
real 0m2,595s
user 0m1,494s
sys 0m0,054s
そして私のラップトップ:
nyos@shodan:~$ time ytdl2 --print-traffic --get-title --socket-timeout 5 --sleep-interval 5 --max-sleep-interval 10 --ignore-config https://www.youtube.com/watch?v=SuqRisgZfrU
send: u'GET /watch?has_verified=1&bpctr=9999999999&hl=en&v=SuqRisgZfrU&disable_polymer=true&gl=US HTTP/1.1\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nHost: www.youtube.com\r\nCookie: PREF=f1=50000000&hl=en\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
header: Content-Encoding: gzip
header: Strict-Transport-Security: max-age=31536000
header: P3P: CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info."
header: X-Content-Type-Options: nosniff
header: X-Frame-Options: SAMEORIGIN
header: Content-Type: text/html; charset=utf-8
header: Cache-Control: no-cache
header: Expires: Tue, 27 Apr 1971 19:44:06 EST
header: Date: Thu, 17 Oct 2019 00:53:09 GMT
header: Server: YouTube Frontend Proxy
header: X-XSS-Protection: 0
header: Set-Cookie: s_gl=1d69aac621b2f9c0a25dade722d6e24bcwIAAABVUw==; path=/; domain=.youtube.com
header: Set-Cookie: VISITOR_INFO1_LIVE=HQNpuTQ4WDc; path=/; domain=.youtube.com; expires=Tue, 14-Apr-2020 00:53:09 GMT; httponly
header: Set-Cookie: YSC=F1swT5PPA-s; path=/; domain=.youtube.com; httponly
header: Set-Cookie: GPS=1; path=/; domain=.youtube.com; expires=Thu, 17-Oct-2019 01:23:09 GMT
header: Alt-Svc: quic=":443"; ma=2592000; v="46,43",h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000
header: Connection: close
header: Transfer-Encoding: chunked
send: u'GET /get_video_info?ps=default&el=embedded&video_id=SuqRisgZfrU&hl=en&disable_polymer=true&gl=US&eurl= HTTP/1.1\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nHost: www.youtube.com\r\nCookie: YSC=F1swT5PPA-s; VISITOR_INFO1_LIVE=HQNpuTQ4WDc; GPS=1; PREF=f1=50000000&hl=en; s_gl=1d69aac621b2f9c0a25dade722d6e24bcwIAAABVUw==\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
header: X-Content-Type-Options: nosniff
header: Cache-Control: no-store
header: Content-Type: application/x-www-form-urlencoded
header: Content-Encoding: gzip
header: P3P: CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info."
header: Strict-Transport-Security: max-age=31536000
header: Expires: Tue, 27 Apr 1971 19:44:06 EST
header: X-Frame-Options: SAMEORIGIN
header: Date: Thu, 17 Oct 2019 00:53:10 GMT
header: Server: YouTube Frontend Proxy
header: X-XSS-Protection: 0
header: Alt-Svc: quic=":443"; ma=2592000; v="46,43",h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000
header: Connection: close
header: Transfer-Encoding: chunked
Itt a legcuccosabb lasagne a világon!
real 0m1,970s
user 0m1,028s
sys 0m0,044s
私のopenwrtルーターでも同じ問題が発生し、私のコンピューターでは問題なく動作していたため、IP禁止の問題はありませんでした。
curl、aria2cでさえnetcatは429で応答しました。
私にとって、カーネル4.14.150にアップグレードしたときに解決した問題...
(4.14.148と4.14.149の両方に同じ問題がありました)