diff options
author | Vignesh Venkat <[email protected]> | 2016-01-09 15:31:50 -0800 |
---|---|---|
committer | Vignesh Venkat <[email protected]> | 2016-01-09 19:45:58 -0800 |
commit | 0a899a1448328648927e18e43c6e2274d2706396 (patch) | |
tree | 471fb8bf9588b7eb06c2ec0bf6eb58464ad12d75 /youtube_dl/extractor/bigflix.py | |
parent | 7a34302e95ee66f770b1eba720847831c40121a2 (diff) | |
download | youtube-dl-0a899a1448328648927e18e43c6e2274d2706396.tar.gz youtube-dl-0a899a1448328648927e18e43c6e2274d2706396.zip |
[Bigflix] Add new extractor for bigflix.com
Add an IE to support bigflix.com. It uses some sort of silverlight
plugin whose video url is being populated using base64 encoded
flashvars. So it is quite straightforward to extract.
Diffstat (limited to 'youtube_dl/extractor/bigflix.py')
-rw-r--r-- | youtube_dl/extractor/bigflix.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/youtube_dl/extractor/bigflix.py b/youtube_dl/extractor/bigflix.py new file mode 100644 index 000000000..aeea1a002 --- /dev/null +++ b/youtube_dl/extractor/bigflix.py @@ -0,0 +1,42 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from base64 import b64decode + +from .common import InfoExtractor +from ..compat import compat_urllib_parse_unquote + + +class BigflixIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?bigflix\.com/.*/(?P<id>[0-9]+)' + _TEST = { + 'url': 'http://www.bigflix.com/Hindi-movies/Action-movies/Singham-Returns/16537', + 'md5': 'ec76aa9b1129e2e5b301a474e54fab74', + 'info_dict': { + 'id': '16537', + 'ext': 'mp4', + 'title': 'Singham Returns', + 'description': 'md5:3d2ba5815f14911d5cc6a501ae0cf65d', + } + } + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage(url, video_id) + + title = self._html_search_regex( + r'<div[^>]+class=["\']pagetitle["\'][^>]*>(.+?)</div>', + webpage, 'title') + + video_url = b64decode(compat_urllib_parse_unquote(self._search_regex( + r'file=([^&]+)', webpage, 'video url')).encode('ascii')).decode('utf-8') + + description = self._html_search_meta('description', webpage) + + return { + 'id': video_id, + 'title': title, + 'url': video_url, + 'description': description, + } |