[youtube:user] Speed up --match-title

This commit is contained in:
Philipp Hagemeister 2013-12-22 03:57:42 +01:00
parent 5a94982abe
commit e302f9ce32

View File

@ -1717,7 +1717,7 @@ def _real_extract(self, url):
# page by page until there are no video ids - it means we got # page by page until there are no video ids - it means we got
# all of them. # all of them.
video_ids = [] url_results = []
for pagenum in itertools.count(0): for pagenum in itertools.count(0):
start_index = pagenum * self._GDATA_PAGE_SIZE + 1 start_index = pagenum * self._GDATA_PAGE_SIZE + 1
@ -1735,10 +1735,17 @@ def _real_extract(self, url):
break break
# Extract video identifiers # Extract video identifiers
ids_in_page = [] entries = response['feed']['entry']
for entry in response['feed']['entry']: for entry in entries:
ids_in_page.append(entry['id']['$t'].split('/')[-1]) title = entry['title']['$t']
video_ids.extend(ids_in_page) video_id = entry['id']['$t'].split('/')[-1]
url_results.append({
'_type': 'url',
'url': video_id,
'ie_key': 'Youtube',
'id': 'video_id',
'title': title,
})
# A little optimization - if current page is not # A little optimization - if current page is not
# "full", ie. does not contain PAGE_SIZE video ids then # "full", ie. does not contain PAGE_SIZE video ids then
@ -1746,12 +1753,9 @@ def _real_extract(self, url):
# are no more ids on further pages - no need to query # are no more ids on further pages - no need to query
# again. # again.
if len(ids_in_page) < self._GDATA_PAGE_SIZE: if len(entries) < self._GDATA_PAGE_SIZE:
break break
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) return self.playlist_result(url_results, playlist_title=username)