|
|
@ -529,7 +529,7 @@ class YoutubeIE(InfoExtractor):
|
|
|
|
self.report_video_url(video_id, video_real_url)
|
|
|
|
self.report_video_url(video_id, video_real_url)
|
|
|
|
|
|
|
|
|
|
|
|
# uploader
|
|
|
|
# uploader
|
|
|
|
mobj = re.search(r'More From: ([^<]*)<', video_webpage)
|
|
|
|
mobj = re.search(r"var watchUsername = '([^']+)';", video_webpage)
|
|
|
|
if mobj is None:
|
|
|
|
if mobj is None:
|
|
|
|
self.to_stderr(u'ERROR: unable to extract uploader nickname')
|
|
|
|
self.to_stderr(u'ERROR: unable to extract uploader nickname')
|
|
|
|
return [None]
|
|
|
|
return [None]
|
|
|
@ -682,7 +682,7 @@ class YoutubePlaylistIE(InfoExtractor):
|
|
|
|
_VALID_URL = r'(?:http://)?(?:\w+\.)?youtube.com/view_play_list\?p=(.+)'
|
|
|
|
_VALID_URL = r'(?:http://)?(?:\w+\.)?youtube.com/view_play_list\?p=(.+)'
|
|
|
|
_TEMPLATE_URL = 'http://www.youtube.com/view_play_list?p=%s&page=%s'
|
|
|
|
_TEMPLATE_URL = 'http://www.youtube.com/view_play_list?p=%s&page=%s'
|
|
|
|
_VIDEO_INDICATOR = r'/watch\?v=(.+?)&'
|
|
|
|
_VIDEO_INDICATOR = r'/watch\?v=(.+?)&'
|
|
|
|
_MORE_PAGES_INDICATOR = r'class="pagerNotCurrent">Next</a>'
|
|
|
|
_MORE_PAGES_INDICATOR = r'/view_play_list?p=%s&page=%s'
|
|
|
|
_youtube_ie = None
|
|
|
|
_youtube_ie = None
|
|
|
|
|
|
|
|
|
|
|
|
def __init__(self, youtube_ie, downloader=None):
|
|
|
|
def __init__(self, youtube_ie, downloader=None):
|
|
|
@ -727,7 +727,7 @@ class YoutubePlaylistIE(InfoExtractor):
|
|
|
|
ids_in_page.add(mobj.group(1))
|
|
|
|
ids_in_page.add(mobj.group(1))
|
|
|
|
video_ids.extend(list(ids_in_page))
|
|
|
|
video_ids.extend(list(ids_in_page))
|
|
|
|
|
|
|
|
|
|
|
|
if self._MORE_PAGES_INDICATOR not in page:
|
|
|
|
if (self._MORE_PAGES_INDICATOR % (playlist_id, pagenum + 1)) not in page:
|
|
|
|
break
|
|
|
|
break
|
|
|
|
pagenum = pagenum + 1
|
|
|
|
pagenum = pagenum + 1
|
|
|
|
|
|
|
|
|
|
|
|