]>
Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/ndr.py
2 from __future__
import unicode_literals
6 from . common
import InfoExtractor
15 class NDRBaseIE ( InfoExtractor
):
16 def _real_extract ( self
, url
):
17 mobj
= re
. match ( self
._ VALID
_U RL
, url
)
18 video_id
= mobj
. group ( 'id' )
20 page
= self
._ download
_ webpage
( url
, video_id
, 'Downloading page' )
22 title
= self
._ og
_ search
_ title
( page
). strip ()
23 description
= self
._ og
_ search
_ description
( page
)
25 description
= description
. strip ()
27 duration
= int_or_none ( self
._ html
_ search
_ regex
( r
'duration: (\d+),\n' , page
, 'duration' , default
= None ))
29 duration
= parse_duration ( self
._ html
_ search
_ regex
(
30 r
'(<span class="min">\d+</span>:<span class="sec">\d+</span>)' ,
31 page
, 'duration' , default
= None ))
35 mp3_url
= re
. search ( r
'''\{src:'(?P<audio>[^']+)', type:"audio/mp3"},''' , page
)
38 'url' : mp3_url
. group ( 'audio' ),
44 video_url
= re
. search ( r
'''3: \{src:'(?P<video>.+?)\.(lo|hi|hq)\.mp4', type:"video/mp4"},''' , page
)
46 thumbnails
= re
. findall ( r
'''\d+: \{src: "([^"]+)"(?: \|\| '[^']+')?, quality: '([^']+)'}''' , page
)
48 quality_key
= qualities ([ 'xs' , 's' , 'm' , 'l' , 'xl' ])
49 largest
= max ( thumbnails
, key
= lambda thumb
: quality_key ( thumb
[ 1 ]))
50 thumbnail
= 'http://www.ndr.de' + largest
[ 0 ]
52 for format_id
in 'lo' , 'hi' , 'hq' :
54 'url' : ' %s . %s .mp4' % ( video_url
. group ( 'video' ), format_id
),
55 'format_id' : format_id
,
59 raise ExtractorError ( 'No media links available for %s ' % video_id
)
64 'description' : description
,
65 'thumbnail' : thumbnail
,
71 class NDRIE ( NDRBaseIE
):
73 IE_DESC
= 'NDR.de - Mediathek'
74 _VALID_URL
= r
'https?://www\.ndr\.de/.+?(?P<id>\d+)\.html'
78 'url' : 'http://www.ndr.de/fernsehen/sendungen/nordmagazin/Kartoffeltage-in-der-Lewitz,nordmagazin25866.html' ,
79 'md5' : '5bc5f5b92c82c0f8b26cddca34f8bb2c' ,
84 'title' : 'Kartoffeltage in der Lewitz' ,
85 'description' : 'md5:48c4c04dde604c8a9971b3d4e3b9eaa8' ,
88 'skip' : '404 Not found' ,
91 'url' : 'http://www.ndr.de/fernsehen/Party-Poette-und-Parade,hafengeburtstag988.html' ,
92 'md5' : 'dadc003c55ae12a5d2f6bd436cd73f59' ,
96 'title' : 'Party, Pötte und Parade' ,
97 'description' : 'Hunderttausende feiern zwischen Speicherstadt und St. Pauli den 826. Hafengeburtstag. Die NDR Sondersendung zeigt die schönsten und spektakulärsten Bilder vom Auftakt.' ,
102 'url' : 'http://www.ndr.de/info/audio51535.html' ,
103 'md5' : 'bb3cd38e24fbcc866d13b50ca59307b8' ,
104 'note' : 'Audio file' ,
108 'title' : 'La Valette entgeht der Hinrichtung' ,
109 'description' : 'md5:22f9541913a40fe50091d5cdd7c9f536' ,
116 class NJoyIE ( NDRBaseIE
):
118 _VALID_URL
= r
'https?://www\.n-joy\.de/.+?(?P<id>\d+)\.html'
121 'url' : 'http://www.n-joy.de/entertainment/comedy/comedy_contest/Benaissa-beim-NDR-Comedy-Contest,comedycontest2480.html' ,
122 'md5' : 'cb63be60cd6f9dd75218803146d8dc67' ,
126 'title' : 'Benaissa beim NDR Comedy Contest' ,
127 'description' : 'Von seinem sehr "behaarten" Leben lässt sich Benaissa trotz aller Schwierigkeiten nicht unterkriegen.' ,