|
|
|
@ -1552,7 +1552,7 @@ class YoutubePlaylistIE(YoutubeBaseInfoExtractor): |
|
|
|
|
video_id = query_dict['v'][0] |
|
|
|
|
if self._downloader.params.get('noplaylist'): |
|
|
|
|
self.to_screen(u'Downloading just video %s because of --no-playlist' % video_id) |
|
|
|
|
return self.url_result('https://www.youtube.com/watch?v=' + video_id, 'Youtube') |
|
|
|
|
return self.url_result(video_id, 'Youtube', video_id=video_id) |
|
|
|
|
else: |
|
|
|
|
self.to_screen(u'Downloading playlist PL%s - add --no-playlist to just download video %s' % (playlist_id, video_id)) |
|
|
|
|
|
|
|
|
@ -1571,7 +1571,8 @@ class YoutubePlaylistIE(YoutubeBaseInfoExtractor): |
|
|
|
|
|
|
|
|
|
playlist_title = self._og_search_title(page) |
|
|
|
|
|
|
|
|
|
url_results = [self.url_result(vid, 'Youtube') for vid in ids] |
|
|
|
|
url_results = [self.url_result(video_id, 'Youtube', video_id=video_id) |
|
|
|
|
for video_id in ids] |
|
|
|
|
return self.playlist_result(url_results, playlist_id, playlist_title) |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1626,9 +1627,9 @@ class YoutubeChannelIE(InfoExtractor): |
|
|
|
|
|
|
|
|
|
self._downloader.to_screen(u'[youtube] Channel %s: Found %i videos' % (channel_id, len(video_ids))) |
|
|
|
|
|
|
|
|
|
urls = ['http://www.youtube.com/watch?v=%s' % id for id in video_ids] |
|
|
|
|
url_entries = [self.url_result(eurl, 'Youtube') for eurl in urls] |
|
|
|
|
return [self.playlist_result(url_entries, channel_id)] |
|
|
|
|
url_entries = [self.url_result(video_id, 'Youtube', video_id=video_id) |
|
|
|
|
for video_id in video_ids] |
|
|
|
|
return self.playlist_result(url_entries, channel_id) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class YoutubeUserIE(InfoExtractor): |
|
|
|
@ -1692,9 +1693,11 @@ class YoutubeUserIE(InfoExtractor): |
|
|
|
|
if len(ids_in_page) < self._GDATA_PAGE_SIZE: |
|
|
|
|
break |
|
|
|
|
|
|
|
|
|
urls = ['http://www.youtube.com/watch?v=%s' % video_id for video_id in video_ids] |
|
|
|
|
url_results = [self.url_result(rurl, 'Youtube') for rurl in urls] |
|
|
|
|
return [self.playlist_result(url_results, playlist_title = username)] |
|
|
|
|
url_results = [ |
|
|
|
|
self.url_result(video_id, 'Youtube', video_id=video_id) |
|
|
|
|
for video_id in video_ids] |
|
|
|
|
return self.playlist_result(url_results, playlist_title=username) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class YoutubeSearchIE(SearchInfoExtractor): |
|
|
|
|
IE_DESC = u'YouTube.com searches' |
|
|
|
@ -1735,7 +1738,8 @@ class YoutubeSearchIE(SearchInfoExtractor): |
|
|
|
|
|
|
|
|
|
if len(video_ids) > n: |
|
|
|
|
video_ids = video_ids[:n] |
|
|
|
|
videos = [self.url_result('http://www.youtube.com/watch?v=%s' % id, 'Youtube') for id in video_ids] |
|
|
|
|
videos = [self.url_result(video_id, 'Youtube', video_id=video_id) |
|
|
|
|
for video_id in video_ids] |
|
|
|
|
return self.playlist_result(videos, query) |
|
|
|
|
|
|
|
|
|
class YoutubeSearchDateIE(YoutubeSearchIE): |
|
|
|
@ -1795,7 +1799,9 @@ class YoutubeFeedsInfoExtractor(YoutubeBaseInfoExtractor): |
|
|
|
|
feed_html = info['feed_html'] |
|
|
|
|
m_ids = re.finditer(r'"/watch\?v=(.*?)["&]', feed_html) |
|
|
|
|
ids = orderedSet(m.group(1) for m in m_ids) |
|
|
|
|
feed_entries.extend(self.url_result(id, 'Youtube') for id in ids) |
|
|
|
|
feed_entries.extend( |
|
|
|
|
self.url_result(video_id, 'Youtube', video_id=video_id) |
|
|
|
|
for video_id in ids) |
|
|
|
|
if info['paging'] is None: |
|
|
|
|
break |
|
|
|
|
return self.playlist_result(feed_entries, playlist_title=self._PLAYLIST_TITLE) |
|
|
|
|