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

ABC iView - KeyError 'playlist' #28823

Open
5 of 6 tasks
KierenConnell opened this issue Apr 21, 2021 · 11 comments
Open
5 of 6 tasks

ABC iView - KeyError 'playlist' #28823

KierenConnell opened this issue Apr 21, 2021 · 11 comments

Comments

@KierenConnell
Copy link

KierenConnell commented Apr 21, 2021

Checklist

  • I'm reporting a broken site support issue
  • I've verified that I'm running youtube-dl version 2021.04.17
  • I've checked that all provided URLs are alive and playable in a browser Can't check, am UK based
  • I've checked that all URLs and arguments with special characters are properly quoted or escaped
  • I've searched the bugtracker for similar bug reports including closed ones
  • I've read bugs section in FAQ

Verbose log

C:\Plex\ffmpeg>youtube-dl -f best --verbose -o "%(series)s - %(title)s.%(ext)s" https://iview.abc.net.au/video/LE2031V010S00 --ffmpeg-location "C:\Temp\ffmpeg\ffmpeg\bin"
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-f', 'best', '--verbose', '-o', '%(series)s - %(title)s.%(ext)s', 'https://iview.abc.net.au/video/LE2031V010S00', '--ffmpeg-location', 'C:\\Temp\\ffmpeg\\ffmpeg\\bin']
[debug] Encodings: locale cp1252, fs mbcs, out cp850, pref cp1252
[debug] youtube-dl version 2021.04.17
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.17763
[debug] exe versions: ffmpeg git-2020-07-21-b5f1e05, ffprobe git-2020-07-21-b5f1e05
[debug] Proxy map: {}
[debug] Using fake IP 1.132.75.39 (AU) as X-Forwarded-For.
[abc.net.au:iview] LE2031V010S00: Downloading JSON metadata
ERROR: An extractor error has occurred. (caused by KeyError('playlist',)); 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.
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp_5l7wxqx\build\youtube_dl\extractor\common.py", line 534, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp_5l7wxqx\build\youtube_dl\extractor\abc.py", line 135, in _real_extract
KeyError: 'playlist'
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp_5l7wxqx\build\youtube_dl\extractor\common.py", line 534, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp_5l7wxqx\build\youtube_dl\extractor\abc.py", line 135, in _real_extract
KeyError: 'playlist'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp_5l7wxqx\build\youtube_dl\YoutubeDL.py", line 806, in wrapper
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp_5l7wxqx\build\youtube_dl\YoutubeDL.py", line 827, in __extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp_5l7wxqx\build\youtube_dl\extractor\common.py", line 547, in extract
youtube_dl.utils.ExtractorError: An extractor error has occurred. (caused by KeyError('playlist',)); 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.

Description

Downloading from ABC iView was working 5/4/21
Currently not working - Trying to download from the UK
Have attempted multiple shows with the same error
Downloading from YouTube is fine
Tried downloading from iView with an older version of youtube-dl, also updated to the latest version, same error

Have previously used this format with iView and had success

youtube-dl -f best --verbose -o "%(series)s - %(title)s.%(ext)s" https://iview.abc.net.au/video/LE2031V010S00 --ffmpeg-location "C:\Plex\ffmpeg\ffmpeg\bin"
@bnw42
Copy link

bnw42 commented Apr 22, 2021

"youtube-dl https://iview.abc.net.au/video/LE2031V010S00" is working fine for me here in Australia. The format you gave also works fine.

@KierenConnell
Copy link
Author

Just tried it again, still reporting the same error.
Seems like there might be some sort of new region blocking in place?

@bnw42
Copy link

bnw42 commented Apr 22, 2021

I didn't even know iview had stopped geoblocking until I read your post & looked it up! Do you know anyone living outside of Australia you could ask to check? To make sure the issue is iview and not your end. The other possibility is that for licensing reasons, some shows may still be geoblocked, including Hard Quiz. Maybe you should try, say, an issue of ABC news?

@KierenConnell
Copy link
Author

youtube-dl --verbose https://iview.abc.net.au/video/NEWS202113313494

youtube-dl --verbose https://iview.abc.net.au/video/ZW2686A001S00

Both cause the same error

@bnw42
Copy link

bnw42 commented Apr 22, 2021

Only other thing I can suggest is to see if someone else outside of Aus gets the same error.

@archelium
Copy link

