]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/cspan.py
3 from .common
import InfoExtractor
8 class CSpanIE(InfoExtractor
):
9 _VALID_URL
= r
'http://www.c-spanvideo.org/program/(.*)'
11 def _real_extract(self
, url
):
12 mobj
= re
.match(self
._VALID
_URL
, url
)
13 prog_name
= mobj
.group(1)
14 webpage
= self
._download
_webpage
(url
, prog_name
)
15 video_id
= self
._search
_regex
(r
'programid=(.*?)&', webpage
, 'video id')
16 data
= compat_urllib_parse
.urlencode({'programid': video_id
,
18 info_url
= 'http://www.c-spanvideo.org/common/services/flashXml.php?' + data
19 video_info
= self
._download
_webpage
(info_url
, video_id
, u
'Downloading video info')
21 self
.report_extraction(video_id
)
23 title
= self
._html
_search
_regex
(r
'<string name="title">(.*?)</string>',
25 description
= self
._html
_search
_regex
(r
'<meta (?:property="og:|name=")description" content="(.*?)"',
26 webpage
, 'description',
27 flags
=re
.MULTILINE|re
.DOTALL
)
28 thumbnail
= self
._html
_search
_regex
(r
'<meta property="og:image" content="(.*?)"',
31 url
= self
._search
_regex
(r
'<string name="URL">(.*?)</string>',
32 video_info
, 'video url')
33 url
= url
.replace('$(protocol)', 'rtmp').replace('$(port)', '443')
34 path
= self
._search
_regex
(r
'<string name="path">(.*?)</string>',
35 video_info
, 'rtmp play path')
37 return {'id': video_id
,
42 'description': description
,
43 'thumbnail': thumbnail
,