aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVignesh Venkat <vigneshacitizenofindia@gmail.com>2016-01-09 15:31:50 -0800
committerVignesh Venkat <vigneshacitizenofindia@gmail.com>2016-01-09 19:45:58 -0800
commit0a899a1448328648927e18e43c6e2274d2706396 (patch)
tree471fb8bf9588b7eb06c2ec0bf6eb58464ad12d75
parent7a34302e95ee66f770b1eba720847831c40121a2 (diff)
downloadyoutube-dl-0a899a1448328648927e18e43c6e2274d2706396.tar.xz
[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.
-rw-r--r--youtube_dl/extractor/__init__.py1
-rw-r--r--youtube_dl/extractor/bigflix.py42
2 files changed, 43 insertions, 0 deletions
diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py
index a9d23b8f4..40c42d4d2 100644
--- a/youtube_dl/extractor/__init__.py
+++ b/youtube_dl/extractor/__init__.py
@@ -61,6 +61,7 @@ from .beeg import BeegIE
from .behindkink import BehindKinkIE
from .beatportpro import BeatportProIE
from .bet import BetIE
+from .bigflix import BigflixIE
from .bild import BildIE
from .bilibili import BiliBiliIE
from .bleacherreport import (
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,
+ }