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:

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:

These are generated from your flxProvider { ... } configuration in Gradle.

Instead of a single monolithic API class, modern providers implement focused capability contracts:

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:

  • ProviderPlugin is the entry point the app loads.
  • Capability APIs are the “engines” that do the work (search, catalogs, metadata, links, etc.).
  • ProviderMetadata / ProviderManifest describe the provider (name, id, version, repository, etc.).