ytdl-org / youtube-dl

Command-line program to download videos from YouTube.com and other video sites
http://ytdl-org.github.io/youtube-dl/
The Unlicense
132.05k stars 10.01k forks source link

[youtube] Stuck on "Invoking downloader on ..." - IPv6 issue? #20851

Closed ghost closed 5 years ago

ghost commented 5 years ago

Checklist

Verbose log

$ youtube-dl --verbose "https://www.youtube.com/watch?v=m8e-FF8MsqU"
[debug] System config: []
[debug] User config: ['--merge-output-format', 'mkv']
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://www.youtube.com/watch?v=m8e-FF8MsqU']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.04.24
[debug] Python version 3.7.3 (CPython) - Linux-5.0.9-zen1-1-zen-x86_64-with-arch
[debug] exe versions: ffmpeg 4.1.3, ffprobe 4.1.3, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] m8e-FF8MsqU: Downloading webpage
[youtube] m8e-FF8MsqU: Downloading video info webpage
[debug] Default format spec: bestvideo+bestaudio/best
[debug] Invoking downloader on 'https://r1---sn-u2oxu-2v16.googlevideo.com/videoplayback?ip=2a01%3A114f%3A90f%3A1200%3A1d8%3A80f2%3Acf66%3Acffd&keepalive=yes&lmt=1540576584489230&itag=136&requiressl=yes&id=o-AAv6_RE0CwAxC5of6Ozd2bTamcxZHMRnziFg1_iLrq7X&pcm2cms=yes&source=youtube&dur=150.683&mime=video%2Fmp4&txp=5432432&aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278&initcwndbps=615000&ipbits=0&expire=1556339277&sparams=aitags%2Cclen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2cms%2Cpl%2Crequiressl%2Csource%2Cexpire&gir=yes&fvip=1&c=WEB&key=yt6&mm=31%2C29&mn=sn-u2oxu-2v16%2Csn-4g5e6nl7&mt=1556317533&pl=28&mv=m&ei=7YXDXIPQIuf-7AT-4o-gDg&ms=au%2Crdu&signature=34D9451F9DC08ED591C71416ACABBADFA4EC845A.C306D6DE5A13052482DF647443F065F5C9F82E1D&clen=15855682&ratebypass=yes'

Description

Downloading just hangs. It seems this has something to do with using IPv6 instead IPv4. Curl says:

$ curl -v 'https://r1---sn-u2oxu-2v16.googlevideo.com/videoplayback?mt=1556317866&mv=m&ms=au%2Crdu&lmt=1540576584489230&clen=15855682&gir=yes&fvip=1&mm=31%2C29&mn=sn-u2oxu-2v16%2Csn-4g5ednsl&dur=150.683&sparams=aitags%2Cclen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2cms%2Cpl%2Crequiressl%2Csource%2Cexpire&itag=136&expire=1556339596&mime=video%2Fmp4&keepalive=yes&source=youtube&pcm2cms=yes&pl=28&signature=E14FDD63EA90B81DF155851359C354A2E2C86F5C.82F9D9899FC49C101C8A009C80C902CF2C6E5AF0&aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278&requiressl=yes&txp=5432432&initcwndbps=620000&c=WEB&id=o-AIhGDbtMW4qOmc9B7MS8xYz3mrcoQlSy0pcUiSa5yU3W&ei=K4fDXI7COLjp7gTi5ZbQBw&ip=2a01%3A114f%3A90f%3A1200%3A1d8%3A80f2%3Acf66%3Acffd&key=yt6&ipbits=0&ratebypass=yes'                                                                               
*   Trying 2a00:f46:0:4102::c...
* TCP_NODELAY set
* Connected to r1---sn-u2oxu-2v16.googlevideo.com (2a00:f46:0:4102::c) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
^C

N-th try:

