diff --git a/tubearchivist/home/src/download/queue.py b/tubearchivist/home/src/download/queue.py index b0f12a91..57f966de 100644 --- a/tubearchivist/home/src/download/queue.py +++ b/tubearchivist/home/src/download/queue.py @@ -227,15 +227,18 @@ class PendingList(PendingIndex): def _parse_playlist(self, url): """add all videos of playlist to list""" playlist = YoutubePlaylist(url) - playlist.build_json() - if not playlist.json_data: + is_active = playlist.update_playlist() + if not is_active: message = f"{playlist.youtube_id}: failed to extract metadata" print(message) raise ValueError(message) - video_results = playlist.json_data.get("playlist_entries") - youtube_ids = [i["youtube_id"] for i in video_results] - for video_id in youtube_ids: + entries = playlist.json_data["playlist_entries"] + to_add = [i["youtube_id"] for i in entries if not i["downloaded"]] + if not to_add: + return + + for video_id in to_add: # match vid_type later self._add_video(video_id, VideoTypeEnum.UNKNOWN)