`youtube-dl --verbose https://iview.abc.net.au/video/NEWS202113313494
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://iview.abc.net.au/video/NEWS202113313494']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.04.17
[debug] Python version 3.9.4 (CPython) - macOS-11.2.3-x86_64-i386-64bit
[debug] exe versions: ffmpeg 4.4, ffprobe 4.4, rtmpdump 2.4
[debug] Proxy map: {}
[debug] Using fake IP 1.147.8.64 (AU) as X-Forwarded-For.
[abc.net.au:iview] NEWS202113313494: Downloading JSON metadata
ERROR: An extractor error has occurred. (caused by KeyError('playlist')); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "/usr/local/Cellar/youtube-dl/2021.4.17/libexec/lib/python3.9/site-packages/youtube_dl/extractor/common.py", line 534, in extract
ie_result = self._real_extract(url)
File "/usr/local/Cellar/youtube-dl/2021.4.17/libexec/lib/python3.9/site-packages/youtube_dl/extractor/abc.py", line 135, in _real_extract
stream = next(s for s in video_params['playlist'] if s.get('type') in ('program', 'livestream'))
KeyError: 'playlist'
Traceback (most recent call last):
File "/usr/local/Cellar/youtube-dl/2021.4.17/libexec/lib/python3.9/site-packages/youtube_dl/extractor/common.py", line 534, in extract
ie_result = self._real_extract(url)
File "/usr/local/Cellar/youtube-dl/2021.4.17/libexec/lib/python3.9/site-packages/youtube_dl/extractor/abc.py", line 135, in _real_extract
stream = next(s for s in video_params['playlist'] if s.get('type') in ('program', 'livestream'))
KeyError: 'playlist'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/Cellar/youtube-dl/2021.4.17/libexec/lib/python3.9/site-packages/youtube_dl/YoutubeDL.py", line 806, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/Cellar/youtube-dl/2021.4.17/libexec/lib/python3.9/site-packages/youtube_dl/YoutubeDL.py", line 827, in __extract_info
ie_result = ie.extract(url)
File "/usr/local/Cellar/youtube-dl/2021.4.17/libexec/lib/python3.9/site-packages/youtube_dl/extractor/common.py", line 547, in extract
raise ExtractorError('An extractor error has occurred.', cause=e)
youtube_dl.utils.ExtractorError: An extractor error has occurred. (caused by KeyError('playlist')); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.`

Outside of Australia.

@archelium
Copy link

Works if you VPN into Aussie. Just got the file.

Screen Shot 2021-04-22 at 3 01 29 PM

@davewongillies
Copy link

I'm based in the US and see this error too.

The strange thing is that I can actually watch this video from my browser without any VPN enabled, but youtube-dl can't download it, regardless of whether I'm on a VPN or not.

$ youtube-dl --verbose https://iview.abc.net.au/video/RF2002H001S00
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://iview.abc.net.au/video/RF2002H001S00']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.9.5 (CPython) - Linux-5.4.0-74-generic-x86_64-with-glibc2.31
[debug] exe versions: ffmpeg 4.2.4, ffprobe 4.2.4, phantomjs 2.1.1, rtmpdump 2.4
[debug] Proxy map: {}
[debug] Using fake IP 1.142.4.7 (AU) as X-Forwarded-For.
[abc.net.au:iview] RF2002H001S00: Downloading JSON metadata
ERROR: An extractor error has occurred. (caused by KeyError('playlist')); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/home/linuxbrew/.linuxbrew/Cellar/youtube-dl/2021.6.6/libexec/lib/python3.9/site-packages/youtube_dl/extractor/common.py", line 534, in extract
    ie_result = self._real_extract(url)
  File "/home/linuxbrew/.linuxbrew/Cellar/youtube-dl/2021.6.6/libexec/lib/python3.9/site-packages/youtube_dl/extractor/abc.py", line 135, in _real_extract
    stream = next(s for s in video_params['playlist'] if s.get('type') in ('program', 'livestream'))
KeyError: 'playlist'
Traceback (most recent call last):
  File "/home/linuxbrew/.linuxbrew/Cellar/youtube-dl/2021.6.6/libexec/lib/python3.9/site-packages/youtube_dl/extractor/common.py", line 534, in extract
    ie_result = self._real_extract(url)
  File "/home/linuxbrew/.linuxbrew/Cellar/youtube-dl/2021.6.6/libexec/lib/python3.9/site-packages/youtube_dl/extractor/abc.py", line 135, in _real_extract
    stream = next(s for s in video_params['playlist'] if s.get('type') in ('program', 'livestream'))
KeyError: 'playlist'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/linuxbrew/.linuxbrew/Cellar/youtube-dl/2021.6.6/libexec/lib/python3.9/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/home/linuxbrew/.linuxbrew/Cellar/youtube-dl/2021.6.6/libexec/lib/python3.9/site-packages/youtube_dl/YoutubeDL.py", line 836, in __extract_info
    ie_result = ie.extract(url)
  File "/home/linuxbrew/.linuxbrew/Cellar/youtube-dl/2021.6.6/libexec/lib/python3.9/site-packages/youtube_dl/extractor/common.py", line 547, in extract
    raise ExtractorError('An extractor error has occurred.', cause=e)
youtube_dl.utils.ExtractorError: An extractor error has occurred. (caused by KeyError('playlist')); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

@misuchiru03
Copy link

Same errors still from US.

@bnw42
Copy link

bnw42 commented Nov 24, 2021

Try yt-dlp and see if that works. I tried:
youtube-dl --verbose https://iview.abc.net.au/video/RF2002H001S00
and it still works fine, so I suspect it may still be some sort of geoblocking issue unless it is an issue with your computer and not a yt-dl issue at all. I had issues with yt-dl last year on a win7 machine which turned out to be due to expired security certificates. I manually updated the certificates and it worked again.

@dirkf
Copy link
Contributor

dirkf commented May 10, 2022

The error means that no streams were listed in the programme JSON metadata. A statusMessage is typically present like this:

Some ABC iview programs are now available outside Australia. For the best international experience, download ABC Australia iview on your local Google Play or App Store.

A better UX would be to trap the error:

        try:
            stream = next(s for s in video_params['playlist'] if s.get('type') in ('program', 'livestream'))
        except (StopIteration, TypeError, KeyError) as e:
            if 'Some ABC iview programs are now available outside Australia' in video_params.get('statusMessage', ''):
                self.raise_geo_restricted(countries=self._GEO_COUNTRIES)
            raise ExtractorError('No streams found', cause=e, video_id=video_id)

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

No branches or pull requests

6 participants