[nrk] Extract f4m formats and impose geo restriction only when not media URL (Closes #7715)

This commit is contained in:
Sergey M․ 2015-12-01 18:35:24 +06:00
parent 4c6b4764f0
commit 874ae0354e

View File

@ -6,6 +6,7 @@ import re
from .common import InfoExtractor from .common import InfoExtractor
from ..compat import compat_urlparse from ..compat import compat_urlparse
from ..utils import ( from ..utils import (
determine_ext,
ExtractorError, ExtractorError,
float_or_none, float_or_none,
parse_duration, parse_duration,
@ -48,12 +49,22 @@ class NRKIE(InfoExtractor):
'http://v8.psapi.nrk.no/mediaelement/%s' % video_id, 'http://v8.psapi.nrk.no/mediaelement/%s' % video_id,
video_id, 'Downloading media JSON') video_id, 'Downloading media JSON')
media_url = data.get('mediaUrl')
if not media_url:
if data['usageRights']['isGeoBlocked']: if data['usageRights']['isGeoBlocked']:
raise ExtractorError( raise ExtractorError(
'NRK har ikke rettigheter til å vise dette programmet utenfor Norge', 'NRK har ikke rettigheter til å vise dette programmet utenfor Norge',
expected=True) expected=True)
video_url = data['mediaUrl'] + '?hdcore=3.5.0&plugin=aasp-3.5.0.151.81' if determine_ext(media_url) == 'f4m':
formats = self._extract_f4m_formats(
media_url + '?hdcore=3.5.0&plugin=aasp-3.5.0.151.81', video_id, f4m_id='hds')
else:
formats = [{
'url': media_url,
'ext': 'flv',
}]
duration = parse_duration(data.get('duration')) duration = parse_duration(data.get('duration'))
@ -67,12 +78,11 @@ class NRKIE(InfoExtractor):
return { return {
'id': video_id, 'id': video_id,
'url': video_url,
'ext': 'flv',
'title': data['title'], 'title': data['title'],
'description': data['description'], 'description': data['description'],
'duration': duration, 'duration': duration,
'thumbnail': thumbnail, 'thumbnail': thumbnail,
'formats': formats,
} }