diff --git a/main.py b/main.py index a9ae88f..1a6762d 100755 --- a/main.py +++ b/main.py @@ -169,18 +169,23 @@ def copy_playlist_items(yt_api, src_playlist_items = list_playlist(yt_api, src_playlist) dst_playlist_items = list_playlist(yt_api, dst_playlist) - if limit < 0: - limit = len(src_playlist_items) - dst_videos = {pl_item['snippet']['resourceId']['videoId'] for pl_item in dst_playlist_items} + processed_amt = 0 - for src_pl_item in src_playlist_items[:limit]: + for src_pl_item in src_playlist_items: + if 0 <= limit <= processed_amt: + break + was_processed = False video_id = src_pl_item['snippet']['resourceId']['videoId'] if video_id not in dst_videos: add_video_to_playlist(yt_api, video_id, dst_playlist, dry_run) + was_processed = True if delete_from_src: remove_video_from_playlist(yt_api, src_pl_item["id"], src_playlist, dry_run) + was_processed = True + if was_processed: + processed_amt += 1 def get_video_info(youtube, video_id: str): @@ -262,13 +267,17 @@ def main(): add_video_to_playlist(youtube, video_id, playlist, args.dry_run) elif args.command == "dups": + processed = 0 playlist_id = get_playlist_id(args.playlist) plitems = list_playlist(youtube, playlist_id) plitems_processed = set() - for plitem in plitems[:args.limit]: + for plitem in plitems: + if 0 <= args.limit <= processed: + break video_id = plitem["snippet"]["resourceId"]["videoId"] if video_id in plitems_processed: remove_video_from_playlist(youtube, plitem["id"], playlist_id, args.dry_run) + processed += 1 else: plitems_processed.add(video_id)