Youtarr: A Self-Hosted YouTube Downloader That Actually Talks to Your Media Server
You've got a Plex, Jellyfin, or Emby server humming along nicely. You've also got a handful of YouTube channels you actually care about—ones you'd rather watch without ads, without tracking, and without wondering if that video will still be around next year. The problem is that pulling YouTube content into a media server has always meant duct-taping together yt-dlp, some shell scripts, and a prayer. Youtarr is a self-hosted project that tries to solve that whole mess in one place.
What It Does
Youtarr is a self-hosted YouTube downloader that automatically grabs videos from channels and playlists you subscribe to. It's not just a download queue—it generates metadata that media servers can actually read, and it mirrors your subscribed YouTube playlists into Plex, Jellyfin, and Emby as native playlists. It also writes a universal .m3u file for any other player that speaks that format.
The interesting part is the two-way-ish relationship with your media server. Youtarr pulls watched status back from Plex, Jellyfin, and Emby—per video, for every user on the server, not just you—so you can filter your library by what's been watched or not. That sync is explicitly one-way: Youtarr reads from your servers but never writes back to them. For Plex specifically, there's optional integration for automatic library refreshes, so new downloads show up without you manually poking the scanner.
Beyond that, you get scheduled downloads (cron-based), per-channel and global resolution settings from 360p up to 4K, SponsorBlock integration to strip sponsored segments, and auto-cleanup based on age, free space, or watched status. It works standalone too—there's in-app playback with a detail modal and browser streaming, so you don't strictly need a media server at all.
Why It's Cool
The watch status sync is the real hook. Most downloaders treat your media server as a dumb destination folder. Youtarr treats it as a source of truth for what's been watched. Pulling per-user watch state across the whole server (not just your account) and letting you filter on it is the kind of feature that sounds small until you're staring at a channel with 400 unwatched videos and no idea where you left off.
Channel grouping turns one library into many. You can organize channels into custom subfolders like __kids, __music, or __news and map those to separate media server libraries. That's a genuinely thoughtful way to build a curated, family-friendly YouTube experience without handing a child a browser and hoping for the best.
Find on YouTube closes the loop. There's a search page inside Youtarr that queries YouTube directly. Video results show you which ones you've already downloaded and which are missing, and clicking a result either subscribes you to a channel or queues a download. No more bouncing to the YouTube site, copying a URL, and pasting it back in.
Smart URL handling. If you paste a URL manually, Youtarr pre-validates it and shows you a metadata preview before committing to the download. Small thing, but it saves you from queuing up the wrong video at 4K.
Playlist mirroring is more than a folder dump. Subscribed playlists get downloaded into the right channel folders, mirrored as native playlists in all three supported servers, and exported as .m3u. That's three different playlist formats handled from one subscription, which is the kind of chore you don't appreciate until you've done it by hand.
It stands alone if you want it to. The README is clear that full functionality works without any media server. In-app playback, metadata, thumbnails, NFO files, embedded MP4 metadata—all of it works whether or not Plex is in the picture.
How to Try It
The project has searchable documentation covering install, configuration, media server setup, and troubleshooting at dialmasterorg.github.io/Youtarr. That's your best starting point since the README doesn't inline the install commands.
The general path looks like this:
- Head to the repository and check the docs for your deployment method.
- Configure your channel and playlist subscriptions once it's running.
- Point it at your media server if you want playlist mirroring, metadata sync, and watch status pull-back—or skip that entirely and use the built-in playback.
- Set your resolution defaults, SponsorBlock preferences, and a cron schedule for automatic downloads.
If self-hosting isn't your thing, there's a managed deployment option through ElfHosted with their own Youtarr docs. The project is also on Patreon if you want to support ongoing development.
Final Thoughts
Youtarr is aimed at a specific kind of person: someone running a home media server, subscribed to a set of YouTube channels they'd rather archive than stream, and tired of stitching together scripts to make it happen. The watch status sync and the multi-library channel grouping are what separate it from the pile of yt-dlp wrappers out there. It's not trying to be a YouTube frontend or a replacement for the platform—it's trying to be the missing bridge between YouTube subscriptions and the media server you already run. If that's your setup, it's worth a look.