diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-03-08 07:25:00 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-03-08 11:13:25 +0530 |
commit | 2807d1709bb5b0d79d210145cb213242b2dbf41a (patch) | |
tree | 8800548699141a69863ac56a96480170892e71df | |
parent | b46ccbc6d41cc8e1845d35b0600c78b7288d9aa4 (diff) | |
download | hypervideo-pre-2807d1709bb5b0d79d210145cb213242b2dbf41a.tar.lz hypervideo-pre-2807d1709bb5b0d79d210145cb213242b2dbf41a.tar.xz hypervideo-pre-2807d1709bb5b0d79d210145cb213242b2dbf41a.zip |
[nrk] Add fallback API
Closes #1891
-rw-r--r-- | yt_dlp/extractor/nrk.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/yt_dlp/extractor/nrk.py b/yt_dlp/extractor/nrk.py index 49d58a685..4d723e886 100644 --- a/yt_dlp/extractor/nrk.py +++ b/yt_dlp/extractor/nrk.py @@ -8,6 +8,7 @@ import re from .common import InfoExtractor from ..compat import compat_str from ..utils import ( + compat_HTTPError, determine_ext, ExtractorError, int_or_none, @@ -147,10 +148,14 @@ class NRKIE(NRKBaseIE): def _real_extract(self, url): video_id = self._match_id(url).split('/')[-1] - path_templ = 'playback/%s/program/' + video_id - def call_playback_api(item, query=None): - return self._call_api(path_templ % item, video_id, item, query=query) + try: + return self._call_api(f'playback/{item}/program/{video_id}', video_id, item, query=query) + except ExtractorError as e: + if isinstance(e.cause, compat_HTTPError) and e.cause.code == 400: + return self._call_api(f'playback/{item}/{video_id}', video_id, item, query=query) + raise + # known values for preferredCdn: akamai, iponly, minicdn and telenor manifest = call_playback_api('manifest', {'preferredCdn': 'akamai'}) |