]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/ministrygrid.py
1 from __future__
import unicode_literals
6 from .common
import InfoExtractor
13 class MinistryGridIE(InfoExtractor
):
14 _VALID_URL
= r
'https?://www\.ministrygrid.com/([^/?#]*/)*(?P<id>[^/#?]+)/?(?:$|[?#])'
17 'url': 'http://www.ministrygrid.com/training-viewer/-/training/t4g-2014-conference/the-gospel-by-numbers-4/the-gospel-by-numbers',
18 'md5': '844be0d2a1340422759c2a9101bab017',
20 'id': '3453494717001',
22 'title': 'The Gospel by Numbers',
23 'description': 'Coming soon from T4G 2014!',
24 'uploader': 'LifeWay Christian Resources (MG)',
28 def _real_extract(self
, url
):
29 mobj
= re
.match(self
._VALID
_URL
, url
)
30 video_id
= mobj
.group('id')
32 webpage
= self
._download
_webpage
(url
, video_id
)
33 portlets_json
= self
._search
_regex
(
34 r
'Liferay\.Portlet\.list=(\[.+?\])', webpage
, 'portlet list')
35 portlets
= json
.loads(portlets_json
)
36 pl_id
= self
._search
_regex
(
37 r
'<!--\s*p_l_id - ([0-9]+)<br>', webpage
, 'p_l_id')
39 for i
, portlet
in enumerate(portlets
):
40 portlet_url
= 'http://www.ministrygrid.com/c/portal/render_portlet?p_l_id=%s&p_p_id=%s' % (pl_id
, portlet
)
41 portlet_code
= self
._download
_webpage
(
42 portlet_url
, video_id
,
43 note
='Looking in portlet %s (%d/%d)' % (portlet
, i
+ 1, len(portlets
)),
45 video_iframe_url
= self
._search
_regex
(
46 r
'<iframe.*?src="([^"]+)"', portlet_code
, 'video iframe',
50 video_iframe_url
, {'force_videoid': video_id
})
57 raise ExtractorError('Could not find video iframe in any portlets')