Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iPlayer downloads fail with 404 if you specify a bitrate. #10247

Closed
DavidCWGA opened this issue Aug 7, 2016 · 1 comment
Closed

iPlayer downloads fail with 404 if you specify a bitrate. #10247

DavidCWGA opened this issue Aug 7, 2016 · 1 comment

Comments

@DavidCWGA
Copy link

@DavidCWGA DavidCWGA commented Aug 7, 2016

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2016.08.06. If it's not read this FAQ entry and update. Issues with outdated version will be rejected.

  • I've verified and I assure that I'm running youtube-dl 2016.08.06

Before submitting an issue make sure you have:

  • At least skimmed through README and most notably FAQ and BUGS sections
  • Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

  • Bug report (encountered problems with youtube-dl)
  • Site support request (request for adding support for a new site)
  • Feature request (request for a new functionality)
  • Question
  • Other

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:

Add -v flag to your command line you run youtube-dl with, copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):

$ youtube-dl --verbose -f "[vbr<4000]" http://www.bbc.co.uk/iplayer/episode/b07mzrxt/olympic-ceremonies-2016-opening-ceremony
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'--verbose', u'-f', u'[vbr<4000]', u'http://www.bbc.co.uk/iplayer/episode/b07mzrxt/olympic-ceremonies-2016-opening-ceremony']
[debug] Encodings: locale US-ASCII, fs US-ASCII, out US-ASCII, pref US-ASCII
[debug] youtube-dl version 2016.08.06
[debug] Python version 2.7.12 - FreeBSD-10.2-RELEASE-p18-amd64-64bit-ELF
[debug] exe versions: ffmpeg 2.8.7, ffprobe 2.8.7, rtmpdump 2.4
[debug] Proxy map: {}
[bbc.co.uk] b07mzrxt: Downloading video page
[bbc.co.uk] b07mzrx1: Downloading media selection XML
[bbc.co.uk] b07mzrx1: Downloading m3u8 information
[bbc.co.uk] b07mzrx1: Downloading m3u8 information
[bbc.co.uk] b07mzrx1: Downloading m3u8 information
[bbc.co.uk] b07mzrx1: Downloading m3u8 information
[bbc.co.uk] b07mzrx1: Downloading m3u8 information
[debug] Invoking downloader on u'http://cp401489-vh.akamaihd.net/i/iplayerstream/secure_auth/,800kbps/modav/p042h4rb_b07mzrx1_1470475175178,1500kbps/modav/p042h4rb_b07mzrx1_1470475172698,3200kbps/modav/p042h4rb_b07mzrx1_1470475175553,.mp4.csmil/index_2_av.m3u8'
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 1601
[download] Destination: Olympic Ceremonies, 2016 - Opening Ceremony-b07mzrx1.mp4
[download]   0.1% of ~5.26GiB at 56.45MiB/s ETA 03:44ERROR: unable to download video data: HTTP Error 404: Not Found
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1683, in process_info
    success = dl(filename, info_dict)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1625, in dl
    return fd.download(name, info)
  File "/usr/local/bin/youtube-dl/youtube_dl/downloader/common.py", line 350, in download
    return self.real_download(filename, info_dict)
  File "/usr/local/bin/youtube-dl/youtube_dl/downloader/hls.py", line 98, in real_download
    success = ctx['dl'].download(frag_filename, {'url': frag_url})
  File "/usr/local/bin/youtube-dl/youtube_dl/downloader/common.py", line 350, in download
    return self.real_download(filename, info_dict)
  File "/usr/local/bin/youtube-dl/youtube_dl/downloader/http.py", line 58, in real_download
    data = self.ydl.urlopen(request)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1985, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/local/lib/python2.7/urllib2.py", line 435, in open
    response = meth(req, response)
  File "/usr/local/lib/python2.7/urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/local/lib/python2.7/urllib2.py", line 473, in error
    return self._call_chain(*args)
  File "/usr/local/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/local/lib/python2.7/urllib2.py", line 556, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 404: Not Found

Description of your issue, suggested solution and other information

Adding -f "[vbr<4000]" causes an iPlayer download to fail with a 404 error. This has been working ever since I started using youtube-dl, but started failing yesterday, as far as I can tell. I don't think I updated youtube-dl yesterday, so I guess it's a change with the iPlayer itself.

If you specify a specific format from the -F list instead, the download completes successfully, but you seem to get the wrong version. For example, formats listed as HD end up being in SD.

@dstftw
Copy link
Collaborator

@dstftw dstftw commented Aug 7, 2016

With -f "[vbr<4000]" you select the format that has missing fragments. Either select different format or use --hls-prefer-native. Note also that vbr extracted from hls manifest is not always reported correct by BBC.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.