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!

  • mootny@sh.itjust.works
    link
    fedilink
    arrow-up
    4
    ·
    8 days ago

    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?

    • nate@programming.devOP
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      7 days ago

      Haven’t tested via MacOS yet, so I’m not sure about the issue from a glance.

      As of yt-feeds 1.0.2, there was a yt-dlp issue that would do what you describe as yt-dlp requires a new flag to enable a JS backend to work around a YouTube change. I’d first check that to ensure it is on the newest version.

      Otherwise, I’ll look into it on a Mac test environment tomorrow.

      Edit:

      Please use Github Issues for any bug reporting to allow for better tracking. The newest version of yt-feeds is now at 1.0.5 with improved error logging for better user reporting!

    • nate@programming.devOP
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      7 days ago

      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:

      brew install yt-dlp 
      brew install mpv
      cargo install --git https://github.com/nate-craft/yt-feeds
      yt-feeds
      

      This was done with all default configurations set for MPV and yt-dlp.

      Sample running on MacOS

      Edit:

      Please use Github Issues for any bug reporting to allow for better tracking. The newest version of yt-feeds is now at 1.0.5 with improved error logging for better user reporting!

      • mootny@sh.itjust.works
        link
        fedilink
        arrow-up
        2
        ·
        7 days ago

        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

        • mootny@sh.itjust.works
          link
          fedilink
          arrow-up
          1
          ·
          7 days ago

          Also same experience on linux - can browse but on play it loads for a second and nothing happens. These are the versions:

          • nate@programming.devOP
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            7 days ago

            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:

            Please use Github Issues for any bug reporting to allow for better tracking. The newest version of yt-feeds is now at 1.0.5 with improved error logging for better user reporting!

            • mootny@sh.itjust.works
              link
              fedilink
              arrow-up
              1
              ·
              7 days ago

              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!

              • nate@programming.devOP
                link
                fedilink
                arrow-up
                1
                ·
                edit-2
                6 days ago

                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.

                  • nate@programming.devOP
                    link
                    fedilink
                    arrow-up
                    1
                    ·
                    5 hours ago

                    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.