Skip to content

tubearchivist/tubearchivist-jf-plugin

Repository files navigation

Jellyfin TubeArchivist Plugin

Plugin Banner

Important

Jellyfin release cycle has changed in the past few months and now it is shorter than before. The plugin supports only the latest Jellyfin release, in order to continue using this plugin with all the latest features you will need to upgrade your Jellyfin installation. The same rule applies to TubeArchivist: the plugin is only guaranteed to work with the latest TubeArchivist version.

Warning

Jellyfin 10.10 introduced a bug that prevents the plugin to correctly create Season folders by year. The bug has been finally solved on the Jellyfin codebase, but, until the next minor release, a manual build of the Jellyfin branch release-10.10.z is required in order to get the fix running.
This is not a plugin bug, any issue opened about this bug will be immediately closed!

About

This plugin adds the metadata provider for TubeArchivist, offering improved flexibility and native integration with Jellyfin compared to previous solutions.

How it works

The media organization is a Shows collection, where each channel is a show and its videos are the episodes, organized in seasons by year.
The plugin interacts with TubeArchivist APIs to fetch videos and channels metadata.

Features

  • Add metadata for videos (episodes)
  • Add metadata for channels (shows)
  • Add images for videos (episodes), ie. thumb images
  • Add images for channels (shows), ie. thumb, tvart and banner images
  • Organize videos (episodes) by year (seasons)
  • Bidirectional playback progress synchronization
  • Bidirectional playlists synchronization

Warning

Enabling synchronization in both directions you can run in race conditions and unexpected results.

Installation

From official repository (recommended)

  1. Go to Dashboard -> Plugins and click on the Manage Repositories button
  2. Add a new repository with the following details:
  • Repository name: TubeArchivistMetadata
  • Repository URL: https://github.com/tubearchivist/tubearchivist-jf-plugin/raw/master/manifest.json Add repository
  1. Go back to the catalog
  2. Find TubeArchivistMetadata and install it Find plugin
  3. Restart Jellyfin to apply the changes

From ZIP in GitHub releases

  1. Download the latest available release (tubearchivistmetadata_*.zip) from the repository releases section
  2. Extract the contained files in the plugins/TubeArchivistMetadata folder (you might need to create the folders) of your Jellyfin installation
  3. Restart Jellyfin to apply the changes

Configuration

This plugin requires that you have already an instance of TubeArchivist up and running.

Once installed, you have to configure the following parameters in the plugin configuration:
  • Collection display name
  • TubeArchivist instance address
  • TubeArchivist API key
  • Overviews length (channels and videos descriptions)
  • Playback synchronization settings discussed in the Playback synchronization paragraph

Plugin configuration

Use the plugin

Using the plugin is very simple. Let's start from the beginning:

NOTE: If you are using Docker containers, it is important to mount the TubeArchivist media path into Jellyfin container as read-only, in order to avoid possible operations on the media files that will break TubeArchivist.

  1. Go to Dashboard -> Libraries and add a media library

  2. In the form select Shows as Content type, set a display name for the library and set the TubeArchivist media folder in the Folders section Add library

  3. Scrolling down, uncheck all metadata and image providers except TubeArchivist. (You won't find TubeArchivist in seasons providers, so just disable everything there)

  4. Save and come back to Home, you will see the newly added library. Jellyfin will have executed the metadata fetching for you after the collection creation and then you will see the metadata and the images of channels and videos

Synchronization

This plugin has different bidirectional sycnhronization features, that can be configured in the specific section in the plugin configuration page: Synchronization settings

Playback synchronization

Starting from v1.3.1 this plugin offers playback progress and watched status bidirectional synchronization, but you can choose to enable only a one way synchronization (Jellyfin -> TubeArchivist or TubeArchivist -> Jellyfin) too.

Jellyfin -> TubeArchivist playback synchronization

This kind of synchronization is done listening for progress and watched status changes while playing the videos for the specified users.
Furthermore, there is a task that runs at Jellyfin startup to synchronize the whole library.

In the text field you can specify one Jellyfin username to synchronize data of to TubeArchivist.

TubeArchivist -> Jellyfin playback synchronization

This kind of synchronization is done using a Jellyfin scheduled task that regularly synchronizes data from TubeArchivist API to Jellyfin.

In the text field you can specify one or more Jellyfin usernames to update data for.

Playlists synchronization

Starting from v.1.4.1 this plugin offers playlists bidirectional synchronization, but you can choose to enable only a one way synchronization (Jellyfin -> TubeArchivist or TubeArchivist -> Jellyfin) too.

Jellyfin -> TubeArchivist playlists synchronization

There is a task that retrieves playlists and recreates them on TubeArchivist with the videos in the same order. Please note that playlists can also have videos not beloging from TubeArchivist, they will be simply ignored, so you won't find them on TubeArchivist playlist.

It is present also a setting to automatically delete playlists from TubeArchivist when they are no more available on Jellyfin.

TubeArchivist -> Jellyfin playlists synchronization

There is a task that retrieves playlists from TubeArchivist and recreates them on Jellyfin with videos in the same order.

It is present, also in this case, a setting to automatically delete playlists from Jellyfin when they are no more present on TubeArchivist, but beware that the will be deleted also if they contain videos not beloning to TubeArchivist.

Caution

Pay attention when you enable the automatic deletion options, be sure that is your wanted behavior, especially when playlists contain also other videos not belonging from TubeArchivist, playlists removed won't be available again, there's no undo!

Tasks intervals

Since many of the feature are implemented as background tasks periodically executing, in the `Tasks intervals` section you will find the settings to adjust this period in seconds.
Keep in mind that Jellyfin lowest accepted period is of 1 minute (60 seconds) and the lower is the interval the higher will be the resources consuption on your system.

Here are the configurable intervals:

Tasks intervals settings

Episode numbering

There are different ways to number the episodes as they are configured in Jellyfin.
This changes the number after E in S--E-- (for example S2024E100 for episode number 100 of season 2024).

Episode numbering scheme options

The options correlate with:

  • Default - leave the numbering to what Jellyfin does by default (this is what the plugin has always done)
  • YYYYMMDD - numbers the episode by the year, month, day (e.g. 20250804 for a video published on the 4th of August 2025)

Build

  1. To build this plugin you will need .Net 9.x.

  2. Build plugin with following command

$ dotnet publish Jellyfin.Plugin.TubeArchivistMetadata --configuration Release --output bin
  1. Place the dll-file in the plugins/tubearchivist-jf-plugin folder (you might need to create the folders) of your Jellyfin installation

License

This plugins code and packages are distributed under the GPLv3 License. See LICENSE for more information.

About

Metadata for your TubeArchivist library on Jellyfin.

Resources

License

Stars

Watchers

Forks

Packages

No packages published