|
@ -3687,6 +3687,62 @@ class UstreamIE(InfoExtractor): |
|
|
} |
|
|
} |
|
|
return [info] |
|
|
return [info] |
|
|
|
|
|
|
|
|
|
|
|
class WorldStarHipHopIE(InfoExtractor): |
|
|
|
|
|
_VALID_URL = r'http://(?:www|m)\.worldstar(?:candy|hiphop)\.com/videos/video\.php\?v=(?P<id>.*)' |
|
|
|
|
|
IE_NAME = u'WorldStarHipHop' |
|
|
|
|
|
|
|
|
|
|
|
def _real_extract(self, url): |
|
|
|
|
|
_src_url = r"""(http://hw-videos.*(?:mp4|flv))""" |
|
|
|
|
|
|
|
|
|
|
|
webpage_src = compat_urllib_request.urlopen(url).read() |
|
|
|
|
|
webpage_src = webpage_src.decode('utf-8') |
|
|
|
|
|
|
|
|
|
|
|
mobj = re.search(_src_url, webpage_src) |
|
|
|
|
|
|
|
|
|
|
|
m = re.match(self._VALID_URL, url) |
|
|
|
|
|
video_id = m.group('id') |
|
|
|
|
|
|
|
|
|
|
|
if mobj is not None: |
|
|
|
|
|
video_url = mobj.group() |
|
|
|
|
|
if 'mp4' in video_url: |
|
|
|
|
|
ext = 'mp4' |
|
|
|
|
|
else: |
|
|
|
|
|
ext = 'flv' |
|
|
|
|
|
else: |
|
|
|
|
|
self._downloader.trouble(u'ERROR: Cannot find video url for %s' % video_id) |
|
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
|
|
_title = r"""<title>(.*)</title>""" |
|
|
|
|
|
|
|
|
|
|
|
mobj = re.search(_title, webpage_src) |
|
|
|
|
|
|
|
|
|
|
|
if mobj is not None: |
|
|
|
|
|
title = mobj.group(1) |
|
|
|
|
|
else: |
|
|
|
|
|
title = 'World Start Hip Hop - %s' % time.ctime() |
|
|
|
|
|
|
|
|
|
|
|
_thumbnail = r"""rel="image_src" href="(.*)" />""" |
|
|
|
|
|
mobj = re.search(_thumbnail, webpage_src) |
|
|
|
|
|
|
|
|
|
|
|
# Getting thumbnail and if not thumbnail sets correct title for WSHH candy video. |
|
|
|
|
|
if mobj is not None: |
|
|
|
|
|
thumbnail = mobj.group(1) |
|
|
|
|
|
else: |
|
|
|
|
|
_title = r"""candytitles.*>(.*)</span>""" |
|
|
|
|
|
mobj = re.search(_title, webpage_src) |
|
|
|
|
|
if mobj is not None: |
|
|
|
|
|
title = mobj.group(1) |
|
|
|
|
|
thumbnail = None |
|
|
|
|
|
|
|
|
|
|
|
results = [{ |
|
|
|
|
|
'id': video_id, |
|
|
|
|
|
'url' : video_url, |
|
|
|
|
|
'title' : title, |
|
|
|
|
|
'thumbnail' : thumbnail, |
|
|
|
|
|
'ext' : ext, |
|
|
|
|
|
}] |
|
|
|
|
|
return results |
|
|
|
|
|
|
|
|
class RBMARadioIE(InfoExtractor): |
|
|
class RBMARadioIE(InfoExtractor): |
|
|
_VALID_URL = r'https?://(?:www\.)?rbmaradio\.com/shows/(?P<videoID>[^/]+)$' |
|
|
_VALID_URL = r'https?://(?:www\.)?rbmaradio\.com/shows/(?P<videoID>[^/]+)$' |
|
|
|
|
|
|
|
@ -4249,6 +4305,7 @@ def gen_extractors(): |
|
|
GooglePlusIE(), |
|
|
GooglePlusIE(), |
|
|
ArteTvIE(), |
|
|
ArteTvIE(), |
|
|
NBAIE(), |
|
|
NBAIE(), |
|
|
|
|
|
WorldStarHipHopIE(), |
|
|
JustinTVIE(), |
|
|
JustinTVIE(), |
|
|
FunnyOrDieIE(), |
|
|
FunnyOrDieIE(), |
|
|
SteamIE(), |
|
|
SteamIE(), |
|
|