this post was submitted on 10 Aug 2026
109 points (99.1% liked)

Selfhosted

61307 readers
598 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

Detailed Rules Post

  1. Be civil.

  2. No spam.

  3. Posts are to be related to self-hosting.

  4. Don't duplicate the full text of your blog or readme if you're providing a link.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.

  8. AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

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

top 36 comments
sorted by: hot top controversial new old
[–] rossome@lemmy.ml 22 points 1 day ago (2 children)
[–] the_artic_one@piefed.social 3 points 23 hours ago (1 children)

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.

[–] mathesonian@ttrpg.network 4 points 22 hours ago

Interesting. I'm still running the original but I'll take a look at this fork. I've been looking for a new hobby project.

I'd like to second pinchflat. It's great. I have it set up to monitor certain channels but also have it set up to monitor a playlist. Anything I add to the playlist gets auto downloaded. I don't even have to log into it really it just works.

[–] achim@mastodon.weindl.biz 13 points 1 day ago
[–] gdog05@lemmy.world 3 points 21 hours ago

Don't forget to check out Youtarr. I think it hits all the targets. You can do channels, playlists or individual videos. It has an option for a proxy URL to use to download which I believe can be set up with a self-hosted VPN. And it formats and sends things directly to Jellyfin.

[–] ccunning@lemmy.world 11 points 1 day ago (1 children)
[–] ccunning@lemmy.world 1 points 1 day ago (2 children)

…ok - what’s wrong with MeTube?

[–] gedfromgont@piefed.ca 4 points 1 day ago (1 children)

Dunno, you're referring to your one downvote? I use Metube as well, works pretty well for me so far.

[–] ccunning@lemmy.world 3 points 1 day ago

The score was zero when I asked. I thought maybe there was something problematic with it…

[–] Racoonwithbenefits@lemmy.zip 1 points 1 day ago

Nothing

But someone already commented that

And provided a link for it

[–] gheesh@lemmy.world 2 points 20 hours ago (1 children)

Anybody knows a way to automate cookie passing to the manager? Youtube denies access if cookies are not copied from a valid browser with a youtube account :-(

[–] irmadlad@lemmy.world 1 points 16 hours ago

If you're using Firefox, then there are a plethora of cookie copiers. I used one, don't know which now, a while back. Seemed to function for my purposes.

[–] Tiritibambix@lemmy.ml 7 points 1 day ago
[–] bravesilvernest@lemmy.ml 7 points 1 day ago (1 children)
[–] Kirk@startrek.website 1 points 1 day ago (1 children)

tubearchivist is great but probably overkill for someone just looking to subscribe and watch with Plex/Jellyfin instead of the YouTube app.

[–] __hetz@sh.itjust.works 3 points 1 day ago* (last edited 23 hours ago) (1 children)

TA is probably perfect, really. You get the TA Jellyfin plugin , mount TA's library directory as read-only in Jellyfin, and add that mount as a "Shows" library with TA as the sole metadata provider. Channels become "Show" names and "Seasons" are the upload year. One-way or bi-directional watch progress between JF and TA. I don't use the feature but I think it supports some sort of organizing by YouTube playlist these days too, maybe as "Collections."

The only issue I've had is JF seems to do some built-in stuff when it comes to filling in metadata based on file names. Occasionally an "S0" or "E12", as examples, will erroneously put a video into "Specials" (Season 0) or give an "Episode 12" where there shouldn't be if those or similar substrings are in the Video ID (which is also the filename). My hackish solution, for a while, was a script that ran a sqlite command against the Jellyfin DB to find any videos in the YouTube library with not null episode numbers and set them to null, and also set unexpected seasons to the year of the video's upload.

I had it automated to run right after my scheduled TA downloads completed but it felt a bit wrong doing that on live DB. So now I just periodically run the query, sans the updating, then fix the metadata from within JF's UI if there are any query results. I could see that being a little irksome, and beyond what non-hobbyists could figure out, but it's honestly a small price for me when it means I have all my archived YouTube content organized, with descriptions and thumbnails, with no other real work on my part.

[–] Kirk@startrek.website 2 points 23 hours ago (1 children)

When I tried it I got the feeling it's more for people looking to backup/archive entire YouTube channels than those (such as myself) basically just having what is functionally an RSS feed of most recent videos released this week (for example).

But like I said, it's absolutely great at what it does I just found it waaaay too complicated than the simple "use jellyfin as a YouTube app replacement" I was looking for.

[–] __hetz@sh.itjust.works 1 points 22 hours ago

Gotcha, that sheds more light. For your use case you'd need to script up some solution that parses the URLs from the feed(s) and sends them to TA's API. I don't think it'd be terribly difficult but, if I wasn't concerned with actually saving the content, I'd turn to something like SmartTube/FreeTube/etc for simplicity and to just stream it.

For OP's use case, throwing specific URLs at something which will download them and then have them pop up in Jellyfin, I can't think of anything easier (at least after the initial setup) than TA. Unless any of the other suggestions here can also handle the metadata for JF, there's gonna be a lot of manual work involved to have videos show up meaningfully and organized in JF.

[–] LordGennai@lemmy.zip 3 points 1 day ago (1 children)

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?

[–] __hetz@sh.itjust.works 1 points 22 hours ago

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.

[–] nyakojiru@sh.itjust.works 5 points 1 day ago

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.

[–] odious@lemmy.world 4 points 1 day ago

There's https://github.com/kieraneglin/pinchflat

mainly for YouTube downloads though.

[–] djdarren@piefed.social 2 points 1 day ago

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.

[–] iamthetot@piefed.ca 2 points 1 day ago (1 children)
[–] Wolf314159@startrek.website 4 points 1 day ago (1 children)

Could they not think of an original name? Calling it YouTube-dl is just unnecessarily lazy and confusing. This appears to be mostly a docker image of yt-dlp, which is itself a fork of youtube-dl.

[–] iamthetot@piefed.ca 1 points 23 hours ago

I mean, I guess I'm not informed enough to know. I just know that this one has a GUI, and certain automation functions. I got it all set up and now I don't even have to think about it, it just downloads my desired YT vids, which then get scanned by Jellyfin and show up there, which is what OP wanted. 🤷

[–] frongt@lemmy.zip 2 points 1 day ago (1 children)

Can't get any simpler than the terminal, can you? I just paste links into the terminal after a yt-dlp command.

[–] lIlIlIlIlIlIl@lemmy.world 12 points 1 day ago (1 children)

Sure, but OP specifically asked for a “manager.” Plus typing it out means looking up flags and switches each time

[–] BlueOysterCultist@lemmy.zip 1 points 16 hours ago

I went one step further and used python to handle the flags and what not

Just gotta add each url / playlist to a text file, then run the python script

But seeing all these GitHub’s with much more elegant solutions is pretty cool

[–] AMillionMonkeys@lemmy.world 1 points 23 hours ago

I'm enjoying Pinchflat. I looked at TubeArchivist, but it's a little heavyweight for me. Pinchflat is just one container.
It is a little broken - the refresh button and the page buttons don't do anything - but I'm accessing the video through Jellyfin so it's not a problem.

[–] bluGill@fedia.io 1 points 23 hours ago

Not what you are asking for, but maybe what you want: https://invidious.io/ is a youtube front end with some features that might or might not make it what you want.

[–] rubertII@lemmy.world 1 points 23 hours ago

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

[–] slazer2au@lemmy.world 0 points 1 day ago (1 children)

Does YTZero fit?
https://github.com/Pelski/ytzero

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

[–] GatesMcBalmer@lemmy.world 3 points 1 day ago

Not exactly what I had in mind but I'll check it out, thanks!