One-Way-Synchronization of your YouTube subscriptions to FreshRSS.
Find a file
2023-04-20 21:55:49 +02:00
.gitignore 🎉 Initial commit 2023-04-20 21:55:49 +02:00
config.example.json 🎉 Initial commit 2023-04-20 21:55:49 +02:00
freshrss.py 🎉 Initial commit 2023-04-20 21:55:49 +02:00
helpers.py 🎉 Initial commit 2023-04-20 21:55:49 +02:00
LICENSE 🎉 Initial commit 2023-04-20 21:55:49 +02:00
README.org 🎉 Initial commit 2023-04-20 21:55:49 +02:00
requirements.txt 🎉 Initial commit 2023-04-20 21:55:49 +02:00
run.sh 🎉 Initial commit 2023-04-20 21:55:49 +02:00
youtube.py 🎉 Initial commit 2023-04-20 21:55:49 +02:00
youtube2freshrss.py 🎉 Initial commit 2023-04-20 21:55:49 +02:00

YouTube2FreshRSS

One-Way-Synchronization of your YouTube subscriptions to FreshRSS.

Requirements

  • YouTube channel/account with a public subscription list
  • FreshRSS instance
  • rss-bridge instance
  • Python 3

Features

  • Adds YouTube subscriptions as rss-bridge Atom feeds to the category "YouTube" in your FreshRSS instance
  • Removes YouTube Atom feeds from the YouTube category in FreshRSS if they are (no longer) YouTube subscriptions

Shortcomings

  • I did not implement support for using OAuth2 with Google. Therefore it is only possible to access public resources and this is the reason why the channels subscription lists needs to be public.
  • Perhaps many more that I don't know/mind at the moment.

Setup

  • Create a new project in the Google Cloud Console and follow the instructions to get an API key
  • Enable the YouTube bridge in rss-bridge (if necessary)
  • Copy config.example.json to config.json and fill it out
  • (optional) Create a Python virtual environment with python3 -m venv venv and activate it
  • Install Python requirements with pip install -r requirements.txt
  • Execute the program with python youtube2freshrss.py
  • (optional) Set up a Cron job for running the run.sh once a day with the working directory as first argument