]>
Commit | Line | Data |
---|---|---|
2ef6fcb5 PH |
1 | # -*- coding: utf-8 -*- |
2 | from __future__ import unicode_literals | |
3 | ||
4 | import json | |
5 | import re | |
6 | from .common import InfoExtractor | |
7 | from ..utils import ( | |
8 | js_to_json, | |
9 | remove_end, | |
10 | ) | |
11 | ||
12 | ||
13 | class SBSIE(InfoExtractor): | |
14 | IE_DESC = 'sbs.com.au' | |
63cddb64 | 15 | _VALID_URL = r'https?://(?:www\.)?sbs\.com\.au/ondemand/video/(?:single/)?(?P<id>[0-9]+)' |
2ef6fcb5 PH |
16 | |
17 | _TESTS = [{ | |
18 | # Original URL is handled by the generic IE which finds the iframe: | |
19 | # http://www.sbs.com.au/thefeed/blog/2014/08/21/dingo-conservation | |
20 | 'url': 'http://www.sbs.com.au/ondemand/video/single/320403011771/?source=drupal&vertical=thefeed', | |
21 | 'md5': '3150cf278965eeabb5b4cea1c963fe0a', | |
22 | 'info_dict': { | |
23 | 'id': '320403011771', | |
e35cb78c | 24 | 'ext': 'mp4', |
2ef6fcb5 PH |
25 | 'title': 'Dingo Conservation', |
26 | 'description': 'Dingoes are on the brink of extinction; most of the animals we think are dingoes are in fact crossbred with wild dogs. This family run a dingo conservation park to prevent their extinction', | |
27 | 'thumbnail': 're:http://.*\.jpg', | |
28 | }, | |
29 | 'add_ies': ['generic'], | |
9e1a5b84 | 30 | }, { |
63cddb64 JMF |
31 | 'url': 'http://www.sbs.com.au/ondemand/video/320403011771/Dingo-Conservation-The-Feed', |
32 | 'only_matching': True, | |
2ef6fcb5 PH |
33 | }] |
34 | ||
35 | def _real_extract(self, url): | |
36 | mobj = re.match(self._VALID_URL, url) | |
37 | video_id = mobj.group('id') | |
38 | webpage = self._download_webpage(url, video_id) | |
39 | ||
40 | release_urls_json = js_to_json(self._search_regex( | |
41 | r'(?s)playerParams\.releaseUrls\s*=\s*(\{.*?\n\});\n', | |
42 | webpage, '')) | |
43 | release_urls = json.loads(release_urls_json) | |
44 | theplatform_url = ( | |
45 | release_urls.get('progressive') or release_urls.get('standard')) | |
46 | ||
47 | title = remove_end(self._og_search_title(webpage), ' (The Feed)') | |
48 | description = self._html_search_meta('description', webpage) | |
49 | thumbnail = self._og_search_thumbnail(webpage) | |
50 | ||
51 | return { | |
52 | '_type': 'url_transparent', | |
53 | 'id': video_id, | |
54 | 'url': theplatform_url, | |
55 | ||
56 | 'title': title, | |
57 | 'description': description, | |
58 | 'thumbnail': thumbnail, | |
59 | } |