aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2018-06-11 03:08:36 +0700
committerSergey M․ <dstftw@gmail.com>2018-06-11 03:08:36 +0700
commit93cffb1444131375e822b0c01e23dc4819911419 (patch)
treeb4dc252c5eb36a1e1cc3c13730713dc6b8380855
parentd253df2f65b15d1e3bb5e9703b05d98532337c9b (diff)
[nrk] Update API hosts and try all previously known ones (closes #16690)
-rw-r--r--youtube_dl/extractor/nrk.py21
1 files changed, 15 insertions, 6 deletions
diff --git a/youtube_dl/extractor/nrk.py b/youtube_dl/extractor/nrk.py
index 3b4f51f61..7157e2390 100644
--- a/youtube_dl/extractor/nrk.py
+++ b/youtube_dl/extractor/nrk.py
@@ -16,12 +16,22 @@ from ..utils import (
class NRKBaseIE(InfoExtractor):
_GEO_COUNTRIES = ['NO']
+ _api_host = None
+
def _real_extract(self, url):
video_id = self._match_id(url)
- data = self._download_json(
- 'http://%s/mediaelement/%s' % (self._API_HOST, video_id),
- video_id, 'Downloading mediaelement JSON')
+ api_hosts = (self._api_host, ) if self._api_host else self._API_HOSTS
+
+ for api_host in api_hosts:
+ data = self._download_json(
+ 'http://%s/mediaelement/%s' % (api_host, video_id),
+ video_id, 'Downloading mediaelement JSON',
+ fatal=api_host == api_hosts[-1])
+ if not data:
+ continue
+ self._api_host = api_host
+ break
title = data.get('fullTitle') or data.get('mainTitle') or data['title']
video_id = data.get('id') or video_id
@@ -191,7 +201,7 @@ class NRKIE(NRKBaseIE):
)
(?P<id>[^?#&]+)
'''
- _API_HOST = 'v8-psapi.nrk.no'
+ _API_HOSTS = ('psapi.nrk.no', 'v8-psapi.nrk.no')
_TESTS = [{
# video
'url': 'http://www.nrk.no/video/PS*150533',
@@ -237,8 +247,7 @@ class NRKTVIE(NRKBaseIE):
(?:/\d{2}-\d{2}-\d{4})?
(?:\#del=(?P<part_id>\d+))?
''' % _EPISODE_RE
- _API_HOST = 'psapi-we.nrk.no'
-
+ _API_HOSTS = ('psapi-ne.nrk.no', 'psapi-we.nrk.no')
_TESTS = [{
'url': 'https://tv.nrk.no/serie/20-spoersmaal-tv/MUHH48000314/23-05-2014',
'md5': '4e9ca6629f09e588ed240fb11619922a',