]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/discovery.py
55853f76f91e97db19423c6cf8c1b8b56e006447
1 from __future__
import unicode_literals
3 from . common
import InfoExtractor
8 from .. compat
import compat_str
11 class DiscoveryIE ( InfoExtractor
):
12 _VALID_URL
= r
'''(?x)https?://(?:www\.)?(?:
14 investigationdiscovery|
22 )\.com/(?:[^/]+/)*(?P<id>[^./?#]+)'''
24 'url' : 'http://www.discovery.com/tv-shows/mythbusters/videos/mission-impossible-outtakes.htm' ,
28 'title' : 'Mission Impossible Outtakes' ,
29 'description' : ( 'Watch Jamie Hyneman and Adam Savage practice being'
30 ' each other -- to the point of confusing Jamie \' s dog -- and '
31 'don \' t miss Adam moon-walking as Jamie ... behind Jamie \' s'
34 'timestamp' : 1302032462 ,
35 'upload_date' : '20110405' ,
36 'uploader_id' : '103207' ,
39 'skip_download' : True , # requires ffmpeg
42 'url' : 'http://www.discovery.com/tv-shows/mythbusters/videos/mythbusters-the-simpsons' ,
44 'id' : 'mythbusters-the-simpsons' ,
45 'title' : 'MythBusters: The Simpsons' ,
47 'playlist_mincount' : 10 ,
49 'url' : 'http://www.animalplanet.com/longfin-eels-maneaters/' ,
53 'title' : 'Longfin Eels: Maneaters?' ,
54 'description' : 'Jeremy Wade tests whether or not New Zealand \' s longfin eels are man-eaters by covering himself in fish guts and getting in the water with them.' ,
55 'upload_date' : '20140725' ,
56 'timestamp' : 1406246400 ,
58 'uploader_id' : '103207' ,
61 'skip_download' : True , # requires ffmpeg
65 def _real_extract ( self
, url
):
66 display_id
= self
._ match
_ id
( url
)
67 info
= self
._ download
_ json
( url
+ '?flat=1' , display_id
)
69 video_title
= info
. get ( 'playlist_title' ) or info
. get ( 'video_title' )
73 for idx
, video_info
in enumerate ( info
[ 'playlist' ]):
75 caption_url
= video_info
. get ( 'captionsUrl' )
84 '_type' : 'url_transparent' ,
85 'url' : 'http://players.brightcove.net/103207/default_default/index.html?videoId=ref: %s ' % video_info
[ 'referenceId' ],
86 'id' : compat_str ( video_info
[ 'id' ]),
87 'title' : video_info
[ 'title' ],
88 'description' : video_info
. get ( 'description' ),
89 'duration' : parse_duration ( video_info
. get ( 'video_length' )),
90 'webpage_url' : video_info
. get ( 'href' ) or video_info
. get ( 'url' ),
91 'thumbnail' : video_info
. get ( 'thumbnailURL' ),
92 'alt_title' : video_info
. get ( 'secondary_title' ),
93 'timestamp' : parse_iso8601 ( video_info
. get ( 'publishedDate' )),
94 'subtitles' : subtitles
,
97 return self
. playlist_result ( entries
, display_id
, video_title
)