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:

  1. I add a youtube video url/playlist url/channel url
  2. It downloads the videos, possibly with metadata, and stores them locally.
  3. It serves them through a nice web interface.
  4. (optional) it syncs the channel content and keeps it up to date.

Is there anything similar out there?

2 points

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

permalink
report
reply
3 points

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.

permalink
report
parent
reply
1 point

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.

https://github.com/meeb/tubesync

permalink
report
reply
1 point

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.

permalink
report
reply
1 point

Sure. I do this with yt-dlp + plex.

permalink
report
reply
1 point

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.

permalink
report
reply

Self-Hosted Main

!main@selfhosted.forum

Create post

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.

For Example

  • Service: Dropbox - Alternative: Nextcloud
  • Service: Google Reader - Alternative: Tiny Tiny RSS
  • Service: Blogger - Alternative: WordPress

We welcome posts that include suggestions for good self-hosted alternatives to popular online services, how they are better, or how they give back control of your data. Also include hints and tips for less technical readers.

Useful Lists

Community stats

  • 23

    Monthly active users

  • 1.8K

    Posts

  • 11K

    Comments

Community moderators