|
|
|
@ -166,9 +166,17 @@ class BlipTVIE(SubtitlesInfoExtractor):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BlipTVUserIE(InfoExtractor):
|
|
|
|
|
_VALID_URL = r'(?:(?:(?:https?://)?(?:\w+\.)?blip\.tv/)|bliptvuser:)(?!api\.swf)([^/]+)/*$'
|
|
|
|
|
_VALID_URL = r'(?:(?:https?://(?:\w+\.)?blip\.tv/)|bliptvuser:)(?!api\.swf)([^/]+)/*$'
|
|
|
|
|
_PAGE_SIZE = 12
|
|
|
|
|
IE_NAME = 'blip.tv:user'
|
|
|
|
|
_TEST = {
|
|
|
|
|
'url': 'http://blip.tv/actone',
|
|
|
|
|
'info_dict': {
|
|
|
|
|
'id': 'actone',
|
|
|
|
|
'title': 'Act One: The Series',
|
|
|
|
|
},
|
|
|
|
|
'playlist_count': 5,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def _real_extract(self, url):
|
|
|
|
|
mobj = re.match(self._VALID_URL, url)
|
|
|
|
@ -179,6 +187,7 @@ class BlipTVUserIE(InfoExtractor):
|
|
|
|
|
page = self._download_webpage(url, username, 'Downloading user page')
|
|
|
|
|
mobj = re.search(r'data-users-id="([^"]+)"', page)
|
|
|
|
|
page_base = page_base % mobj.group(1)
|
|
|
|
|
title = self._og_search_title(page)
|
|
|
|
|
|
|
|
|
|
# Download video ids using BlipTV Ajax calls. Result size per
|
|
|
|
|
# query is limited (currently to 12 videos) so we need to query
|
|
|
|
@ -215,4 +224,5 @@ class BlipTVUserIE(InfoExtractor):
|
|
|
|
|
|
|
|
|
|
urls = ['http://blip.tv/%s' % video_id for video_id in video_ids]
|
|
|
|
|
url_entries = [self.url_result(vurl, 'BlipTV') for vurl in urls]
|
|
|
|
|
return [self.playlist_result(url_entries, playlist_title=username)]
|
|
|
|
|
return self.playlist_result(
|
|
|
|
|
url_entries, playlist_title=title, playlist_id=username)
|
|
|
|
|