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
github.com/kieraneglin/pinchflat
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.
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 pullnow 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.MeTube
…ok - what’s wrong with MeTube?
Dunno, you’re referring to your one downvote? I use Metube as well, works pretty well for me so far.
The score was zero when I asked. I thought maybe there was something problematic with it…
Nothing
But someone already commented that
And provided a link for it
Does tubearchivist fit this bill?
https://github.com/ArabCoders/ytptube
community-scripts.org/scripts/yt-dlp-webui
There’s github.com/kieraneglin/pinchflat
mainly for YouTube downloads though.
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?
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.extdirectory 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.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.
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 :-(
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.
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.
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.
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.
I’ve been using YouTube-DL
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
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.
Can’t get any simpler than the terminal, can you? I just paste links into the terminal after a yt-dlp command.
Sure, but OP specifically asked for a “manager.” Plus typing it out means looking up flags and switches each time
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
Does YTZero fit?
github.com/Pelski/ytzero
It likely is overkill but may fit the bill with the ytdlp extension.
Not exactly what I had in mind but I’ll check it out, thanks!