It just so happens I'm right in the middle of trying to change how I watch YouTube at my computer. Despite my best efforts, I find myself getting sucked into shorts, so I'm starting investigate if I can take advantage of YouTube RSS syndication. I recently build yt-dlp and got all the dependencies sorted out, so I can bring videos to my machine locally. I'm also checking out elfeed[0] which is an Emacs based RSS reader, and elfeed-tube[1] which further customizes the elfeed experience for YouTube as well as adding an mpv integration that lets you control video playback directly from Emacs.
As a clarification, you don't need elfeed-tube to subscribe to YouTube feeds (channels or playlists) with elfeed, or to watch the videos with mpv. elfeed-tube only adds text to the feed entries, in the form of more video metadata, transcripts and synced playback with mpv.
Also, mpv supports lua scripts for a variety of actions on YouTube (or other streaming) videos, such as showing you YouTube's recommended videos in the video player, clipping and downloading videos, sponsorblock and submitting sponsorblock segments, and so on.
I've been doing this for almost a decade, and I do recommend it. In my experience, just importing my YouTube subscriptions into a feed reader was a positive experience. I've had a daily digest of mostly interesting videos and rarely (if ever) the urge to browse YouTube.
But with YouTube's recommendation algorithm out of the picture, it does mean that you'll have to find some other way of discovering new channels.
Turn off your watch history. It disables the front page and shorts, but you can still watch any video you want and also follow your subscriptions. You still get recommendations next to each video but I find those much less problematic personally.
You've probably already done this, but first thing, turn off autoplay and make sure it stays off. Much easier to not get sucked into things when you have to actively click on them.
I do something similar as I hate interruptions of various kinds; what I'd love is a way to show a YT playlist in something like Jellyfin, where it downloads the "next" episode while you're watching the current one.
As it is, I can do that somewhat manually and it makes for a nice interface where I'm sure what the kids are watching.
I did this too, I have pi that downloads and combined a bunch of rss feeds every 30min (cron) and downloads the vids, I browse them with Thunderbird on my desktop, I inject a special link to the mp4 on my pi. So I can just watch vids at 192.168.1.106/videos/X.mp4 using the Firefox mp4 player.
Did it in ~300 lines of node.js, was trying to learn how to use JS for server stuff, seemed like a good idea at the time. It still works 5 years later, but it stands as a reminder to me to never use async/await.
There are greasemonkey scripts available which hide shorts from appearing.
Not sure if this fits to your needs, but uBlock Origin lets you block elements directly on the page. It works great for removing the pesky shorts section. Haven't seen Youtube shorts since. On top of that, i removed the "suggested videos" on the right side of an already opened video, to avoid the pitfall of continuously moving on to barely related stuff, much like the shorts doomscrolling.
I believe Brave too, has this feature.