|
|
|
@ -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',
|
|
|
|
|