aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl
diff options
context:
space:
mode:
Diffstat (limited to 'youtube_dl')
-rw-r--r--youtube_dl/extractor/__init__.py1
-rw-r--r--youtube_dl/extractor/dhm.py53
2 files changed, 54 insertions, 0 deletions
diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py
index d56eb6448..a65c0c25b 100644
--- a/youtube_dl/extractor/__init__.py
+++ b/youtube_dl/extractor/__init__.py
@@ -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
index 000000000..a0a584f6a
--- /dev/null
+++ b/youtube_dl/extractor/dhm.py
@@ -0,0 +1,53 @@
+# 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):
+ IE_DESC = 'Deutsches Historisches Museum'
+ _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,
+ }