I was messing around with the new coding agent in Xcode and built an app that would let me put in a bunch of channels I subscribe to, then basically made a YouTube RSS app around that. It would fetch new videos and show the thumbnails, times, descriptions, etc. If I wanted to watch something it will download it with yt-dlp on the backend. Watched videos would get cleaned up periodically, but videos marked as favorites would stick around.
It worked decently well. However, I started running into API limits when it would refresh to fetch updates. Things could likely be tweaked to avoid this, but I haven’t revisited it yet.
I didn’t make a generic search, but did allow pulling up one-off videos to download and favorite them.