A minimal, no frills RSS feed reader for YouTube.
The header shows fetch health (3/3 channels · 39 videos · updated 2 minutes ago) and keeps cached results when a channel fails to refresh.
Create a config.yaml in the working directory:
channels:
Computerphile: "UC9-y-6csu5WGm29I7JiwpnA"
Fireship: "UCsBjURrPoezykLs9EqgamOA"
TomScott: "UCBa659QWEk1AI4Tg--mrJ2A"The key is a label for your own reference (used in logs and error messages). The value is the YouTube channel ID from the channel URL.
Use the converter at the bottom of the page to turn a channel link like https://www.youtube.com/@Computerphile into a config line you can paste into config.yaml.
Requires Go 1.23+.
go run main.goOr:
makeOpen http://localhost:8080. Feeds refresh every 15 minutes by default.
YouTube's public Atom feed (/feeds/videos.xml) sometimes returns 404 for every channel during certain hours. YouRSS keeps the last successful fetch until the endpoint works again.
PORT- HTTP port to listen on. Defaults to8080.REFRESH_INTERVAL- How often to refetch feeds. Defaults to15m. Accepts Go duration strings like5m,30m,1h. With many channels (20+), consider30mto reduce YouTube rate limiting.HTTP_TIMEOUT- Per-request timeout for YouTube and thumbnail fetches. Defaults to30s.CHANNEL_FETCH_DELAY- Pause between channel fetches during a refresh. Defaults to2swhen you have more than 10 channels, otherwise500ms.VIDEO_URL- Base URL for video links. Leave unset to use YouTube. Set to an Invidious or Piped instance to rewrite links, e.g.https://invidious.tiekoetter.com.HIDE_SHORTS- Exclude YouTube Shorts from the feed. Defaults totrue. Set tofalseto include Shorts.
PORT=3000 VIDEO_URL=https://invidious.tiekoetter.com go run main.goPrebuilt image from GitHub Container Registry:
docker run -d -p 8080:8080 \
-v /path/to/config.yaml:/config.yaml \
-e VIDEO_URL=https://invidious.tiekoetter.com \
ghcr.io/vojkovic/yourssBuild and run locally:
make dockerservices:
yourss:
image: ghcr.io/vojkovic/yourss
restart: always
ports:
- "8080:8080"
volumes:
- /path/to/config.yaml:/config.yamldocker compose up -d