LibreTube - uses Piped as video source by default. Subscriptions and playlists can be created, all without actually interacting with YouTube.
Clipious - uses Invidious as the video source. Also allows for subscribing and accounts. Lesser known client
NewPipe - Gets the source directly from YT. Allows for subscribing and creating playlists
Additionally, there’s also ReVanced that lets you patch the regular YT app to include useful features.
I’ve been using pipe-viewer (formerly/alternatively youtube-viewer) for years. It’s an extremely minimal yet feature-rich and customizable perl youtube client, designed to be used without a google api key (If you want to use an account, use youtube-viewer instead). No other client I’ve tried comes close in my experience (I’ve tried Freetube (bloated), Minitube (buggy, feature incomplete, uses embedded player), Newpipe (restricted to android)).
Also works great on mobile, and can be used with a Gtk-perl client for people who want a graphical client. It can also be used with any native video player, like mpv or mplayer (and adding an unsupported player is trivial in the config).
Demo:
There’s also invidtui, which uses the Invidious API. You can simply use it with your favorite video player (e.g. mpv or VLC). Invidious is also very light on resources, so you could host your own instance. Even locally on your machine using Docker. Or go with youtube-local.
The borderless UI is so good, honestly. Do you know if there’s a way to alter the player control UI? Am wanting to get into ricing and that looks like it provides a great solution for some minimalist ideas I’m having.
The window decorations in my video are provided by cwm, not the player. The player UI is just default mpv.