This document introduces the Kaltura Application Programming Interface (API) and API architecture.
This document does not cover Kaltura API usage. To learn how to use the Kaltura API, refer to Kaltura API Usage Guidelines.
This document applies to Kaltura API version 3 and later.
Before You Begin
To access the Kaltura API, you require:
- A Kaltura publisher account - To obtain a Kaltura account, start a free trial, contact us or Download Kaltura CE.
- Obtain your Kaltura API publisher credentials via the KMC Integration Settings.
Understanding Kaltura API Architecture
Kaltura API Architecture Overview
Kaltura is an open source video platform.
For an overview of the architecture of the Kaltura platform, refer to The Kaltura Platform Architecture Overview.
Kaltura provides server APIs for every core feature.
Kaltura server APIs also are referred to as Kaltura Partner Services.
The Kaltura web services layer exposes Kaltura server APIs to web applications through a standard HTTP POST/GET URL encoded requests structure.
Client libraries implement the actual calls to the Kaltura server APIs.
Developers use the Kaltura API to incorporate Kaltura features in web applications and web sites.
The Kaltura API provides maximum flexibility by enabling developers to work with the lowest-level building blocks (atomic actions) for all Kaltura entities.
The architecture of Kaltura server API follows Representational State Transfer (REST) principles.
The Kaltura API architecture consists of several service actions for:
- Querying entities
- Setting entities
- Updating entities
- Listing entities
- Activating processes within the Kaltura platform
- Are grouped according to the entity type that they apply to
- Provide all actions relevant to the applicable entity
For more information on the structure of service actions, see Service Action Structure.
Current API Version
The current major version of the Kaltura API is API version 3 (api_v3).
Only API version 3 is updated continuously.
The Partner Services 2 API (referred to as PS2 and api_v2) is deprecated and is not being updated.
The Kaltura API is represented by a list of different services, each of which includes several actions. See Service Actions.
Services are grouped according to an applicable entity and include actions that are relevant to the entity.
A service name is the same as the entity name.
Example: For an entity named syndicationFeed, there is a service named syndicationFeed.
A service usually includes the following standard actions:
- CRUD actions:
A service also includes additional actions that are relevant to the specific entry. An additional action may support an internal requirement.
Example: The syndicationFeed service comprises standard and additional actions that are relevant to the syndicationFeed entity. Some additional actions are required for internal integration.
API Development Approach
Since Kaltura is an open source video platform, Kaltura development ensures that partners can use all features through the Kaltura API.
The Kaltura API enables access to Kaltura features by:
- Kaltura’s built-in tools, such as:
Applications that partners integrate with Kaltura features
New Feature Development
To ensure full access to Kaltura features, API development is integral to every new feature.
When Kaltura develops a new object, the developer creates a new service to enable interacting with the new entity. See Service Action Structure.
The new service includes standard actions, and any additional actions that the entity requires. Actions that Kaltura develops to support internal needs also are accessible by external applications. See Standard and Additional Service Actions.
To enable easy integration with Kaltura’s open source video platform, Kaltura provides several API client libraries written in various programming languages.
The client libraries implement the actual calls to Kaltura server APIs.
The client libraries handle:
- HTTP request creation
- Response processing
The client libraries provide specific classes that correspond to entities and data types used by Kaltura server APIs.
Kaltura API client libraries are available for commonly-used programming languages.
The Kaltura API design uses object-oriented methodology.
- Logical structure of the API
- Each service represents an object in the system.
- Each object has methods.
- An action (in a service) is basically a method of an object.
Inheritances between objects: Some Kaltura entities extend more basic entities.
In the API, there is a service to the basic object and another service for the extending object.
In compliance with object-oriented methodology, an extending object can be used with the base service.
- Kaltura client libraries (see Client Libraries and Kaltura API: Kaltura API Usage Guidelines: Technical Guide)
- Kaltura develops client libraries using an object-oriented methodology that reflects the API structure.