Fix TypeError in decode() method and unordered playlist URLs

pull/8/head
Ricardo Garcia 16 years ago
parent 5487aea5d8
commit 27d98b6e25

@ -753,10 +753,11 @@ class YoutubePlaylistIE(InfoExtractor):
return [None] return [None]
# Extract video identifiers # Extract video identifiers
ids_in_page = set() ids_in_page = []
for mobj in re.finditer(self._VIDEO_INDICATOR, page): for mobj in re.finditer(self._VIDEO_INDICATOR, page):
ids_in_page.add(mobj.group(1)) if mobj.group(1) not in ids_in_page:
video_ids.extend(list(ids_in_page)) ids_in_page.append(mobj.group(1))
video_ids.extend(ids_in_page)
if (self._MORE_PAGES_INDICATOR % (playlist_id, pagenum + 1)) not in page: if (self._MORE_PAGES_INDICATOR % (playlist_id, pagenum + 1)) not in page:
break break
@ -901,6 +902,9 @@ if __name__ == '__main__':
youtube_pl_ie = YoutubePlaylistIE(youtube_ie) youtube_pl_ie = YoutubePlaylistIE(youtube_ie)
# File downloader # File downloader
charset = locale.getdefaultlocale()[1]
if charset is None:
charset = 'ascii'
fd = FileDownloader({ fd = FileDownloader({
'usenetrc': opts.usenetrc, 'usenetrc': opts.usenetrc,
'username': opts.username, 'username': opts.username,
@ -910,7 +914,7 @@ if __name__ == '__main__':
'forcetitle': opts.gettitle, 'forcetitle': opts.gettitle,
'simulate': (opts.simulate or opts.geturl or opts.gettitle), 'simulate': (opts.simulate or opts.geturl or opts.gettitle),
'format': opts.format, 'format': opts.format,
'outtmpl': ((opts.outtmpl is not None and opts.outtmpl.decode(locale.getdefaultlocale()[1])) 'outtmpl': ((opts.outtmpl is not None and opts.outtmpl.decode(charset))
or (opts.usetitle and u'%(stitle)s-%(id)s.%(ext)s') or (opts.usetitle and u'%(stitle)s-%(id)s.%(ext)s')
or (opts.useliteral and u'%(title)s-%(id)s.%(ext)s') or (opts.useliteral and u'%(title)s-%(id)s.%(ext)s')
or u'%(id)s.%(ext)s'), or u'%(id)s.%(ext)s'),

Loading…
Cancel
Save