[DHM] Add new extractor
authorOskar Jauch <oskar.jauch@gmail.com>
Sat, 28 Mar 2015 09:38:52 +0000 (10:38 +0100)
committerOskar Jauch <oskar.jauch@gmail.com>
Sat, 28 Mar 2015 09:38:52 +0000 (10:38 +0100)
youtube_dl/extractor/__init__.py
youtube_dl/extractor/dhm.py [new file with mode: 0644]

index d56eb64488fa5c1fc6c118709e4a6a797c78660d..a65c0c25b8144addfe5d643f92827b25d220a6a8 100644 (file)
@@ -106,6 +106,7 @@ from .dbtv import DBTVIE
 from .dctp import DctpTvIE
 from .deezer import DeezerPlaylistIE
 from .dfb import DFBIE
+from .dhm import DHMIE
 from .dotsub import DotsubIE
 from .douyutv import DouyuTVIE
 from .dreisat import DreiSatIE
diff --git a/youtube_dl/extractor/dhm.py b/youtube_dl/extractor/dhm.py
new file mode 100644 (file)
index 0000000..d379c9d
--- /dev/null
@@ -0,0 +1,52 @@
+# coding: utf-8
+from __future__ import unicode_literals
+
+from .common import InfoExtractor
+
+import urllib2
+import xml.etree.ElementTree as ET
+import re
+
+
+class DHMIE(InfoExtractor):
+    _VALID_URL = r'http://www\.dhm\.de/filmarchiv/(?P<id>.*?)'
+
+    _TEST = {
+        'url': 'http://www.dhm.de/filmarchiv/die-filme/the-marshallplan-at-work-in-west-germany/',
+        'md5': '11c475f670209bf6acca0b2b7ef51827',
+        'info_dict': {
+            'id': 'marshallwg',
+            'ext': 'flv',
+            'title': 'MARSHALL PLAN AT WORK IN WESTERN GERMANY, THE',
+            'thumbnail': 'http://www.dhm.de/filmarchiv/video/mpworkwg.jpg',
+        }
+    }
+
+    def _real_extract(self, url):
+        video_id = ''
+        webpage = self._download_webpage(url, video_id)
+
+        title = self._html_search_regex(
+            r'dc:title=\"(.*?)\"', webpage, 'title')
+
+        playlist_url = self._html_search_regex(
+            r'file: \'(.*?)\'', webpage, 'playlist URL')
+
+        xml_file = urllib2.urlopen(playlist_url)
+        data = xml_file.read()
+        xml_file.close()
+
+        root = ET.fromstring(data)
+        video_url = root[0][0][0].text
+        thumbnail = root[0][0][2].text
+
+        m = re.search('video/(.+?).flv', video_url)
+        if m:
+            video_id = m.group(1)
+
+        return {
+            'id': video_id,
+            'title': title,
+            'url': video_url,
+            'thumbnail': thumbnail,
+        }