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 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 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 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.
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.