aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-03-08 07:25:00 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-03-08 11:13:25 +0530
commit2807d1709bb5b0d79d210145cb213242b2dbf41a (patch)
tree8800548699141a69863ac56a96480170892e71df
parentb46ccbc6d41cc8e1845d35b0600c78b7288d9aa4 (diff)
downloadhypervideo-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.py11
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'})