Fix "invalid escape sequences" error on Python 3.6
[youtube-dl] / 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         }