ProviderStuff automates tagging library items with streaming provider tags, keeps optional Box Set collections per provider up to date, and exposes a small REST API to query providers and their items. It’s built for Jellyfin 10.9+ and .NET 8.
- Provider tags like provider:Netflix applied automatically via a scheduled task
- Optional per-provider Box Set collections (e.g., “Netflix”) kept in sync
- Fast, batched updates to reduce library churn
- REST API endpoints to list providers and fetch their items
- Paginated item queries returning rich BaseItemDto via Jellyfin’s DtoService
Recommended (via Plugin Repository):
- In Jellyfin, go to Dashboard → Plugins → Repositories
- Add this URL as a new repository: https://raw.githubusercontent.com/kamilkosek/jellyfin-plugin-provider-stuff/main/manifest.json
- Go to Catalog, search for “ProviderStuff”, install it
- Restart Jellyfin
Optional: Development install
- Using VS Code tasks: run the “build-and-copy” task to publish and copy to your Jellyfin data directory
- Manual: publish the solution, then copy
Jellyfin.Plugin.ProviderStuff.dll(and publish contents) to<jellyfin-data>/plugins/Jellyfin.Plugin.ProviderStuff/
Requirements:
- Jellyfin Server 10.9+
- .NET SDK 8.0+ (only for local builds)
Open Jellyfin Dashboard → Plugins → ProviderStuff to configure.
Global settings:
- TMDB API Key (required)
- TMDB Country (default: DE)
Providers array (repeat per provider):
- Name: Display name (e.g., Netflix)
- ProviderIds: List of integer provider IDs from TMDB
- ProviderLogoUrl: Optional URL to a logo image
- CreateCollection: When true, a Box Set with the provider name is created and maintained
The scheduled task “ProviderStuff: Apply provider tags” runs daily at 03:00 by default. It:
- Resolves providers for items using TMDB
- Adds tags like provider: to matched Movies, Series, and Episodes
- Creates and updates Box Set collections when CreateCollection is enabled, using batched additions
All endpoints require normal Jellyfin authentication and are under the base route: /providerstuff
- List providers
- GET
/providerstuff/providers - Returns: array of providers with the following fields:
- name
- providerIds (int[])
- providerLogoUrl (string)
- createCollection (bool)
- collectionId (string, when CreateCollection has created/found one)
- List items for a provider (paginated)
- GET
/providerstuff/{providerName}/items - Query parameters:
- userId (Guid, optional): user for DTO shaping
- includeItemTypes (repeatable, optional): Movie, Series, Episode; defaults to all three
- limit (int, optional)
- startIndex (int, optional; default 0)
- Returns:
QueryResult<BaseItemDto>- items: BaseItemDto[]
- totalRecordCount: number
- startIndex: number
Example usage:
- Fetch the first 50 Netflix items:
/providerstuff/Netflix/items?limit=50&startIndex=0 - Only Movies for Prime Video:
/providerstuff/Prime%20Video/items?includeItemTypes=Movie
Notes:
- Items are filtered by the tag
provider:{providerName}applied by the scheduled task. - Use repeated
includeItemTypesparameters for multiple kinds (e.g.,...&includeItemTypes=Movie&includeItemTypes=Series).
- The scheduled task scans Movies, Series, and Episodes and looks up TMDB provider data per item.
- When configured providers match an item’s TMDB providers, the plugin adds a provider: tag.
- If CreateCollection is true, the plugin pre-creates a Box Set named after the provider and batches items into it for performance.
- The API uses Jellyfin’s
ILibraryManagerto query items by tag andIDtoServiceto returnBaseItemDtowith optional user context.
- Prerequisites: .NET SDK 8.0, Jellyfin 10.9+, VS Code (optional)
- Workspace tasks:
- build:
dotnet publishfor the solution - deploy-remote: runs
./deploy2.sh(custom to your environment) - build-and-copy: builds and deploys in sequence (uses workspace settings)
- build:
Tip: Configure your workspace settings (pluginName, jellyfinDir/webDir/dataDir if you adopt the example tasks) to streamline debugging.
- 1.1.0
- Reliable plugin configuration retrieval in scheduled task
- Optional per-provider Box Set collections
- Batched item additions for performance
- New REST endpoints:
/providerstuff/providersand/providerstuff/{providerName}/items - Paginated item results with
QueryResult<BaseItemDto> - DTOs via Jellyfin’s
DtoService
GPLv3 – see LICENSE.