From 4dcd1206064f891c1c561a3213490d2cb6eb18b6 Mon Sep 17 00:00:00 2001 From: Corey Nicholson Date: Sun, 9 Jul 2017 18:20:51 +0000 Subject: [PATCH] [vlive:playlist] Address PR comments --- youtube_dl/extractor/extractors.py | 4 ++-- youtube_dl/extractor/vlive.py | 24 ++++++++++++++++++------ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index 68e8c1696..b2cc6ccd5 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -1203,9 +1203,9 @@ from .vk import ( VKWallPostIE, ) from .vlive import ( - VLivePlaylistIE, VLiveIE, - VLiveChannelIE + VLiveChannelIE, + VLivePlaylistIE ) from .vodlocker import VodlockerIE from .vodpl import VODPlIE diff --git a/youtube_dl/extractor/vlive.py b/youtube_dl/extractor/vlive.py index 36e09850a..f918917cf 100644 --- a/youtube_dl/extractor/vlive.py +++ b/youtube_dl/extractor/vlive.py @@ -288,8 +288,20 @@ class VLivePlaylistIE(InfoExtractor): def _real_extract(self, url): playlist_id = self._match_id(url) - video_id = self._search_regex( - self._VALID_URL, url, 'video id', group='video_id') + video_id_match = re.match(self._VALID_URL, url) + assert video_id_match + video_id = compat_str(video_id_match.group('video_id')) + + video_url_format = 'http://www.vlive.tv/video/%s' + if self._downloader.params.get('noplaylist'): + self.to_screen( + 'Downloading just video %s because of --no-playlist' % video_id) + return self.url_result( + video_url_format % video_id, + ie=VLiveIE.ie_key(), video_id=video_id) + else: + self.to_screen( + 'Downloading playlist %s - add --no-playlist to just download video' % playlist_id) webpage = self._download_webpage( 'http://www.vlive.tv/video/%s/playlist/%s' % (video_id, playlist_id), video_id) @@ -299,15 +311,15 @@ class VLivePlaylistIE(InfoExtractor): webpage, 'playlist name', fatal=False) item_ids = self._search_regex( - r'\bvar\s+playlistVideoSeqs\s*=\s*\[([^\]]+)\]', - webpage, 'playlist item ids', default='') + r'\bvar\s+playlistVideoSeqs\s*=\s*\[([^]]+)\]', + webpage, 'playlist item ids') entries = [] - for item_id in re.split(r'\s*,\s*', item_ids): + for item_id in self._parse_json('[%s]' % item_ids, playlist_id): item_id = compat_str(item_id) entries.append( self.url_result( - 'http://www.vlive.tv/video/%s' % item_id, + video_url_format % item_id, ie=VLiveIE.ie_key(), video_id=item_id)) return self.playlist_result(