aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/extractor
diff options
context:
space:
mode:
authorJoram Schrijver <i@joram.io>2015-03-29 23:41:06 +0200
committerJoram Schrijver <i@joram.io>2015-03-29 23:41:06 +0200
commit4d5d14f5cf096f4bd90ad373cad687dc82bf8a8f (patch)
treed9573bf9c7ff95d155895fbe464df3c04fefe9af /youtube_dl/extractor
parentad320e9b8376221a3eda935a358886b6e7ab7bf6 (diff)
[Dumpert] Add new extractor
Add support for the Dutch video site Dumpert. http://www.dumpert.nl/
Diffstat (limited to 'youtube_dl/extractor')
-rw-r--r--youtube_dl/extractor/__init__.py1
-rw-r--r--youtube_dl/extractor/dumpert.py47
2 files changed, 48 insertions, 0 deletions
diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py
index a65c0c25b..43bac0252 100644
--- a/youtube_dl/extractor/__init__.py
+++ b/youtube_dl/extractor/__init__.py
@@ -115,6 +115,7 @@ from .drtuber import DrTuberIE
from .drtv import DRTVIE
from .dvtv import DVTVIE
from .dump import DumpIE
+from .dumpert import DumpertIE
from .defense import DefenseGouvFrIE
from .discovery import DiscoveryIE
from .divxstage import DivxStageIE
diff --git a/youtube_dl/extractor/dumpert.py b/youtube_dl/extractor/dumpert.py
new file mode 100644
index 000000000..52d07deac
--- /dev/null
+++ b/youtube_dl/extractor/dumpert.py
@@ -0,0 +1,47 @@
+# coding: utf-8
+from __future__ import unicode_literals
+
+import base64
+
+from .common import InfoExtractor
+
+
+class DumpertIE(InfoExtractor):
+ _VALID_URL = (r'https?://(?:www\.)?dumpert\.nl/mediabase/'
+ r'(?P<id>[0-9]+/[0-9a-zA-Z]+)/?.*')
+ _TEST = {
+ 'url': 'http://www.dumpert.nl/mediabase/6646981/951bc60f/',
+ 'md5': '1b9318d7d5054e7dcb9dc7654f21d643',
+ 'info_dict': {
+ 'id': '6646981/951bc60f',
+ 'ext': 'mp4',
+ 'title': 'Ik heb nieuws voor je',
+ 'description': 'Niet schrikken hoor'
+ }
+ }
+
+ def _real_extract(self, url):
+ video_id = self._match_id(url)
+ webpage = self._download_webpage(url, video_id)
+
+ title = self._html_search_meta('title', webpage)
+ description = self._html_search_meta('description', webpage)
+
+ files_base64 = self._html_search_regex(r'data-files="(.*?)"',
+ webpage,
+ 'files')
+ files_json = base64.b64decode(files_base64).decode('iso-8859-1')
+ files = self._parse_json(files_json, video_id)
+
+ format_names = ['flv', 'mobile', 'tablet', '720p']
+ formats = [{'format_id': name,
+ 'url': files[name].replace(r'\/', '/')}
+ for name in format_names
+ if name in files]
+
+ return {
+ 'id': video_id,
+ 'title': title,
+ 'description': description,
+ 'formats': formats
+ }