The Jellyfin universal plugin repository
256
stars
532
commits
JavaScript
primary language
Sep 8, 2026
updated
Jellyfin Universal Repository combines plugin manifests from multiple repositories and serves a single universal manifest.
Add this URL as a plugin repository in the Jellyfin administrator dashboard:
https://obelo.us/upr
To add the repository:
https://obelo.us/upr as the repository URL.The old GitHub-hosted manifest is deprecated. See deprecation.md for details.
The catalogue uses checkmarks to indicate how many digits of your Jellyfin server's version (X.Y.Z) match the version declared by the plugin author:
✓✓✓): The plugin author tested and verified the plugin against your exact Jellyfin version (X.Y.Z).✓✓): The plugin supports your major and minor version (X.Y). Plugins with this rating typically work without issues.✓): The plugin author declared support only for your major version (X).The service performs these steps:
sources.txt./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.
npm install
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
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.
Each source entry uses this format:
manifest URL | repository URL
For example:
https://example.com/manifest.json | https://github.com/example/plugin
When you add a source:
sources.txt in alphabetical order.node update.js to check that the source can be fetched and processed.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.
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.JavaScript
100.0%
The Jellyfin universal plugin repository
256
stars
532
commits
JavaScript
primary language
Sep 8, 2026
updated
Jellyfin Universal Repository combines plugin manifests from multiple repositories and serves a single universal manifest.
Add this URL as a plugin repository in the Jellyfin administrator dashboard:
https://obelo.us/upr
To add the repository:
https://obelo.us/upr as the repository URL.The old GitHub-hosted manifest is deprecated. See deprecation.md for details.
The catalogue uses checkmarks to indicate how many digits of your Jellyfin server's version (X.Y.Z) match the version declared by the plugin author:
✓✓✓): The plugin author tested and verified the plugin against your exact Jellyfin version (X.Y.Z).✓✓): The plugin supports your major and minor version (X.Y). Plugins with this rating typically work without issues.✓): The plugin author declared support only for your major version (X).The service performs these steps:
sources.txt./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.
npm install
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
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.
Each source entry uses this format:
manifest URL | repository URL
For example:
https://example.com/manifest.json | https://github.com/example/plugin
When you add a source:
sources.txt in alphabetical order.node update.js to check that the source can be fetched and processed.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.
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.JavaScript
100.0%