Provider
Overview#
Learn the high-level architecture of a Flixclusive provider.
What makes a provider?#
At its core, a provider in Flixclusive consists of:
1) Provider entry class#
The entry class is your provider’s main class. It must:
- Extend
ProviderPlugin - Be annotated with
@FlixclusiveProvider
Provider still exists as a deprecated typealias to ProviderPlugin. For new code and docs,
prefer ProviderPlugin.
ProviderPlugin is responsible for exposing capability APIs via getters such as:
getCatalogApi(context)getSearchApi(context)getMetadataApi(context)getMediaLinkApi(context)getCrossMatchApi(context)getTrackerApi(context)
2) Provider metadata (generated by Gradle)#
Provider identity + presentation data is represented by:
ProviderMetadata(formerlyProviderData)ProviderManifest(runtime manifest)
These are generated from your flxProvider { ... } configuration in Gradle.
3) Capability APIs (recommended)#
Instead of a single monolithic API class, modern providers implement focused capability contracts:
CatalogProviderApiSearchProviderApiMetadataProviderApiMediaLinkProviderApiCrossMatchProviderApiTrackerProviderApi
ProviderApi
still exists for backward compatibility, but it is deprecated.
These two components work together seamlessly to create a complete provider experience. While the API handles the how of content delivery, the ProviderData manages the what and who of your provider.
How they work together#
Think of it this way:
ProviderPluginis the entry point the app loads.- Capability APIs are the “engines” that do the work (search, catalogs, metadata, links, etc.).
ProviderMetadata/ProviderManifestdescribe the provider (name, id, version, repository, etc.).
