aboutsummaryrefslogtreecommitdiffstats
path: root/hypervideo_dl/extractor/nrk.py
diff options
context:
space:
mode:
Diffstat (limited to 'hypervideo_dl/extractor/nrk.py')
-rw-r--r--hypervideo_dl/extractor/nrk.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/hypervideo_dl/extractor/nrk.py b/hypervideo_dl/extractor/nrk.py
index b556bc6..4d723e8 100644
--- a/hypervideo_dl/extractor/nrk.py
+++ b/hypervideo_dl/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/' + 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'})
@@ -188,7 +193,7 @@ class NRKIE(NRKBaseIE):
title = titles['title']
alt_title = titles.get('subtitle')
- description = preplay.get('description')
+ description = try_get(preplay, lambda x: x['description'].replace('\r', '\n'))
duration = parse_duration(playable.get('duration')) or parse_duration(data.get('duration'))
thumbnails = []