diff options
author | Kyu Yeun Kim <kyuyeunk01@gmail.com> | 2020-11-16 22:03:48 +0900 |
---|---|---|
committer | Kyu Yeun Kim <kyuyeunk01@gmail.com> | 2020-11-16 22:03:48 +0900 |
commit | d02f12107f3e0c640b942dafbf9d3e26f81e6473 (patch) | |
tree | 754ed1dc1153e5a8b2bbf09fe98aa0a95b69264d | |
parent | d052b9a112fb7ae749a829dceba6e3289663a303 (diff) | |
download | hypervideo-pre-d02f12107f3e0c640b942dafbf9d3e26f81e6473.tar.lz hypervideo-pre-d02f12107f3e0c640b942dafbf9d3e26f81e6473.tar.xz hypervideo-pre-d02f12107f3e0c640b942dafbf9d3e26f81e6473.zip |
[Vlive] Fix playlist handling when downloading a channel
-rw-r--r-- | youtube_dlc/extractor/vlive.py | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/youtube_dlc/extractor/vlive.py b/youtube_dlc/extractor/vlive.py index 935560b57..ce6549d11 100644 --- a/youtube_dlc/extractor/vlive.py +++ b/youtube_dlc/extractor/vlive.py @@ -300,13 +300,34 @@ class VLiveChannelIE(InfoExtractor): for video in videos: video_id = video.get('videoSeq') - if not video_id: + video_type = video.get('videoType') + + if not video_id or not video_type: continue video_id = compat_str(video_id) - entries.append( - self.url_result( - 'http://www.vlive.tv/video/%s' % video_id, - ie=VLiveIE.ie_key(), video_id=video_id)) + + if video_type in ('PLAYLIST'): + playlist_videos = try_get( + video, + lambda x: x['videoPlaylist']['videoList'], list) + if not playlist_videos: + continue + + for playlist_video in playlist_videos: + playlist_video_id = playlist_video.get('videoSeq') + if not playlist_video_id: + continue + playlist_video_id = compat_str(playlist_video_id) + + entries.append( + self.url_result( + 'http://www.vlive.tv/video/%s' % playlist_video_id, + ie=VLiveIE.ie_key(), video_id=playlist_video_id)) + else: + entries.append( + self.url_result( + 'http://www.vlive.tv/video/%s' % video_id, + ie=VLiveIE.ie_key(), video_id=video_id)) return self.playlist_result( entries, channel_code, channel_name) |