$ curl -v 'https://r1---sn-u2oxu-2v16.googlevideo.com/videoplayback?mt=1556317866&mv=m&ms=au%2Crdu&lmt=1540576584489230&clen=15855682&gir=yes&fvip=1&mm=31%2C29&mn=sn-u2oxu-2v16%2Csn-4g5ednsl&dur=150.683&sparams=aitags%2Cclen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2cms%2Cpl%2Crequiressl%2Csource%2Cexpire&itag=136&expire=1556339596&mime=video%2Fmp4&keepalive=yes&source=youtube&pcm2cms=yes&pl=28&signature=E14FDD63EA90B81DF155851359C354A2E2C86F5C.82F9D9899FC49C101C8A009C80C902CF2C6E5AF0&aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278&requiressl=yes&txp=5432432&initcwndbps=620000&c=WEB&id=o-AIhGDbtMW4qOmc9B7MS8xYz3mrcoQlSy0pcUiSa5yU3W&ei=K4fDXI7COLjp7gTi5ZbQBw&ip=2a01%3A114f%3A90f%3A1200%3A1d8%3A80f2%3Acf66%3Acffd&key=yt6&ipbits=0&ratebypass=yes'
*   Trying 2a00:f46:0:4102::c...
* TCP_NODELAY set
*   Trying 46.134.212.76...
* TCP_NODELAY set
* Connected to r1---sn-u2oxu-2v16.googlevideo.com (46.134.212.76) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: C=US; ST=California; L=Mountain View; O=Google LLC; CN=*.googlevideo.com
*  start date: Apr  9 13:49:00 2019 GMT
*  expire date: Jun 18 13:49:00 2019 GMT
*  subjectAltName: host "r1---sn-u2oxu-2v16.googlevideo.com" matched cert's "*.googlevideo.com"
*  issuer: C=US; O=Google Trust Services; CN=Google Internet Authority G3
*  SSL certificate verify ok.
> GET /videoplayback?mt=1556317866&mv=m&ms=au%2Crdu&lmt=1540576584489230&clen=15855682&gir=yes&fvip=1&mm=31%2C29&mn=sn-u2oxu-2v16%2Csn-4g5ednsl&dur=150.683&sparams=aitags%2Cclen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2cms%2Cpl%2Crequiressl%2Csource%2Cexpire&itag=136&expire=1556339596&mime=video%2Fmp4&keepalive=yes&source=youtube&pcm2cms=yes&pl=28&signature=E14FDD63EA90B81DF155851359C354A2E2C86F5C.82F9D9899FC49C101C8A009C80C902CF2C6E5AF0&aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278&requiressl=yes&txp=5432432&initcwndbps=620000&c=WEB&id=o-AIhGDbtMW4qOmc9B7MS8xYz3mrcoQlSy0pcUiSa5yU3W&ei=K4fDXI7COLjp7gTi5ZbQBw&ip=2a01%3A114f%3A90f%3A1200%3A1d8%3A80f2%3Acf66%3Acffd&key=yt6&ipbits=0&ratebypass=yes HTTP/1.1
> Host: r1---sn-u2oxu-2v16.googlevideo.com
> User-Agent: curl/7.64.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Last-Modified: Fri, 26 Oct 2018 17:56:24 GMT
< Content-Type: video/mp4
< Date: Fri, 26 Apr 2019 22:40:16 GMT
< Expires: Fri, 26 Apr 2019 22:40:16 GMT
< Cache-Control: private, max-age=20880
< Accept-Ranges: bytes
< Content-Length: 15855682
< Connection: keep-alive
< Alt-Svc: quic=":443"; ma=2592000; v="46,44,43,39"
< X-Restrict-Formats-Hint: None
< X-Content-Type-Options: nosniff
< Server: gvs 1.0
< 
Warning: Binary output can mess up your terminal. Use "--output -" to tell 
Warning: curl to output it to your terminal anyway, or consider "--output 
Warning: <FILE>" to save to a file.
* Failed writing body (0 != 16384)
* Closing connection 0
* TLSv1.2 (OUT), TLS alert, close notify (256):

Random example video: https://www.youtube.com/watch?v=m8e-FF8MsqU - works perfectly in my web browser (Firefox 66).

dstftw commented 5 years ago

Most likely IPv6 issue on your side.