Browse Source

added spiegel.tv

master
Georg Jaehnig 10 years ago
parent
commit
211fd6c674
2 changed files with 74 additions and 0 deletions
  1. 1
      youtube_dl/extractor/__init__.py
  2. 73
      youtube_dl/extractor/spiegeltv.py

1
youtube_dl/extractor/__init__.py

@ -258,6 +258,7 @@ from .southparkstudios import (
from .space import SpaceIE from .space import SpaceIE
from .spankwire import SpankwireIE from .spankwire import SpankwireIE
from .spiegel import SpiegelIE from .spiegel import SpiegelIE
from .spiegeltv import SpiegeltvIE
from .spike import SpikeIE from .spike import SpikeIE
from .stanfordoc import StanfordOpenClassroomIE from .stanfordoc import StanfordOpenClassroomIE
from .steam import SteamIE from .steam import SteamIE

73
youtube_dl/extractor/spiegeltv.py

@ -0,0 +1,73 @@
# coding: utf-8
from __future__ import unicode_literals
import re
import json
import urllib
from .common import InfoExtractor
class SpiegeltvIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?spiegel\.tv/filme/(?P<id>[\-a-z0-9]+)'
_TEST = {
'url': 'http://www.spiegel.tv/filme/flug-mh370/',
'md5': '700d62dc485f3a81cf9d52144e5ead59',
'info_dict': {
'id': 'flug-mh370',
'ext': 'm4v',
'title': 'Flug MH370',
'description': 'Das Rätsel um die Boeing 777 der Malaysia-Airlines',
}
}
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
video_id = mobj.group('id')
# TODO more code goes here, for example ...
webpage = self._download_webpage(url, video_id)
title = self._html_search_regex(r'<h1.*?>(.*?)</h1>', webpage, 'title')
apihost = 'http://spiegeltv-ivms2-restapi.s3.amazonaws.com';
version_json_code = urllib.urlopen('%s/version.json' % apihost).read()
version_json = json.loads(version_json_code)
version_name = version_json['version_name']
slug_json_code = urllib.urlopen('%s/%s/restapi/slugs/%s.json' % (apihost, version_name, video_id)).read()
slug_json = json.loads(slug_json_code)
oid = slug_json['object_id']
media_json_code = urllib.urlopen('%s/%s/restapi/media/%s.json' % (apihost, version_name, oid)).read()
media_json = json.loads(media_json_code)
uuid = media_json['uuid']
is_wide = media_json['is_wide']
server_json_code = urllib.urlopen('http://www.spiegel.tv/streaming_servers/').read()
server_json = json.loads(server_json_code)
server = server_json[0]['endpoint']
thumbnails = []
for image in media_json['images']:
thumbnails.append({'url': image['url'], 'resolution': str(image['width']) + 'x' + str(image['height']) })
description = media_json['subtitle']
duration = int(round(media_json['duration_in_ms'] / 1000))
if is_wide:
format = '16x9'
else:
format = '4x3'
url = server + 'mp4:' + uuid + '_spiegeltv_0500_' + format + '.m4v'
return_dict = {
'id': video_id,
'title': title,
'url': url,
'ext': 'm4v',
'description': description,
'duration': duration,
'thumbnails': thumbnails
}
return return_dict
Loading…
Cancel
Save