From a2dafe2887acc745b70eff811a2932098048cd64 Mon Sep 17 00:00:00 2001 From: "Sergey M." Date: Mon, 24 Feb 2014 12:51:06 +0700 Subject: [PATCH] [youtube] Fix mix video regex Attributes' order in
  • 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 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index f868b1929..f65052a89 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1492,11 +1492,10 @@ def _extract_mix(self, playlist_id): 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})&[^"]*?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)