2 from __future__ import unicode_literals
4 from .common import InfoExtractor
10 class OppetArkivIE(InfoExtractor):
11 _VALID_URL = r'https?://(?:www\.)?oppetarkiv\.se/video/(?P<id>[0-9]+)'
13 'url': 'http://www.oppetarkiv.se/video/1058509/rederiet-sasong-1-avsnitt-1-av-318',
14 'md5': '5c1eb616e59f733d4af77edc5177d2fe',
18 'title': 'Farlig kryssning',
20 'thumbnail': 're:^https?://.*[\.-]jpg$',
23 'skip': 'Only works from Sweden',
26 def _real_extract(self, url):
27 video_id = self._match_id(url)
28 info = self._download_json(
29 'http://www.oppetarkiv.se/video/%s?output=json' % video_id, video_id)
31 title = info['context']['title']
32 thumbnail = info['context'].get('thumbnailImage')
34 video_info = info['video']
36 for vr in video_info['videoReferences']:
38 ext = determine_ext(vurl)
40 formats.extend(self._extract_m3u8_formats(
42 ext='mp4', entry_protocol='m3u8_native',
43 m3u8_id=vr.get('playerType')))
45 formats.extend(self._extract_f4m_formats(
46 vurl + '?hdcore=3.3.0', video_id,
47 f4m_id=vr.get('playerType')))
50 'format_id': vr.get('playerType'),
53 self._sort_formats(formats)
55 duration = video_info.get('materialLength')
57 age_limit = 18 if video_info.get('inappropriateForChildren') else 0
63 'thumbnail': thumbnail,
65 'age_limit': age_limit,