Skip to content

Releases: M4RC02U1F4A4/YouTube-RSS

2.2.1

Choose a tag to compare

@M4RC02U1F4A4 M4RC02U1F4A4 released this 14 Oct 19:33
0ed0ac6

Fixes

  • The page no longer jumps when you mark a video as watched, open one, or come back to the tab.

Full Changelog: 2.2.0...2.2.1

2.2.0

Choose a tag to compare

@M4RC02U1F4A4 M4RC02U1F4A4 released this 08 Oct 11:30
88820ae

Features

  • Add a single video by pasting its YouTube link (or its id) in the Add dialog, even from a channel you don't follow. It keeps its real publish date, and shorts added this way are shown.

Full Changelog: 2.1.1...2.2.0

2.1.1

Choose a tag to compare

@M4RC02U1F4A4 M4RC02U1F4A4 released this 02 Oct 17:05
a35b67c

Fixes

  • Marking a video as watched with the mouse no longer highlights the next video. Moving to the next video is still there when you use the keyboard (j/k, w, Enter).

Full Changelog: 2.1.0...2.1.1

2.1.0

Choose a tag to compare

@M4RC02U1F4A4 M4RC02U1F4A4 released this 02 Oct 16:52
25e0445

What's new

  • With many channels the channel chips above the videos no longer take over the page: they stay within three rows, always including the channel you're filtering by, and the rest sit behind a +N more chip that shows the full list.

Full Changelog: 2.0.0...2.1.0

2.0.0

Choose a tag to compare

@M4RC02U1F4A4 M4RC02U1F4A4 released this 02 Oct 08:49

⚠️ Breaking change: one container instead of two

The React frontend and its nginx container are gone. The UI is now a single static page served by the backend, so the whole app is one image on one port:

1.x 2.0
Images ytrss-frontend + ytrss-backend ghcr.io/m4rc02u1f4a4/ytrss
Ports 8080 (UI) + 5001 (API) 8080 (UI and API)
Config REACT_APP_API_BASE_URL pointing at the API nothing, UI and API share the same address

ytrss-frontend and ytrss-backend will not receive further updates.

Upgrading from 1.x

Your data is kept: the database container and the ./docker_db volume do not change.

  1. Replace your docker-compose.yml with the new one and copy your G_API_KEY into it. If you prefer to edit yours:
    • delete the frontend service and the REACT_APP_API_BASE_URL variable;
    • rename the backend service to app, use image ghcr.io/m4rc02u1f4a4/ytrss:latest and port 8080:8080 (port 5001 is no longer used);
    • in updater, set APP_URL: http://app:8080 and copy the new command (it uses wget, so it no longer installs curl at every start).
  2. Apply it, removing the old frontend container:
    docker compose pull
    docker compose up -d --remove-orphans
  3. If a reverse proxy sits in front, point it at port 8080 only and drop the route to 5001.
  4. On Kubernetes: a single Deployment and Service on port 8080. The scheduled jobs can be CronJobs instead of the updater pod, see the README.

What's new

  • New interface: total time left to watch, a bar showing the whole queue, channel filter, videos grouped by day, "mark as watched" with undo, keyboard shortcuts (j / k / w / Enter), a layout designed for phones and an automatic light theme.
  • Much lighter "All videos" page: thumbnails are smaller, load only as you scroll, and off-screen cards are not drawn. Opening it no longer downloads every thumbnail at full resolution.
  • Videos open in the YouTube app on phones, and the list refreshes when you come back to the page.
  • No npm dependencies left: this closes all the open Dependabot pull requests on the frontend.

Fixes

  • Channel search works with any text: before, &, / and similar characters broke it.
  • "Duration of videos to watch" no longer counts hidden shorts.
  • Channels that hide their subscriber count can be added.
  • Errors are reported: the API answers with a real HTTP error code instead of OK, and the UI shows the message. For example, an invalid API key or a used-up daily quota is now reported as such.
  • Statistics no longer fail on a fresh install.
  • Calls to YouTube have a timeout, so a slow response can no longer block the app.
  • Updates use much less YouTube API quota: videos and channels are requested 50 at a time, and only videos up to 3 minutes long are checked for being shorts.

Behaviour changes

  • Watched videos are kept for 30 days from when you watch them (before: 30 days from when they were published). Videos watched before the upgrade still follow the old rule.
  • Hidden shorts are deleted after 30 days. Before, they piled up in the database forever.
  • Channel logos are stored at 240 px instead of 800 px. Existing ones update at the next channel refresh.
  • API changes, if you call it from scripts:
    • search moved from /search/<query> to /search?q=<query> and returns the list of results directly;
    • errors use HTTP status codes (400, 404, 409, 502…);
    • videos no longer store a thumbnail field.

Under the hood

  • Python 3.14, Flask 3.1, gunicorn 26 and pymongo 4.18, with pinned versions. The container runs as a non-root user.
  • flask-cors was removed: UI and API are now served from the same address, so CORS is no longer needed.
  • A single GitHub Actions job builds and publishes the image.

1.3.0

Choose a tag to compare

@M4RC02U1F4A4 M4RC02U1F4A4 released this 19 Mar 20:27
df085bb

Full Changelog: 1.2.2...1.3.0

1.2.2

Choose a tag to compare

@M4RC02U1F4A4 M4RC02U1F4A4 released this 26 Mar 22:50
003cb3d

What's Changed

  • Bump ejs from 3.1.9 to 3.1.10 in /frontend by @dependabot in #6
  • Bump follow-redirects from 1.15.4 to 1.15.6 in /frontend by @dependabot in #7
  • Bump braces from 3.0.2 to 3.0.3 in /frontend by @dependabot in #9
  • Bump micromatch from 4.0.5 to 4.0.8 in /frontend by @dependabot in #11
  • build(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /frontend by @dependabot in #16
  • build(deps): bump http-proxy-middleware from 2.0.6 to 2.0.7 in /frontend by @dependabot in #17
  • build(deps): bump rollup from 2.79.1 to 2.79.2 in /frontend by @dependabot in #19

New Contributors

Full Changelog: 1.2.1...1.2.2

1.2.1

Choose a tag to compare

@M4RC02U1F4A4 M4RC02U1F4A4 released this 13 Mar 20:04
553c9ad

What's Changed

New Contributors

Full Changelog: 1.2.0...1.2.1

1.2.0

Choose a tag to compare

@M4RC02U1F4A4 M4RC02U1F4A4 released this 28 Jan 20:36
f797465

What's Changed

Full Changelog: 1.1.2...1.2.0

1.2.0-beta4

1.2.0-beta4 Pre-release
Pre-release

Choose a tag to compare

@M4RC02U1F4A4 M4RC02U1F4A4 released this 28 Jan 20:26
2c6d0d0