aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/extractor
diff options
context:
space:
mode:
authorOskar Jauch <oskar.jauch@gmail.com>2015-03-28 10:38:52 +0100
committerOskar Jauch <oskar.jauch@gmail.com>2015-03-28 10:38:52 +0100
commit643fe72717e6b9c45af4528e46dfc181cad7aebb (patch)
tree91d24d0b3c76bfaf35a872ecb6a09c312bac3b88 /youtube_dl/extractor
parent4747e2183acbddea61a3f10fb4ba1ed5b70c8bd1 (diff)
[DHM] Add new extractor
Diffstat (limited to 'youtube_dl/extractor')
-rw-r--r--youtube_dl/extractor/__init__.py1
-rw-r--r--youtube_dl/extractor/dhm.py52
2 files changed, 53 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..d379c9d53
--- /dev/null
+++ b/youtube_dl/extractor/dhm.py
@@ -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,
+ }