]> jfr.im git - yt-dlp.git/blame - youtube_dl/extractor/srmediathek.py
Merge branch 'atomicdryad-pr-bbcnews'
[yt-dlp.git] / youtube_dl / extractor / srmediathek.py
CommitLineData
2bcae58d
PH
1# encoding: utf-8
2from __future__ import unicode_literals
3
4import json
5
6from .common import InfoExtractor
7from ..utils import js_to_json
8
9
10class SRMediathekIE(InfoExtractor):
d2054761 11 IE_DESC = 'Saarländischer Rundfunk'
2bcae58d
PH
12 _VALID_URL = r'https?://sr-mediathek\.sr-online\.de/index\.php\?.*?&id=(?P<id>[0-9]+)'
13
14 _TEST = {
15 'url': 'http://sr-mediathek.sr-online.de/index.php?seite=7&id=28455',
16 'info_dict': {
17 'id': '28455',
18 'ext': 'mp4',
19 'title': 'sportarena (26.10.2014)',
20 'description': 'Ringen: KSV Köllerbach gegen Aachen-Walheim; Frauen-Fußball: 1. FC Saarbrücken gegen Sindelfingen; Motorsport: Rallye in Losheim; dazu: Interview mit Timo Bernhard; Turnen: TG Saar; Reitsport: Deutscher Voltigier-Pokal; Badminton: Interview mit Michael Fuchs ',
21 'thumbnail': 're:^https?://.*\.jpg$',
22 },
23 }
24
25 def _real_extract(self, url):
26 video_id = self._match_id(url)
27 webpage = self._download_webpage(url, video_id)
28
9fdece5d 29 murls = json.loads(js_to_json(self._search_regex(
2bcae58d 30 r'var mediaURLs\s*=\s*(.*?);\n', webpage, 'video URLs')))
9fdece5d 31 formats = [{'url': murl} for murl in murls]
2bcae58d
PH
32 self._sort_formats(formats)
33
34 title = json.loads(js_to_json(self._search_regex(
35 r'var mediaTitles\s*=\s*(.*?);\n', webpage, 'title')))[0]
36
37 return {
38 'id': video_id,
39 'title': title,
40 'formats': formats,
41 'description': self._og_search_description(webpage),
42 'thumbnail': self._og_search_thumbnail(webpage),
43 }