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 via cargo directly.
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
Bugs are to be expected in the initial release. Please use Github Issues for any bug reporting to allow for better tracking. Since initial post, version has already been updated from 1.0.2 to 1.0.5 because of fantastic users submitting bug reports!
Very cool! Tried on intel macos - metadata fetching, browsing works. Video playback not working for me - on play loader spins for a second and nothing happens. Tried in few terminals, mpv and yt-dlp are installed via homebrew, yt-feeds installed with cargo. Do you know what can I be missing?
Update from today:
I could not replicate this issue. It is possible you initially were on 1.0.2, which had these issues.
Steps to replicate working build:
This was done with all default configurations set for MPV and yt-dlp.
Edit:
Thank you for the update! Does not work for me unfortunately - I did the same thing, attaching screenshot with versions
Going to try on linux shortly and check back
Also same experience on linux - can browse but on play it loads for a second and nothing happens. These are the versions:
Curious: is this with the attached configuration in the documentation, or with a custom configuration for either MPV or yt-dlp?
If this is with that configuration, can you try the from source version?
Edit:
I was using the untouched mpv and yt-dlp the way they are shipped. Now tried copy pasting the configs from the docs to corresponding folders - no luck still. Same experience: on press play loading for a sec and then goes back to non-playing view same as right before pressing play. I updated crate to the 1.0.5, where can I find the logs? Also tried the 1.0.5 macos binary - same thing. Sorry I cant create the github issue because don’t want to deanon this account.
Really want this to work, awesome app idea!
Thank you for continuing to troubleshoot. No worries with GitHub, I understand your concern!
Can you check the log file? In 1.0.5 I’ve added stderr dumps from MPV to the log file. If any errors occurred, that’d give us a place to start.
I might not be able to recreate the issue, but others might have the same issue so I’m happy to find the source problem.
Where is the file it is dumping into? I can’t find it
The data directory information is located in the documentation on the GitHub page. Will depend on the OS. In that directory, the log file is just log.txt. That being said, if no errors are given via yt-dlp, then it wouldn’t be logged regardless.
Yt-dlp logging was added in the most recent GitHub release, so anything from before may not have generated logs regardless.
Worth mentioning I am currently doing a complete rewrite for version 2.0 with lots of quality of life improvements and a fair bit more verbosity in error reporting. Historically, this was just a personal program so troubleshooting 3rd party interactions across operating systems was not a priority.
If you want to mess around with the MPV and yt-dlp pipeline. Try just running
mpv <youtube_url>to see if it works outside of yt-feeds. Yt-dlp recently started to require a JS backend like Node or Deno, so that might be another thing to look into as that can cause bugs like this.Thank you! Log file helped - was an yt-dlp error “no such option —remote-components”. Apparently there were multiple yt-dlp installations in my system and it was resolving the wrong older one. I am able to play videos now - awesome!
Was playing around with it - usually works great, though I found that some videos are getting stuck on few seconds play. My hunch is that it is because it chooses the 4K resolution in these cases and for whatever reason it is choking 3s into the video. Can play same video on the yt directly so don’t think it’s bandwidth
Any way, thank you for your work, this is truly amazing! Thank you for making it available