"""Transfer YouTube subscriptions to FreshRSS.""" from youtube import YouTube from freshrss import FreshRss from helpers import read_config_file, determine_additions, determine_deletions def main(): """Entry point.""" config = read_config_file() youtube = YouTube( config['youtube_api_key'], config['youtube_channel_id'], config['rss_bridge_url'] ) subscriptions = youtube.get_subscriptions() sub_urls, parsed_subs = youtube.parse_subscriptions(subscriptions) print(f"Found {len(subscriptions)} subscriptions on YouTube.") freshrss = FreshRss( config['freshrss_url'], config['freshrss_username'], config['freshrss_api_password'], ) freshrss.get_auth_token() feeds = freshrss.get_feeds() active_feeds = freshrss.parse_feeds_urls(feeds) print(f"Found {len(active_feeds)} YouTube feeds on FreshRSS.") additions = determine_additions(parsed_subs, active_feeds) print(f"{len(additions)} feeds will be added to FreshRSS.") deletions = determine_deletions(active_feeds, sub_urls) print(f"{len(deletions)} feeds will be deleted from FreshRSS.") for addition in additions: freshrss.add_feed(addition['title'], addition['url']) if len(additions) > 0: print("Added missing feeds to FreshRSS.") for deletion in deletions: freshrss.remove_feed(deletion) if len(deletions) > 0: print("Removed missing YouTube subscriptions from FreshRSS.") if __name__ == "__main__": main()