<s> from __future__ import unicode_literals <EOL> from . common import InfoExtractor <EOL> from . . compat import compat_urllib_parse <EOL> from . . utils import ( <EOL> xpath_text , <EOL> xpath_with_ns , <EOL> int_or_none , <EOL> parse_iso8601 , <EOL> ) <EOL> class BetIE ( InfoExtractor ) : <EOL> _VALID_URL = r'<STR_LIT>' <EOL> _TESTS = [ <EOL> { <EOL> '<STR_LIT:url>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:id>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:title>' : '<STR_LIT>' , <EOL> '<STR_LIT:description>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : True , <EOL> } , <EOL> } , <EOL> { <EOL> '<STR_LIT:url>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:id>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:title>' : '<STR_LIT>' , <EOL> '<STR_LIT:description>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : True , <EOL> } , <EOL> } <EOL> ] <EOL> def _real_extract ( self , url ) : <EOL> display_id = self . _match_id ( url ) <EOL> webpage = self . _download_webpage ( url , display_id ) <EOL> media_url = compat_urllib_parse . unquote ( self . _search_regex ( <EOL> [ r'<STR_LIT>' , r"<STR_LIT>" ] , <EOL> webpage , '<STR_LIT>' ) ) <EOL> mrss = self . _download_xml ( media_url , display_id ) <EOL> item = mrss . find ( '<STR_LIT>' ) <EOL> NS_MAP = { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> } <EOL> title = xpath_text ( item , '<STR_LIT>' , '<STR_LIT:title>' ) <EOL> description = xpath_text ( <EOL> item , '<STR_LIT>' , '<STR_LIT:description>' , fatal = False ) <EOL> video_id = xpath_text ( item , '<STR_LIT>' , '<STR_LIT>' , fatal = False ) <EOL> timestamp = parse_iso8601 ( xpath_text ( <EOL> item , xpath_with_ns ( '<STR_LIT>' , NS_MAP ) , <EOL> '<STR_LIT>' , fatal = False ) ) <EOL> uploader = xpath_text ( <EOL> item , xpath_with_ns ( '<STR_LIT>' , NS_MAP ) , <EOL> '<STR_LIT>' , fatal = False ) <EOL> media_content = item . find ( <EOL> xpath_with_ns ( '<STR_LIT>' , NS_MAP ) ) <EOL> duration = int_or_none ( media_content . get ( '<STR_LIT>' ) ) <EOL> smil_url = media_content . get ( '<STR_LIT:url>' ) <EOL> thumbnail = media_content . find ( <EOL> xpath_with_ns ( '<STR_LIT>' , NS_MAP ) ) . get ( '<STR_LIT:url>' ) <EOL> formats = self . _extract_smil_formats ( smil_url , display_id ) <EOL> return { <EOL> '<STR_LIT:id>' : video_id , <EOL> '<STR_LIT>' : display_id , <EOL> '<STR_LIT:title>' : title , <EOL> '<STR_LIT:description>' : description , <EOL> '<STR_LIT>' : thumbnail , <EOL> '<STR_LIT>' : timestamp , <EOL> '<STR_LIT>' : uploader , <EOL> '<STR_LIT>' : duration , <EOL> '<STR_LIT>' : formats , <EOL> } </s>
