]> Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/dbtv.py
Initiate new release.
[youtubedl] / youtube_dl / extractor / dbtv.py
1 # coding: utf-8
2 from __future__ import unicode_literals
3
4 import re
5
6 from .common import InfoExtractor
7
8
9 class DBTVIE(InfoExtractor):
10 _VALID_URL = r'https?://(?:www\.)?dbtv\.no/(?:[^/]+/)?(?P<id>[0-9]+)(?:#(?P<display_id>.+))?'
11 _TESTS = [{
12 'url': 'http://dbtv.no/3649835190001#Skulle_teste_ut_fornøyelsespark,_men_kollegaen_var_bare_opptatt_av_bikinikroppen',
13 'md5': '2e24f67936517b143a234b4cadf792ec',
14 'info_dict': {
15 'id': '3649835190001',
16 'display_id': 'Skulle_teste_ut_fornøyelsespark,_men_kollegaen_var_bare_opptatt_av_bikinikroppen',
17 'ext': 'mp4',
18 'title': 'Skulle teste ut fornøyelsespark, men kollegaen var bare opptatt av bikinikroppen',
19 'description': 'md5:1504a54606c4dde3e4e61fc97aa857e0',
20 'thumbnail': r're:https?://.*\.jpg',
21 'timestamp': 1404039863,
22 'upload_date': '20140629',
23 'duration': 69.544,
24 'uploader_id': '1027729757001',
25 },
26 'add_ie': ['BrightcoveNew']
27 }, {
28 'url': 'http://dbtv.no/3649835190001',
29 'only_matching': True,
30 }, {
31 'url': 'http://www.dbtv.no/lazyplayer/4631135248001',
32 'only_matching': True,
33 }, {
34 'url': 'http://dbtv.no/vice/5000634109001',
35 'only_matching': True,
36 }, {
37 'url': 'http://dbtv.no/filmtrailer/3359293614001',
38 'only_matching': True,
39 }]
40
41 @staticmethod
42 def _extract_urls(webpage):
43 return [url for _, url in re.findall(
44 r'<iframe[^>]+src=(["\'])((?:https?:)?//(?:www\.)?dbtv\.no/(?:lazy)?player/\d+.*?)\1',
45 webpage)]
46
47 def _real_extract(self, url):
48 video_id, display_id = re.match(self._VALID_URL, url).groups()
49
50 return {
51 '_type': 'url_transparent',
52 'url': 'http://players.brightcove.net/1027729757001/default_default/index.html?videoId=%s' % video_id,
53 'id': video_id,
54 'display_id': display_id,
55 'ie_key': 'BrightcoveNew',
56 }