MCPcopy Create free account
hub / github.com/0belous/Jellyfin-Universal-Plugin-Repo

github.com/0belous/Jellyfin-Universal-Plugin-Repo @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
61 symbols 134 edges 4 files 0 documented · 0% updated 4d ago★ 254

Browse by type

Functions 61 Types & classes 0
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Jellyfin Universal Plugin Repository

Jellyfin Universal Repository combines plugin manifests from multiple repositories and serves a manifest for Jellyfin clients.

Add the catalogue to Jellyfin

Add this URL as a plugin repository in the Jellyfin administrator dashboard:

https://obelo.us/upr

To add the repository:

  1. Sign in to the Jellyfin administrator dashboard.
  2. Open Dashboard > Plugins > Repositories.
  3. Remove an older Universal Plugin Repo URL, if you added one.
  4. Add https://obelo.us/upr as the repository URL.
  5. Save the repository and refresh the plugin catalogue.

The old GitHub-hosted manifest is deprecated. See deprecation.md for details.

Jellyfin compatibility

Look for the single double and triple check marks to see how many of the X.Y.Z digits of your jellyfin version a plugin says it supports. Generally a double checkmark is great. Triple checkmark means the developer tested their plugin on your exact jellyfin version. Some plugins may not have any checkmark and still work, consult the original documentation to find out if this is the case.

How the catalogue works

The service performs these steps:

  1. Reads manifest sources from sources.txt.
  2. Fetches the upstream JSON manifests.
  3. Filters sources and plugin versions for the requesting Jellyfin version.
  4. Normalizes plugin metadata and removes self-dependencies.
  5. Downloads and normalizes plugin images.
  6. Writes a manifest for the requesting Jellyfin user agent.
  7. Serves the manifest from /upr.

The server stores generated files in the plugins directory. It refreshes known user-agent manifests hourly and removes agents that have not been seen for about one month.

Run the service locally

Install dependencies

npm install

Start the server

npm start

By default, the server listens on 0.0.0.0:3000. Set these environment variables to change the listener:

HOST=127.0.0.1 PORT=3000 npm start

Generate a manifest

Run the update script from the repository root:

node update.js

This writes a manifest for the universal agent to plugins/manifest.universal.json. To generate a manifest for a specific Jellyfin server version, pass false and the version as arguments:

node update.js false 10.11.0.0

To remove existing images and download them again, pass true instead:

node update.js true 10.11.0.0

The update script uses the third field in each sources.txt entry to select compatible sources. Use *.* for all versions or a comma-separated list for specific versions.

Add a plugin source

Each source entry uses this format:

manifest URL | repository URL | Jellyfin version constraint

For example:

https://example.com/manifest.json | https://github.com/example/plugin | 10.11,12.0

When you add a source:

  1. Add the entry to sources.txt in alphabetical order.
  2. Run node update.js to check that the source can be fetched and processed.
  3. Review the generated files and open a pull request.

Security

This project distributes metadata and download information from third-party plugin repositories. Installing a plugin means trusting the plugin author and the code they publish.

Review a plugin's source repository before installing it. Adding a repository to this catalogue does not make the plugin safe or imply that the project has audited its code.

Repository layout

  • index.js: starts the HTTP server and serves manifests and images.
  • update.js: fetches sources and generates manifests.
  • fetch-worker.js: fetches upstream manifests in worker threads.
  • manifest-worker.js: transforms and serializes manifest data.
  • sources.txt: lists upstream manifest sources and version constraints.
  • plugins/: contains generated manifests and image assets.

Core symbols most depended-on inside this repo

browse all functions →

Shape

Function 61

Languages

TypeScript100%

Modules by API surface

update.js32 symbols
index.js25 symbols
manifest-worker.js4 symbols

For agents

$ claude mcp add Jellyfin-Universal-Plugin-Repo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page