|
|
@ -1884,7 +1884,7 @@ class FacebookIE(InfoExtractor):
|
|
|
|
class BlipTVIE(InfoExtractor):
|
|
|
|
class BlipTVIE(InfoExtractor):
|
|
|
|
"""Information extractor for blip.tv"""
|
|
|
|
"""Information extractor for blip.tv"""
|
|
|
|
|
|
|
|
|
|
|
|
_VALID_URL = r'^(?:https?://)?(?:\w+\.)?blip\.tv(/.+)$'
|
|
|
|
_VALID_URL = r'^(?:https?://)?(?:\w+\.)?blip\.tv/((.+/)|(play/)|(api\.swf#))(.+)$'
|
|
|
|
_URL_EXT = r'^.*\.([a-z0-9]+)$'
|
|
|
|
_URL_EXT = r'^.*\.([a-z0-9]+)$'
|
|
|
|
IE_NAME = u'blip.tv'
|
|
|
|
IE_NAME = u'blip.tv'
|
|
|
|
|
|
|
|
|
|
|
@ -1897,6 +1897,10 @@ class BlipTVIE(InfoExtractor):
|
|
|
|
if mobj is None:
|
|
|
|
if mobj is None:
|
|
|
|
raise ExtractorError(u'Invalid URL: %s' % url)
|
|
|
|
raise ExtractorError(u'Invalid URL: %s' % url)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# See https://github.com/rg3/youtube-dl/issues/857
|
|
|
|
|
|
|
|
api_mobj = re.match(r'http://a\.blip\.tv/api\.swf#(?P<video_id>[\d\w]+)', url)
|
|
|
|
|
|
|
|
if api_mobj is not None:
|
|
|
|
|
|
|
|
url = 'http://blip.tv/play/g_%s' % api_mobj.group('video_id')
|
|
|
|
urlp = compat_urllib_parse_urlparse(url)
|
|
|
|
urlp = compat_urllib_parse_urlparse(url)
|
|
|
|
if urlp.path.startswith('/play/'):
|
|
|
|
if urlp.path.startswith('/play/'):
|
|
|
|
request = compat_urllib_request.Request(url)
|
|
|
|
request = compat_urllib_request.Request(url)
|
|
|
@ -4405,8 +4409,8 @@ def gen_extractors():
|
|
|
|
YahooSearchIE(),
|
|
|
|
YahooSearchIE(),
|
|
|
|
DepositFilesIE(),
|
|
|
|
DepositFilesIE(),
|
|
|
|
FacebookIE(),
|
|
|
|
FacebookIE(),
|
|
|
|
BlipTVUserIE(),
|
|
|
|
|
|
|
|
BlipTVIE(),
|
|
|
|
BlipTVIE(),
|
|
|
|
|
|
|
|
BlipTVUserIE(),
|
|
|
|
VimeoIE(),
|
|
|
|
VimeoIE(),
|
|
|
|
MyVideoIE(),
|
|
|
|
MyVideoIE(),
|
|
|
|
ComedyCentralIE(),
|
|
|
|
ComedyCentralIE(),
|
|
|
|