From a4f130cdfa521d2ecec52a7feda5e5788887abb1 Mon Sep 17 00:00:00 2001 From: Moritz Barsnick Date: Mon, 27 Jan 2025 17:29:01 +0100 Subject: [PATCH] [ie/nrk] allow selection of CDN via extractor args Signed-off-by: Moritz Barsnick --- README.md | 3 +++ yt_dlp/extractor/nrk.py | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 634cff5a5..e0ab421f0 100644 --- a/README.md +++ b/README.md @@ -1866,6 +1866,9 @@ #### bilibili #### sonylivseries * `sort_order`: Episode sort order for series extraction - one of `asc` (ascending, oldest first) or `desc` (descending, newest first). Default is `asc` +#### nrk +* `cdn`: CDN ID to use with the API call for stream URLs - one of `akamai`, `globalconnect`, `telenor`. Default is `akamai` + **Note**: These options may be changed/removed in the future without concern for backward compatibility diff --git a/yt_dlp/extractor/nrk.py b/yt_dlp/extractor/nrk.py index 1400f1536..428b41163 100644 --- a/yt_dlp/extractor/nrk.py +++ b/yt_dlp/extractor/nrk.py @@ -171,7 +171,9 @@ def call_playback_api(item, query=None): raise # known values for preferredCdn: akamai, globalconnect and telenor - manifest = call_playback_api('manifest', {'preferredCdn': 'akamai'}) + # use of unsupported values will return URLs from random CDNs + cdn_id = self._configuration_arg('cdn', ['akamai']) + manifest = call_playback_api('manifest', {'preferredCdn': cdn_id}) video_id = try_get(manifest, lambda x: x['id'], str) or video_id