]>
Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/turbo.py
2 from __future__
import unicode_literals
6 from . common
import InfoExtractor
15 class TurboIE ( InfoExtractor
):
16 _VALID_URL
= r
'https?://(?:www\.)?turbo\.fr/videos-voiture/(?P<id>[0-9]+)-'
17 _API_URL
= 'http://www.turbo.fr/api/tv/xml.php?player_generique=player_generique&id= {0:} '
19 'url' : 'http://www.turbo.fr/videos-voiture/454443-turbo-du-07-09-2014-renault-twingo-3-bentley-continental-gt-speed-ces-guide-achat-dacia.html' ,
20 'md5' : '33f4b91099b36b5d5a91f84b5bcba600' ,
25 'title' : 'Turbo du 07/09/2014 : Renault Twingo 3, Bentley Continental GT Speed, CES, Guide Achat Dacia... ' ,
26 'description' : 'Retrouvez dans cette rubrique toutes les vidéos de l \' Turbo du 07/09/2014 : Renault Twingo 3, Bentley Continental GT Speed, CES, Guide Achat Dacia... ' ,
27 'thumbnail' : 're:^https?://.*\.jpg$' ,
31 def _real_extract ( self
, url
):
32 mobj
= re
. match ( self
._ VALID
_U RL
, url
)
33 video_id
= mobj
. group ( 'id' )
35 webpage
= self
._ download
_ webpage
( url
, video_id
)
37 playlist
= self
._ download
_ xml
( self
._ API
_U RL
. format ( video_id
), video_id
)
38 item
= playlist
. find ( './channel/item' )
40 raise ExtractorError ( 'Playlist item was not found' , expected
= True )
42 title
= xpath_text ( item
, './title' , 'title' )
43 duration
= int_or_none ( xpath_text ( item
, './durate' , 'duration' ))
44 thumbnail
= xpath_text ( item
, './visuel_clip' , 'thumbnail' )
45 description
= self
._ og
_ search
_ description
( webpage
)
48 get_quality
= qualities ([ '3g' , 'sd' , 'hq' ])
50 m
= re
. search ( r
'url_video_(?P<quality>.+)' , child
. tag
)
52 quality
= m
. group ( 'quality' )
56 'quality' : get_quality ( quality
),
58 self
._ sort
_ formats
( formats
)
64 'thumbnail' : thumbnail
,
65 'description' : description
,