2015-01-04 20:33:26 +08:00
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import re
from . common import InfoExtractor
2015-01-06 01:13:19 +08:00
from . . utils import parse_duration
2015-01-04 20:33:26 +08:00
class RadioBremenIE ( InfoExtractor ) :
2015-01-06 01:13:19 +08:00
_VALID_URL = r ' http?://(?:www \ .)?radiobremen \ .de/mediathek/(?:index \ .html)? \ ?id=(?P<id>[0-9]+) '
2015-01-04 20:33:26 +08:00
IE_NAME = ' radiobremen '
_TEST = {
' url ' : ' http://www.radiobremen.de/mediathek/index.html?id=114720 ' ,
' info_dict ' : {
' id ' : ' 114720 ' ,
' ext ' : ' mp4 ' ,
2015-01-06 01:13:19 +08:00
' duration ' : 1685 ,
2015-01-04 20:33:26 +08:00
' width ' : 512 ,
' title ' : ' buten un binnen vom 22. Dezember ' ,
2015-01-06 01:14:09 +08:00
' thumbnail ' : ' re:https?://.* \ .jpg$ ' ,
2015-01-04 20:33:26 +08:00
' description ' : ' Unter anderem mit diesen Themen: 45 Flüchtlinge sind in Worpswede angekommen +++ Freies Internet für alle: Bremer arbeiten an einem flächendeckenden W-Lan-Netzwerk +++ Aktivisten kämpfen für das Unibad +++ So war das Wetter 2014 +++ ' ,
} ,
}
def _real_extract ( self , url ) :
2015-01-06 01:13:19 +08:00
video_id = self . _match_id ( url )
2015-01-04 20:33:26 +08:00
meta_url = " http://www.radiobremen.de/apps/php/mediathek/metadaten.php?id= %s " % video_id
2015-01-06 01:17:03 +08:00
meta_doc = self . _download_webpage (
meta_url , video_id , ' Downloading metadata ' )
title = self . _html_search_regex (
r " <h1.*>(?P<title>.+)</h1> " , meta_doc , " title " )
description = self . _html_search_regex (
r " <p>(?P<description>.*)</p> " , meta_doc , " description " , fatal = False )
duration = parse_duration ( self . _html_search_regex (
r " Länge:</td> \ s+<td>(?P<duration>[0-9]+:[0-9]+)</td> " ,
meta_doc , " duration " , fatal = False ) )
page_doc = self . _download_webpage (
url , video_id , ' Downloading video information ' )
mobj = re . search (
r " ardformatplayerclassic \ ( \ ' playerbereich \ ' , \ ' (?P<width>[0-9]+) \ ' , \ ' .* \ ' , \ ' (?P<video_id>[0-9]+) \ ' , \ ' (?P<secret>[0-9]+) \ ' , \ ' (?P<thumbnail>.+) \ ' , \ ' \ ' \ ) " ,
page_doc )
2015-01-06 01:13:19 +08:00
video_url = (
" http://dl-ondemand.radiobremen.de/mediabase/ %s / %s _ %s _ %s .mp4 " %
( video_id , video_id , mobj . group ( " secret " ) , mobj . group ( ' width ' ) ) )
2015-01-04 20:33:26 +08:00
2015-01-06 01:13:19 +08:00
formats = [ {
' url ' : video_url ,
' ext ' : ' mp4 ' ,
' width ' : int ( mobj . group ( " width " ) ) ,
} ]
2015-01-04 20:33:26 +08:00
return {
' id ' : video_id ,
' title ' : title ,
' description ' : description ,
' duration ' : duration ,
2015-01-06 01:13:19 +08:00
' formats ' : formats ,
' thumbnail ' : mobj . group ( ' thumbnail ' ) ,
2015-01-04 20:33:26 +08:00
}