I am keeping my children away from Youtube, but there are plenty of educational videos that I would like to make available for them to view at their leisure. I would like something that works more or less like this:
- I add a youtube video url/playlist url/channel url
- It downloads the videos, possibly with metadata, and stores them locally.
- It serves them through a nice web interface.
- (optional) it syncs the channel content and keeps it up to date.
Is there anything similar out there?
I use ytdl-sub, based on yt-dlp, it does what you need : download from a youtube channel/playlist and add it to jellyfin/plex/kodi as TV show.
Tube Archivist. It’s perfect for that. Your kids don’t even need to know Youtube exists. I just installed it and imported years of downloaded YT videos. The search engine finds anything in milliseconds!
I don’t know how much configurable invidious is in terms of allow-listing content, but unless you want to locally cache the content you want them to see - which seems a lot of work, I guess that’s the way to go
I don’t know if you want a pretty UI for adding the videos/playlists/channels, but
yt-dlp
can do all that. You’d probably have to set up some kind of cron job for it. Then you can serve it via any of the available video players (I’m pretty sure Jellyfin has a youtube metadata addon).Yeah this would do the trick. I have a simple yt-dlp script setup that is set as a cron job. Everyday at 4:30 AM it checks a list of YouTube channels I have and downloads any new videos that channel has to a corresponding media directory that jellyfin has access to, keeping that channels content up to date.
This lets me easily set and forget my script, so now whenever I want to watch that channels video I can just open jellyfin, which stores all my media, not just YouTube, and view it from there.
It does eat up storage though on big channels, but if you got the space it’s not a big issue.
I use yt-dlp & jellyfin for this exact purpose. Navigate to the channel you want, then click on the playlists link, this way it breaks the channel into consumable chunks. I use the naming options as channel/playlist/video title. I have yet to solve for pictures to automatically be pulled at the channel level. I also took some of my plex media libraries and split them out. Now in jellyfin I have their yt channels, TV shows, and movies curated on their tablets. I also have the directories shared with plex as every other device I have was already setup with plex and can see the same media.
https://github.com/bennyclams/untube requires infrastructure but allows you to download youtube and non youtube videos
Tubesync is pretty good
Podsync (https://github.com/mxpv/podsync).
Although it designed to support podcast apps it configurable to download videos too.
someone posted this a bit earlier today i think.
I’ve been using tubesync and jellyfin for this for awhile and it works okay. The tubesync software is not the best, and the docker container made by the dev has way too much going on in it but it works.
I have tubesync set up to watch and auto download from certain channels and then I watch via jellyfin. There’s even a jellyfin YouTube metadata plugin if you want to set that up too.
There’s always Peertube’s “channel sync” which does pretty much what you describes.
https://docs.joinpeertube.org/use/channel-sync
Only thing is that it’s public sharing so you’d have to find ways of locking it down if you want a private server.
Sure. I do this with yt-dlp + plex.