]>
Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/dreisat.py
0b11d1f10e18e4358b35f76d0a0e0816b00eaa4c
5 from . common
import InfoExtractor
11 class DreiSatIE ( InfoExtractor
):
13 _VALID_URL
= r
'(?:http://)?(?:www\.)?3sat\.de/mediathek/(?:index\.php)?\?(?:(?:mode|display)=[^&]+&)*obj=(?P<id>[0-9]+)$'
15 u
"url" : u
"http://www.3sat.de/mediathek/index.php?obj=36983" ,
16 u
'file' : u
'36983.mp4' ,
17 u
'md5' : u
'9dcfe344732808dbfcc901537973c922' ,
19 u
"title" : u
"Kaffeeland Schweiz" ,
20 u
"description" : u
"Über 80 Kaffeeröstereien liefern in der Schweiz das Getränk, in das das Land so vernarrt ist: Mehr als 1000 Tassen trinkt ein Schweizer pro Jahr. SCHWEIZWEIT nimmt die Kaffeekultur unter die..." ,
22 u
"upload_date" : u
"20130622"
27 def _real_extract ( self
, url
):
28 mobj
= re
. match ( self
._ VALID
_U RL
, url
)
29 video_id
= mobj
. group ( 'id' )
30 details_url
= 'http://www.3sat.de/mediathek/xmlservice/web/beitragsDetails?ak=web&id= %s ' % video_id
31 details_doc
= self
._ download
_ xml
( details_url
, video_id
, note
= u
'Downloading video details' )
33 thumbnail_els
= details_doc
. findall ( './/teaserimage' )
35 'width' : te
. attrib
[ 'key' ]. partition ( 'x' )[ 0 ],
36 'height' : te
. attrib
[ 'key' ]. partition ( 'x' )[ 2 ],
38 } for te
in thumbnail_els
]
40 information_el
= details_doc
. find ( './/information' )
41 video_title
= information_el
. find ( './title' ). text
42 video_description
= information_el
. find ( './detail' ). text
44 details_el
= details_doc
. find ( './/details' )
45 video_uploader
= details_el
. find ( './channel' ). text
46 upload_date
= unified_strdate ( details_el
. find ( './airtime' ). text
)
48 format_els
= details_doc
. findall ( './/formitaet' )
50 'format_id' : fe
. attrib
[ 'basetype' ],
51 'width' : int ( fe
. find ( './width' ). text
),
52 'height' : int ( fe
. find ( './height' ). text
),
53 'url' : fe
. find ( './url' ). text
,
54 'filesize' : int ( fe
. find ( './filesize' ). text
),
55 'video_bitrate' : int ( fe
. find ( './videoBitrate' ). text
),
56 } for fe
in format_els
57 if not fe
. find ( './url' ). text
. startswith ( 'http://www.metafilegenerator.de/' )]
59 self
._ sort
_ formats
( formats
)
66 'description' : video_description
,
67 'thumbnails' : thumbnails
,
68 'thumbnail' : thumbnails
[- 1 ][ 'url' ],
69 'uploader' : video_uploader
,
70 'upload_date' : upload_date
,