[youtube] Fix mix video regex
authorSergey M. <dstftw@gmail.com>
Mon, 24 Feb 2014 05:51:06 +0000 (12:51 +0700)
committerSergey M. <dstftw@gmail.com>
Mon, 24 Feb 2014 05:52:02 +0000 (12:52 +0700)
Attributes' order in <li> is arbitrary and changes every time playlist
page is fetched, so we can't rely on `data-index` to be before
`data-video-username`.

youtube_dl/extractor/youtube.py

index f868b19290a65ec0992ebbf6da80cafc7699f072..f65052a8901e962222de32c96d5796c6cca746fb 100644 (file)
@@ -1492,11 +1492,10 @@ class YoutubePlaylistIE(YoutubeBaseInfoExtractor):
         title_span = (search_title('playlist-title') or
             search_title('title long-title') or search_title('title'))
         title = clean_html(title_span)
-        video_re = r'''(?x)data-index="\d+".*?
-                       data-video-username="(.*?)".*?
+        video_re = r'''(?x)data-video-username="(.*?)".*?
                        href="/watch\?v=([0-9A-Za-z_-]{11})&amp;[^"]*?list=%s''' % re.escape(playlist_id)
         matches = orderedSet(re.findall(video_re, webpage, flags=re.DOTALL))
-        # Some of the videos may have beend deleted, their username field is empty
+        # Some of the videos may have been deleted, their username field is empty
         ids = [video_id for (username, video_id) in matches if username]
         url_results = self._ids_to_results(ids)