@ -2,11 +2,15 @@
from __future__ import unicode_literals
from .common import InfoExtractor
from ..utils import (
int_or_none ,
remove_start ,
)
class RozhlasIE ( InfoExtractor ) :
_VALID_URL = r ' https?://(?:www \ .)?prehravac \ .rozhlas \ .cz/audio/(?P<id>[0-9]+) '
_TEST = {
_TESTS = [ {
' url ' : ' http://prehravac.rozhlas.cz/audio/3421320 ' ,
' md5 ' : ' 504c902dbc9e9a1fd50326eccf02a7e2 ' ,
' info_dict ' : {
@ -15,20 +19,32 @@ class RozhlasIE(InfoExtractor):
' title ' : ' Echo Pavla Klusáka (30.06.2015 21:00) ' ,
' description ' : ' Osmdesátiny Terryho Rileyho jsou skvělou příležitostí proletět se elektronickými i akustickými díly zakladatatele minimalismu, který je aktivní už přes padesát let '
}
}
} , {
' url ' : ' http://prehravac.rozhlas.cz/audio/3421320/embed ' ,
' skip_download ' : True ,
} ]
def _real_extract ( self , url ) :
audio_id = self . _match_id ( url )
webpage = self . _download_webpage ( url , audio_id )
titl e = self . _html_search_regex ( r ' <h3>(.+?)</h3> ' , webpage , ' title ' )
description = self . _html_search_regex ( r ' <p title= " (.+?) " > ' , webpage , ' description ' , fatal = False )
webpag e = self . _download_webpage (
' http://prehravac.rozhlas.cz/audio/ %s ' % audio_id , audio_id )
url = ' http://media.rozhlas.cz/_audio/ ' + audio_id + ' .mp3 '
title = self . _html_search_regex (
r ' <h3>(.+?)</h3> \ s*<p[^>]*>.*?</p> \ s*<div[^>]+id=[ " \' ]player-track ' ,
webpage , ' title ' , default = None ) or remove_start (
self . _og_search_title ( webpage ) , ' Radio Wave - ' )
description = self . _html_search_regex (
r ' <p[^>]+title=([ " \' ])(?P<url>(?:(?! \ 1).)+) \ 1[^>]*>.*?</p> \ s*<div[^>]+id=[ " \' ]player-track ' ,
webpage , ' description ' , fatal = False , group = ' url ' )
duration = int_or_none ( self . _search_regex (
r ' data-duration=[ " \' ]( \ d+) ' , webpage , ' duration ' , default = None ) )
return {
' id ' : audio_id ,
' url ' : url ,
' url ' : ' http://media.rozhlas.cz/_audio/ %s .mp3 ' % audio_id ,
' title ' : title ,
' description ' : description ,
' duration ' : duration ,
' vcodec ' : ' none ' ,
}