cross-posted from: https://programming.dev/post/40815478
Introducing YT-Feeds.
I was looking for an ultra lightweight YouTube client that would allow me to avoid the algorithm, clickbait thumbnails, and AI generated comment sections. After months of work, and getting side tracked many times, YT-Feeds was born. It can be found on GitHub, but is available on the AUR, and can be installed with
binstall, github releases, or viacargodirectly.It is built in Rust with no graphical framework. It functions entirely on key binds and the design philosophy is to have only one page to view at any time.
Features List:
- Fast startup and navigation
- Uses minimal resources (under 1 Mb RAM!)
- Distraction and short form content free
- Allows for searching/subscribing/unsubscribing channels
- Automatically tracks and resumes watch history locally
- Shows recent videos from subscriptions organized by date
- Groups subscriptions into a collective “feed” organized by date
- Categorize and view videos in the ‘watch later’ menu
- Never requires leaving the terminal or using your mouse
- Cross platform support for ARM and x86_64 Windows, MacOS, and Linux
Note: I expect there to be bugs in the future - feel free to submit an issue and I will get to it when I can find the time.


Nice.
I don’t subscribe or use feeds on yt; can this be used to just search by keywords & watch?
edit:
Yes, this is possible by pressing Esc, then
v.Searches & video selection works.
However, no video is played. My mpv+yt-dlp setup works nicely otherwise.
I have no idea where to look for logs and error messages.
Additionally, there’s no documentation for configuration options, although the Readme states logging should be possible that way.
In what environment is this setup?
Running the version 1.0.3 via the AUR with Yt-dlp built on 11 12 2025 and MPV built on 9 24 2025 as well as the the provided MPV and yt-dlp configurations is confirmed to work this morning.
Edit:
OK i guess I didn’t realize those configs are mandatory.
Debian Stable
Any way to turn on logging for the app itself?
The attached configuration should not theoretically be necessary - I was able to see full functionality with blank configuration.
In my testing though, I’ve notice some configurations options can cause issues with the yt-dlp and MPV pipeline.
As per logging, it is automatically on with messages stored in the specified files in the documentation. As of 1.0.5, MPV and yt-dlp stderr is also logged. Anything prior to 1.0.5 will not feature this logging.
Edit: