2016-08-08 00:35:54 +09:00
# coding: utf-8
from __future__ import unicode_literals
from . common import InfoExtractor
2016-08-08 06:58:02 +09:00
from . . utils import (
int_or_none ,
remove_start ,
)
2016-08-08 00:35:54 +09:00
class RozhlasIE ( InfoExtractor ) :
_VALID_URL = r ' https?://(?:www \ .)?prehravac \ .rozhlas \ .cz/audio/(?P<id>[0-9]+) '
2016-08-08 06:58:02 +09:00
_TESTS = [ {
2016-08-08 00:35:54 +09:00
' url ' : ' http://prehravac.rozhlas.cz/audio/3421320 ' ,
' md5 ' : ' 504c902dbc9e9a1fd50326eccf02a7e2 ' ,
' info_dict ' : {
' id ' : ' 3421320 ' ,
' ext ' : ' mp3 ' ,
' 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 '
}
2016-08-08 06:58:02 +09:00
} , {
' url ' : ' http://prehravac.rozhlas.cz/audio/3421320/embed ' ,
' skip_download ' : True ,
} ]
2016-08-08 00:35:54 +09:00
def _real_extract ( self , url ) :
audio_id = self . _match_id ( url )
2016-08-08 06:58:02 +09:00
webpage = self . _download_webpage (
' http://prehravac.rozhlas.cz/audio/ %s ' % audio_id , audio_id )
2016-08-08 00:35:54 +09:00
2016-08-08 06:58:02 +09:00
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 ) )
2016-08-08 00:35:54 +09:00
return {
' id ' : audio_id ,
2016-08-08 06:58:02 +09:00
' url ' : ' http://media.rozhlas.cz/_audio/ %s .mp3 ' % audio_id ,
2016-08-08 00:35:54 +09:00
' title ' : title ,
' description ' : description ,
2016-08-08 06:58:02 +09:00
' duration ' : duration ,
' vcodec ' : ' none ' ,
2016-08-08 00:35:54 +09:00
}