posted in Selfhosted

Anyone know a good Selfhosted yt-dlp manager?

I’m looking for a server I can host in my home that has a simple ui where I can put in URLs for download and have them all show up on my Jellyfin. Bonus if there is VPN support.

Update: Thanks to everyone for the suggestions! Several projects to check out: youtube-dl, pinchflat, ytptube, metube, tubearchivist, yt-dlp-webui, ytzero, igloo, youtarr

Automated yt-dlp Docker image. Contribute to Jeeaaasus/youtube-dl development by creating an account on GitHub.GitHubGitHub - Jeeaaasus/youtube-dl: Automated yt-dlp Docker imageAutomated yt-dlp Docker image. Contribute to Jeeaaasus/youtube-dl development by creating an account on GitHub.
Edited ⁨⁨Aug⁩ ⁨10⁩, ⁨2026⁩, ⁨21:55⁩⁩enPage

Replying to @⁨GatesMcBalmer@lemmy.world⁩

Does YTZero fit?
github.com/Pelski/ytzero

It likely is overkill but may fit the bill with the ytdlp extension.

YT Zero - own rules, own algorithm, no login required. Every video from every channel you follow, and nothing else - Pelski/ytzeroGitHubGitHub - Pelski/ytzero: YT Zero - own rules, own algorithm, no login required. Every video from every channel you follow, and nothing elseYT Zero - own rules, own algorithm, no login required. Every video from every channel you follow, and nothing else - Pelski/ytzero

Replying to an earlier post

Pinchflat isn’t being maintained and has a few annoying bugs already.

Someone was working on a “community maintained” fork that had a bunch of fixes and new features and were also working on a hard fork with even more features but then last week they abruptly overwrote the history of the repo so there’s nothing but a script to migrate back to the main pinchflat. They also deleted all the packages which means docker pull now errors if you have their version. Thankfully someone had a fork of that one saved but the person who saved the fork doesn’t have the programming skills to continue development so we’re back to it not being maintained.

Your next YouTube media manager. Contribute to GhostMaintainers/Pinchflat development by creating an account on GitHub.GitHubGitHub - GhostMaintainers/Pinchflat: Your next YouTube media managerYour next YouTube media manager. Contribute to GhostMaintainers/Pinchflat development by creating an account on GitHub.

Replying to @⁨GatesMcBalmer@lemmy.world⁩

Tangential to your question… but I’m curious if any of these suggestions work with Jellyfin in a way that lets each user subscribe to YouTube channels?

My understanding is that almost all of these solutions will just drop YouTube videos in a directory and then they’ll be available to all users, rather than just the user who might be interested in that content?

Replying to @⁨LordGennai@lemmy.zip⁩

I can say that TubeArchivist is essentially single-user. Multiple accounts on a single TA instance will share the same underlying library with a ./library_dir/channel_id/video_id.ext directory structure. You could run an instance per user for individual TA libraries but, last I looked, the Jellyfin plugin doesn’t support multiple TA instances so it still wouldn’t be able to get the metadata from any instance(s) other than the one it’s configured to. It was a requested feature, on the plugin’s GitHub, but I’m not sure if it’s actively being implemented. The only workaround I can think of for now would be using a shared TA library and then manually tagging the videos in JF and using parental controls to hide them. Billy won’t see vids tagged #SusieYT, Susie has #BillyYT added to her blacklist, etc.

Replying to an earlier post

Being unaware of pinchflat, I kinda ended up making my own.

Started off with a little app, the entirety of which was a button that, when pressed, took the link om my clipboard and downloaded the video into my Jellyfin folder. Then I got tired of having to keep it all updated across several different computers I use, so I turned it into something that runs in a docker container on my home server, that I can access through anything in my tailnet. Works beautifully.

Replying to @⁨GatesMcBalmer@lemmy.world⁩

If you don’t mind the slop, github.com/screwys/Igloo works really good for me :') I will set up automatic container releases later, building yt-dlp/gallery-dl from HEAD

Opinionated self-hosted social inbox for YouTube, X, Instagram and TikTok written in Go, with a Web UI and a native Android app. - screwys/IglooGitHubGitHub - screwys/Igloo: Opinionated self-hosted social inbox for YouTube, X, Instagram and TikTok written in Go, with a Web UI and a native Android app.Opinionated self-hosted social inbox for YouTube, X, Instagram and TikTok written in Go, with a Web UI and a native Android app. - screwys/Igloo

Replying to @⁨GatesMcBalmer@lemmy.world⁩

If you want VPN support in docker containers, I was surprised his well gluetun works with any container.

Though ironically metube is the one thing I intentionally took out of the VPN, because too baby sites I cares about blocked it and I didn’t care about VPNs too in that use case.

VPN client in a thin Docker container for multiple VPN providers, written in Go, and using OpenVPN or Wireguard, DNS over TLS, with a few proxy servers built-in. - passteque/gluetunGitHubGitHub - passteque/gluetun: VPN client in a thin Docker container for multiple VPN providers, written in Go, and using OpenVPN or Wireguard, DNS over TLS, with a few proxy servers built-in.VPN client in a thin Docker container for multiple VPN providers, written in Go, and using OpenVPN or Wireguard, DNS over TLS, with a few proxy servers built-in. - passteque/gluetun

Replying to @⁨achim@mastodon.weindl.biz⁩

Although I wish the plugin for the browser didn’t keep getting worse. It used to be it would just work in the background, then it would appear and show it was doing something and apparently today you now have to click send to Metube to make it work at all. For some reason they are making it more and more intrusive and it feels like enshittification is probably coming because there aren’t a lot of reasons to force your app into peoples faces other than showing them ads.