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.01k stars 10.01k forks source link

[RTP] Add support to download live videos (Failed to download m3u8 information: HTTP Error 403: Forbidden) #14285

Open Pedro-MC opened 7 years ago

Pedro-MC commented 7 years ago

What is the purpose of your issue?


Fail to download RTP live videos.

$ youtube-dl --version
2017.09.15
$ youtube-dl --verbose 'http://www.rtp.pt/play/direto/rtp1'
[debug] System config: []                                                                                                                                                   
[debug] User config: []                                                                                                                                                     
[debug] Custom config: []                                                                                                                                                   
[debug] Command-line args: [u'--verbose', u'http://www.rtp.pt/play/direto/rtp1']                                                                                            
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2017.09.15
[debug] Python version 2.7.9 - Linux-4.4.88-desktop-1.mga5-x86_64-with-mandrake-5-Official
[debug] exe versions: ffmpeg 2.4.13, ffprobe 2.4.13
[debug] Proxy map: {}
[generic] rtp1: Requesting header
WARNING: Falling back on generic information extractor.
[generic] rtp1: Downloading webpage
[generic] rtp1: Extracting information
[generic] playlist: Downloading m3u8 information
ERROR: Failed to download m3u8 information: HTTP Error 403: Forbidden (caused by HTTPError()); 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.
  File "/usr/bin/youtube-dl/youtube_dl/extractor/common.py", line 503, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/usr/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 2177, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib64/python2.7/urllib2.py", line 437, in open
    response = meth(req, response)
  File "/usr/lib64/python2.7/urllib2.py", line 550, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib64/python2.7/urllib2.py", line 475, in error
    return self._call_chain(*args)
  File "/usr/lib64/python2.7/urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "/usr/lib64/python2.7/urllib2.py", line 558, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
yan12125 commented 7 years ago

Currently you can use referer to download them:

youtube-dl -v "http://www.rtp.pt/play/direto/rtp1" --referer "http://www.rtp.pt/play/direto/rtp1"

Anyway it would be a nice feature to have this function built-in.