Jellyfin media server with YouTube sync

Written Friday, June 27th, 2025

Topics: Jellyfin, Media server, YouTube, ytdl-sub, beets

Contents

Introduction

I've recently started moving away from Google as much as I can, mainly for privacy reasons. This has prompted me to look into running many of the Google services I use myself. As of right now, I host my own mail server for email, and a Nextcloud instance for my limited "cloud" storage needs.

The biggest thing I'm still reliant on Google for right now is my music. I listen to music a lot, and I pay for and stream from YouTube Music. I curate my collection mostly by liking songs I come across that I like, and they all end up in a big playlist that I listen to casually. I have a few playlists that I've made for more specific purposes, but the vast majority of my collection is just one big playlist.

And so, my newest self-hosting project has been a media server that I can use to stream my music while automatically syncing my music library from YouTube Music. This article will outline what software I used to set this up up and why, and some challenges I faced. I'll try to give as much information as I can so that you can follow along if you'd like. I will say though, this is by no means an optimal setup(it's actually rather bodgy), and tweaking/improving it will be continuous process. If I make any significant improvements, I'll be sure to update this article, or maybe even post a new one.

Personal requirements

Going into this project, I had a number of personal requirements for what it needed to do.

First and foremost, I wanted things to be as automated and hassle-free(post-setup at least) as possible. I want to be able to listen to my music wherever and whenever, and I want it to be a decent experience. Ideally, it should at least match quality of service I'm currenlty getting from YouTube Music(which isn't as high as it probably should be), and I shouldn't have to constantly be manually syncing things.

Second, I wanted my music to have proper metadata. Ideally it should get this metadata from the source(in this case YouTube), but a separate program that goes through and properly tags songs would also be acceptable(I ended up with a mix of both).

Finally, I wanted to be able to still use YouTube to add songs to my library. You might think "doesn't that kind of defeat the purpose of moving away from YouTube in the first place?" Kinda yeah, but I don't see myself dropping it entirely right away. Besides, if this whole project was just a one-time import, it would be far less interesting.

I actually first attempted this project a few months back, though I didn't manage to meet these requirements before getting distracted and moving on to other things. The first and second requirements caused me the most trouble(and they did in this attempt as well), but I did manage to mostly solve them this time around.