Jellyfin, YouTube and Twitch

By chimo on (updated on )

I recently started using Jellyfin a bit more and Kodi a bit less. Not because Kodi isn’t great, but mainly because I like trying different things. The fact that my Tv has a native/official Jellyfin client is also a pretty good motivator.

Coincidentally (or more likely due to Google snooping on my search history), I came across an article on XDA talking about watching YouTube videos via Jellyfin (with the intermediary step of downloading them locally).

The way I currently interface with YouTube (as little as possible) is as follows:

  1. Subscribe to the channel’s RSS feed to get notified of new videos.
  2. Once a new video shows up in my RSS reader, copy the video URL from the feed.
  3. Run `mpv [video-url]` to watch.

It works well, I don’t need to be logged-in to third-party services, and I don’t have to visit the YouTube website (and therefore turn on JavaScript). Although whenever I need to browse YouTube I use invidious.

I don’t think Twitch has RSS feeds however, so I don’t have a similar process for Twitch channels. I just use the website to go check once in a while whether new videos have been added and watch them via the same `mpv` method.

The XDA article linked above mentioned a few different tools to download YouTube videos automatically. The one that grabbed my attention is “ytdl-sub”. I don’t need any kind of UI if I’m going to end up watching using Jellyfin. Configuration is file-driven, no database needed, works with Twitch, Alpine has a package for it.

So this gives me a nicer process for Twitch, and a consistent process for both YouTube and Twitch:

  1. Videos from both sources end up in a Jellyfin library.
  2. Watch video via Jellyfin.

The “watching” step can be done with any Jellyfin client. Since I like to stay in the terminal as much as possible, I opted for jftui.

The last thing I want to do is build a custom notification system using the Jellyfin API to add a block in my shuibar whenever I have unwatched videos coming from YouTube/Twitch.