One-Way-Synchronization of your YouTube subscriptions to FreshRSS.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Marcel Kapfer f942dab834
🎉 Initial commit
2 months ago
.gitignore 🎉 Initial commit 2 months ago
LICENSE 🎉 Initial commit 2 months ago
README.org 🎉 Initial commit 2 months ago
config.example.json 🎉 Initial commit 2 months ago
freshrss.py 🎉 Initial commit 2 months ago
helpers.py 🎉 Initial commit 2 months ago
requirements.txt 🎉 Initial commit 2 months ago
run.sh 🎉 Initial commit 2 months ago
youtube.py 🎉 Initial commit 2 months ago
youtube2freshrss.py 🎉 Initial commit 2 months ago

README.org

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