Flowplayer OVP API v3 (3.0.0)

Download OpenAPI specification:Download

Introduction

This API allows integration of your backend (like content management or publishing systems) with the Flowplayer platform for managing video and livestream assets. It can be used to fetch, list, create, update and delete Livestreams, Live Sources, Playlists, Categories and Videos.

Authentication

All API requests need to be authenticated by providing the API keys as an header, x-flowplayer-api-key.

Rate limits

Every API request has a rate limit, applied per the organization the x-flowplayer-api-key is part of. This means that for the same organization there is a limited number of requests per second that can be done. By default, every organization can perform 1 request/second of every API. Enterprise organizations can do up to 3 requests/second of every API.

If your organization triggers this rate limit, you'll receive the response status code 429 - Too Many Requests with a response body { "message" : "Too Many Requests"}.

Requesting the API

Base url for the API is:

https://api.flowplayer.com/platform/v3/

Endpoint structure

Each asset type has its own path and endpoint in the API with the following structure:

Asset type Path
Livestreams /livestreams
Live Sources /livesources
Playlists /playlists
Category /categories
Video /videos

Content type

This API only supports JSON-format output.

Sample request

A sample request for listing livestreams using the API.

 curl https://api.flowplayer.com/platform/v3/livestreams \
 -H "x-flowplayer-api-key: {my-api-key}" \
 -H "Content-Type: application/json"

Category

Categories can be used to categorize videos and livestreams within a workspace and are useful for creating automatic playlists and recommendations.

Categories are organized as a hierarchical tree structure. A video/livestream belongs to one single category.

List Category

Endpoint for listing a Category

Authorizations:
apiKey
query Parameters
page
integer <int32>
Default: 0

Page number

page_size
integer <int32>
Default: 20

Page size

q
string

Searches text fields case insensitive and partial (don't require full matches).

For Categories, name and description are the only searchable fields.

Limit to a specific field with a colon (:).

If you have multiple search terms you can use pipe (|) to separate the search terms.

Examples:

Query Description
q=foo Searches name & description field for foo.
q=foo:description Searches description field for foo.
q=foo|bar Searches name for foo and bar. A Category must match both to be included.
sort_by
string
Default: "name"
Value: "name"
sort_order
any
Default: "DESC"
Enum: "DESC" "ASC"
Example: sort_order=ASC

The sort order of the response

only_top_level
boolean
Default: false

Only Categories without parent Categories will be returned if set to true.

parent_id
string

Limit search to Categories with a specific parent Category. When specified, only child Categories with the specified parent will be returned.

Responses

Response samples

Content type
application/json
{
  • "total_count": 20,
  • "total_count_in_search": 20,
  • "page": 0,
  • "page_size": 20,
  • "total_pages": 20,
  • "assets": [
    ]
}

Create Category

Endpoint for creating a Category

Authorizations:
apiKey
Request Body schema: application/json
name
string

Name of the Category

description
string

This is a Category description

parent_id
string

Identifier to the parent Category if one exists. If the Category is on top level and no parent exists, the value is null.

When updating a Category the parent can be removed by setting parent_id to an empty string.

object (WorkspaceSimple)

Site/Workspace-object that is the owner of the Playlist

Responses

Request samples

Content type
application/json
{
  • "name": "My first Category",
  • "description": "This is a Category description",
  • "parent_id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbb",
  • "workspace": {
    }
}

Response samples

Content type
application/json
{
  • "name": "My first Category",
  • "description": "This is a Category description",
  • "parent_id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbb",
  • "workspace": {
    },
  • "id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbbd"
}

Get Category

Endpoint for fetching a Category

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Category

Responses

Response samples

Content type
application/json
{
  • "name": "My first Category",
  • "description": "This is a Category description",
  • "parent_id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbb",
  • "workspace": {
    },
  • "id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbbd"
}

Update Category

Endpoint for updating a Category

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Category

Request Body schema: application/json
name
string

Name of the Category

description
string

This is a Category description

parent_id
string

Identifier to the parent Category if one exists. If the Category is on top level and no parent exists, the value is null.

When updating a Category the parent can be removed by setting parent_id to an empty string.

object (WorkspaceSimple)

Site/Workspace-object that is the owner of the Playlist

Responses

Request samples

Content type
application/json
{
  • "name": "My first Category",
  • "description": "This is a Category description",
  • "parent_id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbb",
  • "workspace": {
    }
}

Response samples

Content type
application/json
{
  • "name": "My first Category",
  • "description": "This is a Category description",
  • "parent_id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbb",
  • "workspace": {
    },
  • "id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbbd"
}

Delete Category

Endpoint for deleting a Category

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Category

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Live Source

Live sources greatly simplifies livestreaming for those doing a lot of livestreaming and is a unique feature to Flowplayer.

What is live sources

A Live source is a fixed stream name which may be re-used for multiple broadcasts.

Why live sources

We invented the concept of live sources to simplify the process and reduce the errors in livestreaming setup. We do this by allowing you to re-use the stream key several times on different livestreams. This reduces the setup time and also removes possible errors in the configuration since once the configuration is completed it can be re-used.

What type to use

Best option is to always create a STREAM-type live source and benefit from our optimized encoding and delivery infrastructure. However, sometimes you may need a different approach for example if you get to use a stream from a different content provider. In this case creating a REMOTE-type live source is a great idea to ensure that you get all analytics and can fully benefit from that even though the stream itself comes from a different provider.

List Live Source

Endpoint for listing a Live Source

Authorizations:
apiKey
query Parameters
page
integer <int32>
Default: 0

Page number

page_size
integer <int32>
Default: 20

Page size

q
string

Searches text fields case insensitive and partial (does not require full matches).

For Live Sources name is the only searchable field.

Multiple search terms can be seprated with the pipe (|) symbol.

Examples:

Query Description
q=foo Searches name field for foo.
q=foo|bar Searches name for foo and bar. A Live source must match both to be included.
sort_by
string
Default: "name"
Value: "name"
sort_order
any
Default: "DESC"
Enum: "DESC" "ASC"
Example: sort_order=ASC

The sort order of the response

type
string
Enum: "REMOTE" "STREAM"

Returns only Live sources of the specified type.

include_shared
boolean
Default: false

If true the listing will contain Live sources shared from other Workspaces with this Workspace. If set to false only Live sources uniquely owned by this Workspace are returned.

Responses

Response samples

Content type
application/json
{
  • "total_count": 20,
  • "total_count_in_search": 20,
  • "page": 0,
  • "page_size": 20,
  • "total_pages": 20,
  • "assets": [
    ]
}

Create Live Source

Endpoint for creating a Live Source

Authorizations:
apiKey
Request Body schema: application/json
name
string
description
string

Live source Description

type
string
Default: "STREAM"
Enum: "STREAM" "REMOTE" "SHARED"

Defines whether this is a REMOTE, STREAM or SHARED Live Source. STREAM-type is a regular Live source connecting to our livestreaming service, while REMOTE is passed directly to the player without using the Flowplayer livestreaming environment. For REMOTE sources a remote_hls_url that will be displayed in the player must be specified as well.

remote_hls_url
string

HLS livestream url for this Live source if the type is set to REMOTE. Only possible, and mandatory, to set this for REMOTE Live sources.

Array of objects (WorkspaceSimple)

List of Workspaces with access to this Live source, including the Workspace which is owner of this Live source. It's not required to specify the owning Workspace here when creating/updating Live sources.

available_for_organization
boolean

When set to true all Workspaces on the Organization will have access to the Live Source. This property overrules any list of workspaces set to the Live Source.

object (WorkspaceSimple)

Site/Workspace-object that is the owner of the Playlist

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "Description of my first Live source",
  • "type": "REMOTE",
  • "workspaces": [
    ],
  • "available_for_organization": true,
  • "owner": {
    }
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "description": "Description of my first Live source",
  • "type": "REMOTE",
  • "workspaces": [
    ],
  • "available_for_organization": true,
  • "owner": {
    },
  • "id": "string"
}

Get Live Source

Endpoint for fetching a Live Source

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Live Source

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "description": "Description of my first Live source",
  • "type": "REMOTE",
  • "workspaces": [
    ],
  • "available_for_organization": true,
  • "owner": {
    },
  • "id": "string"
}

Update Live Source

Endpoint for updating a Live Source

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Live Source

Request Body schema: application/json
name
string
description
string

Live source Description

type
string
Default: "STREAM"
Enum: "STREAM" "REMOTE" "SHARED"

Defines whether this is a REMOTE, STREAM or SHARED Live Source. STREAM-type is a regular Live source connecting to our livestreaming service, while REMOTE is passed directly to the player without using the Flowplayer livestreaming environment. For REMOTE sources a remote_hls_url that will be displayed in the player must be specified as well.

remote_hls_url
string

HLS livestream url for this Live source if the type is set to REMOTE. Only possible, and mandatory, to set this for REMOTE Live sources.

Array of objects (WorkspaceSimple)

List of Workspaces with access to this Live source, including the Workspace which is owner of this Live source. It's not required to specify the owning Workspace here when creating/updating Live sources.

available_for_organization
boolean

When set to true all Workspaces on the Organization will have access to the Live Source. This property overrules any list of workspaces set to the Live Source.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "Description of my first Live source",
  • "type": "REMOTE",
  • "workspaces": [
    ],
  • "available_for_organization": true
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "description": "Description of my first Live source",
  • "type": "REMOTE",
  • "workspaces": [
    ],
  • "available_for_organization": true,
  • "owner": {
    },
  • "id": "string"
}

Delete Live Source

Endpoint for deleting a Live Source

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Live Source

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Livestream

Go live now, schedule for later or start an 24x7 broadcast. The API supports creating, editing and deleting all supported types of livestreams, running from the Flowplayer platform as well as remote sources.

Scheduling type

When working with livestreams you need to define the type of livestream you want to use. We support three different types:

Type Description
scheduled Should be used if the livestream should start in the future or right away and have a defined end time. The typical use case would be an planned event, for example a soccer game.
linear Should be used when creating a 24x7 linear channel. Linear broadcasts come with some limitations, for example it's not possible to record them.
simulive Simulive can be used to simulate a livestream by defining a playlist of existing videos. The videos will be streamed as a livestream in the order specified in the playlist.

The different types are treated differently by our platform and after creation it's not possible to change type, so it's important that the correct type is selected.

Remote or not

We always recommend to create livestreams using our optimized encoding and delivery infrastructure. However, sometimes you may need a different approach for example if you get to use a stream from a different content provider. In this case creating a REMOTE livestream is the correct approach in order to ensure that you will get fully benefit from our features like analytics, even though the stream itself comes from a different provider.

You'll need to set the remote: true parameter and specify a stream.viewing_url to configure a REMOTE livestream correctly.

List Livestream

Endpoint for listing a Livestream

Authorizations:
apiKey
query Parameters
page
integer <int32>
Default: 0

Page number

page_size
integer <int32>
Default: 20

Page size

q
string
Example: q=foo:name,custom_fields

Search multiple text fields in a search that is case insensitive and does not require full matches.

It searches name, description, tags and custom_fields, wherecustom_fields searches all your custom fields for matching terms. You can search specific fields by specifying them after a colon (:); if you have multiple search terms you can use pipe (|) to separate the search terms.

Some examples:

Query Description
q=foo Searches all fields for foo.
q=foo:name,description Searches name and description fields for foo.
q=foo:name|bar:tags Searches name for foo and tags for bar. An asset must match both to be included.
categories
string

Returns assets that have one of the specified Categories. Input should be a comma separated string with Category ids. You can specify up to four Categories in a single query.

sort_by
string
Default: "name"
Enum: "name" "created_at" "start_time" "stop_time"
sort_order
any
Default: "DESC"
Enum: "DESC" "ASC"
Example: sort_order=ASC

The sort order of the response

created_at
string
Example: created_at=2021-01-01,2021-02-01

Filter the response based on an assets timespan. The filter can be specified in following formats:

Spec Description
YYYY-MM-DD'T'HH:mm:ss Returns all assets with created_at after the specified date
YYYY-MM-DD,YYYY-MM-DD Returns all assets with created_at within the timespan
XX:hours Returns all assets with created_at in the last XX hours
XX:days Returns all assets with created_at in the last XX days
XX:weeks Returns all assets with created_at in the last XX weeks
XX:months Returns all assets with created_at in the last XX months
live_source
string
Example: live_source=live_source_id

Returns all Livestreams that are connected to the specified Live source

updated_at
string
Example: updated_at=2021-01-01,2021-02-01

Filter the response based on an assets timespan. The filter can be specified in following formats:

Spec Description
YYYY-MM-DD'T'HH:mm:ss Returns all assets with updated_at after the specified date
YYYY-MM-DD,YYYY-MM-DD Returns all assets with updated_at within the timespan
XX:hours Returns all assets with updated_at in the last XX hours
XX:days Returns all assets with updated_at in the last XX days
XX:weeks Returns all assets with updated_at in the last XX weeks
XX:months Returns all assets with updated_at in the last XX months
start_time
string
Example: start_time=2021-01-01,2021-02-01

Filter the response based on an assets timespan. The filter can be specified in following formats:

Spec Description
YYYY-MM-DD'T'HH:mm:ss Returns all assets with start_time after the specified date
YYYY-MM-DD,YYYY-MM-DD Returns all assets with start_time within the timespan
XX:hours Returns all assets with start_time in the last XX hours
XX:days Returns all assets with start_time in the last XX days
XX:weeks Returns all assets with start_time in the last XX weeks
XX:months Returns all assets with start_time in the last XX months
stop_time
string
Example: stop_time=2021-01-01,2021-02-01

Filter the response based on an assets timespan. The filter can be specified in following formats:

Spec Description
YYYY-MM-DD'T'HH:mm:ss Returns all assets with stop_time after the specified date
YYYY-MM-DD,YYYY-MM-DD Returns all assets with stop_time within the timespan
XX:hours Returns all assets with stop_time in the last XX hours
XX:days Returns all assets with stop_time in the last XX days
XX:weeks Returns all assets with stop_time in the last XX weeks
XX:months Returns all assets with stop_time in the last XX months
remote
boolean

Filter remote assets. If true only remote assets will be returned, if false only platform hosted assets will be returned and if not set both types of assets will be returned.

Responses

Response samples

Content type
application/json
{
  • "total_count": 20,
  • "total_count_in_search": 20,
  • "page": 0,
  • "page_size": 20,
  • "total_pages": 20,
  • "assets": [
    ]
}

Create Livestream

Endpoint for creating a Livestream

Authorizations:
apiKey
Request Body schema: application/json
name
string

Name of the Livestream

description
string

Livestream Description

remote
boolean

When set to true the Livestream is treated as a remote asset by the platform

object (LiveVideoReplacement)

Contains settings for the Video that can be use to replace the Livestream in the player without re-embedding.

start_time
string <date-time>

Start date and time in ISO 8601 format for the Livestream, for example: 2021-06-01T12:33:22+00:00

Before the start time the Livestream will not be publicly visible when delivered with platform embeds. Instead a count down will be displayed in the player.

The start time will also initiate recording if the Livestream has the recording option set to true and be the start for the DVR if that is activated.

stop_time
string <date-time>

Stop date and time in ISO 8601 format for the Livestream, for example: 2021-06-01T12:33:22+00:00

This doesn't have any effect for the playback in the player unless allow_playback_after_stop_time is set to true and the stream is played in either flowplayer native or SDK:s.

This also controls the stop time for recordings. If recording is on for the Livestream it will stop at the stop time.

category_id
string

Unique identifier for the Category the Livestream belongs to.

scheduling_type
string
Enum: "INSTANT" "SCHEDULED" "LINEAR" "SIMULIVE"

The type of livestream. Default value is SCHEDULED unless you have specified a simulive_playlist. In that case it will be set to SIMULIVE.

object (Record)

Contains recording settings for the Livestream

Array of objects (CustomField)

List of all custom fields defined in the Workspace

ad_keywords
string

Used for replacing the ad_keywords macro in the VAST tag in any player that plays the Livestream. Find more information here.

no_ads
boolean

When set to true no ads will be displayed during this Livestream. *Notice This feature only works from Iframe embeds.

published
boolean

If true this Livestream will be visible in public listings such as an MRSS-feed.

tags
string

A comma separated list of tags.

allow_playback_after_stop_time
boolean

When set to false the player will abort playback and it will not be possible to restart the stream in the player. This feature only works together with Flowplayer players and SDKs.

object (Geoblocking)
image_input
string

Url to an image file which will be downloaded and imported to the platform, to be used as poster image for the livestream. If the livestream is of remote type the image will not be downloaded and instead served from the provided URL.

The image will replace s previously specified poster image for the asset.

object (StreamInfo)
object (IdRequestCategory)
object (IdRequestWorkspaceSimple)

site/workspace-object that is the owner of the Livestream

object (IdRequestLiveSource)

The Live Source that is used for this livestream. To remove a Live Source from the Livestream, set the id of the Live Source to empty string ( "" ). Example of removing a Live Source: {"id":""}.

object (SimuliveRequest)

Optional payload in case of simulated live

Array of objects (SimulivePlaylistItemRequest)
user_id
string

Id of the Livestream creator

Responses

Request samples

Content type
application/json
{
  • "name": "My first Livestream",
  • "description": "Description of my first Livestream",
  • "remote": true,
  • "video": {
    },
  • "start_time": "2021-01-01T12:00:00Z",
  • "stop_time": "2021-01-01T13:00:00Z",
  • "category_id": "string",
  • "scheduling_type": "INSTANT",
  • "record": {
    },
  • "custom_fields": [
    ],
  • "ad_keywords": "Special ads",
  • "no_ads": true,
  • "published": true,
  • "tags": "foo,bar",
  • "allow_playback_after_stop_time": true,
  • "geoblocking": {
    },
  • "image_input": "string",
  • "stream": {},
  • "category": {
    },
  • "workspace": {
    },
  • "live_source": {
    },
  • "simulive_request": {
    },
  • "simulive_playlist": [
    ],
  • "user_id": "string"
}

Response samples

Content type
application/json
{
  • "name": "My first Livestream",
  • "description": "Description of my first Livestream",
  • "remote": true,
  • "video": {
    },
  • "start_time": "2021-01-01T12:00:00Z",
  • "stop_time": "2021-01-01T13:00:00Z",
  • "category_id": "string",
  • "scheduling_type": "INSTANT",
  • "record": {
    },
  • "custom_fields": [
    ],
  • "ad_keywords": "Special ads",
  • "no_ads": true,
  • "published": true,
  • "tags": "foo,bar",
  • "allow_playback_after_stop_time": true,
  • "geoblocking": {
    },
  • "id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbbd",
  • "created_at": "2021-01-01T12:33:22Z",
  • "updated_at": "2021-01-01T12:33:22Z",
  • "images": [],
  • "workspace": {
    },
  • "live_source": {
    },
  • "user_id": "string",
  • "category": {
    },
  • "stream": {},
  • "simulive_playlist": [
    ],
  • "current_playable": {
    },
  • "looped": true,
  • "recordings": [
    ]
}

Get Livestream

Endpoint for fetching a Livestream

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Livestream

Responses

Response samples

Content type
application/json
{
  • "name": "My first Livestream",
  • "description": "Description of my first Livestream",
  • "remote": true,
  • "video": {
    },
  • "start_time": "2021-01-01T12:00:00Z",
  • "stop_time": "2021-01-01T13:00:00Z",
  • "category_id": "string",
  • "scheduling_type": "INSTANT",
  • "record": {
    },
  • "custom_fields": [
    ],
  • "ad_keywords": "Special ads",
  • "no_ads": true,
  • "published": true,
  • "tags": "foo,bar",
  • "allow_playback_after_stop_time": true,
  • "geoblocking": {
    },
  • "id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbbd",
  • "created_at": "2021-01-01T12:33:22Z",
  • "updated_at": "2021-01-01T12:33:22Z",
  • "images": [],
  • "workspace": {
    },
  • "live_source": {
    },
  • "user_id": "string",
  • "category": {
    },
  • "stream": {},
  • "simulive_playlist": [
    ],
  • "current_playable": {
    },
  • "looped": true,
  • "recordings": [
    ]
}

Update Livestream

Endpoint for updating a Livestream

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Livestream

Request Body schema: application/json
name
string

Name of the Livestream

description
string

Livestream Description

remote
boolean

When set to true the Livestream is treated as a remote asset by the platform

object (LiveVideoReplacement)

Contains settings for the Video that can be use to replace the Livestream in the player without re-embedding.

start_time
string <date-time>

Start date and time in ISO 8601 format for the Livestream, for example: 2021-06-01T12:33:22+00:00

Before the start time the Livestream will not be publicly visible when delivered with platform embeds. Instead a count down will be displayed in the player.

The start time will also initiate recording if the Livestream has the recording option set to true and be the start for the DVR if that is activated.

stop_time
string <date-time>

Stop date and time in ISO 8601 format for the Livestream, for example: 2021-06-01T12:33:22+00:00

This doesn't have any effect for the playback in the player unless allow_playback_after_stop_time is set to true and the stream is played in either flowplayer native or SDK:s.

This also controls the stop time for recordings. If recording is on for the Livestream it will stop at the stop time.

category_id
string

Unique identifier for the Category the Livestream belongs to.

scheduling_type
string
Enum: "INSTANT" "SCHEDULED" "LINEAR" "SIMULIVE"

The type of livestream. Default value is SCHEDULED unless you have specified a simulive_playlist. In that case it will be set to SIMULIVE.

object (Record)

Contains recording settings for the Livestream

Array of objects (CustomField)

List of all custom fields defined in the Workspace

ad_keywords
string

Used for replacing the ad_keywords macro in the VAST tag in any player that plays the Livestream. Find more information here.

no_ads
boolean

When set to true no ads will be displayed during this Livestream. *Notice This feature only works from Iframe embeds.

published
boolean

If true this Livestream will be visible in public listings such as an MRSS-feed.

tags
string

A comma separated list of tags.

allow_playback_after_stop_time
boolean

When set to false the player will abort playback and it will not be possible to restart the stream in the player. This feature only works together with Flowplayer players and SDKs.

object (Geoblocking)
image_input
string

Url to an image file which will be downloaded and imported to the platform, to be used as poster image for the livestream. If the livestream is of remote type the image will not be downloaded and instead served from the provided URL.

The image will replace s previously specified poster image for the asset.

object (StreamInfo)
object (IdRequestCategory)
object (IdRequestWorkspaceSimple)

site/workspace-object that is the owner of the Livestream

object (IdRequestLiveSource)

The Live Source that is used for this livestream. To remove a Live Source from the Livestream, set the id of the Live Source to empty string ( "" ). Example of removing a Live Source: {"id":""}.

object (SimuliveRequest)

Optional payload in case of simulated live

Array of objects (SimulivePlaylistItemRequest)
user_id
string

Id of the Livestream creator

Responses

Request samples

Content type
application/json
{
  • "name": "My first Livestream",
  • "description": "Description of my first Livestream",
  • "remote": true,
  • "video": {
    },
  • "start_time": "2021-01-01T12:00:00Z",
  • "stop_time": "2021-01-01T13:00:00Z",
  • "category_id": "string",
  • "scheduling_type": "INSTANT",
  • "record": {
    },
  • "custom_fields": [
    ],
  • "ad_keywords": "Special ads",
  • "no_ads": true,
  • "published": true,
  • "tags": "foo,bar",
  • "allow_playback_after_stop_time": true,
  • "geoblocking": {
    },
  • "image_input": "string",
  • "stream": {},
  • "category": {
    },
  • "workspace": {
    },
  • "live_source": {
    },
  • "simulive_request": {
    },
  • "simulive_playlist": [
    ],
  • "user_id": "string"
}

Response samples

Content type
application/json
{
  • "name": "My first Livestream",
  • "description": "Description of my first Livestream",
  • "remote": true,
  • "video": {
    },
  • "start_time": "2021-01-01T12:00:00Z",
  • "stop_time": "2021-01-01T13:00:00Z",
  • "category_id": "string",
  • "scheduling_type": "INSTANT",
  • "record": {
    },
  • "custom_fields": [
    ],
  • "ad_keywords": "Special ads",
  • "no_ads": true,
  • "published": true,
  • "tags": "foo,bar",
  • "allow_playback_after_stop_time": true,
  • "geoblocking": {
    },
  • "id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbbd",
  • "created_at": "2021-01-01T12:33:22Z",
  • "updated_at": "2021-01-01T12:33:22Z",
  • "images": [],
  • "workspace": {
    },
  • "live_source": {
    },
  • "user_id": "string",
  • "category": {
    },
  • "stream": {},
  • "simulive_playlist": [
    ],
  • "current_playable": {
    },
  • "looped": true,
  • "recordings": [
    ]
}

Delete Livestream

Endpoint for deleting a Livestream

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Livestream

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Live Overlay

Live Overlays are images displayed on top of a Livestream. You can have several Live Overlays active on the Livestream on the same time, but only one per template.

The template_id and the livestream_id creates a unique identifier a Live Overlay since you only can have one active Live Overlay per Template and Livestream. Because of Template <-> Livestream relationship you don't need to store unique id:s for Overlays in you system, all you need to know is what template you're using.

Notice that the overlay will only be displayed between the start and stop time of the Livestream. If you are outside that window the overlay will not be displayed regardless of what value you set.

###Get Access ###

Contact support to get access to this feature. By default it will be turned off for all Workspaces and Organizations.

Templates

Flowplayer provides a set of template that can be used by anyone broadcasting a livestream. All templates have a set of replacement values that should be used to add your custom text to the overlay.

Below is a list of all existing templates and their replacement values:

ID Description Replacement Values Default X Position Default Y Position Default Opacity
scoreboard Our default scoreboard with black background and white text. Sample: alt text
  • HOME - The home team abbr.
  • SCORE - The current score
  • AWAY - The away team abbr.
5 5 100

A minimal sample request to use the scoreboard template on a Livestream, {my-livestream-id} using the API:

curl https://api.flowplayer.com/platform/v3/livestreams/{my-livestream-id}/overlays/scoreboard \
-H "x-flowplayer-api-key: {my-api-key}" \
-H "Content-Type: application/json" \
-X PUT -d '{ "fields" : { "HOME" : "NYR", "SCORE" : "1-1", "AWAY" : "SJS" } }'

Create or Update Live Overlay

Endpoint for creating or updating one single Live Overlay for a Livestream.

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Livestream on which the Live Overlay will be displayed

templateId
required
string

Unique identifier for the Template that should be used.

header Parameters
idempotency-key
string

Idempotency key is a unique key set by the requesting service that identifies the request to the API.

When using the Idempotency key you can prevent short lived Live Overlay being displayed twice. This since idempotency-key provided in the request is compared to the key in the most recently received request for the this Live Overlay and if they are identical the endpoint will not update the Live Overlay.

If no Idempotency key is provided it will always update the Live Overlay.

Request Body schema: application/json
duration_in_seconds
integer <int32>

For how long the template will be visible in the Livestream starting from when the request is received on serverside.

If not set, or set to -1, the overlay will be visible until the Livestream ends or the Live Overlay is deleted from the Live Overlay.

Notice that the overlay will only be displayed between the start and stop time of the Livestream. If you are outside that window the overlay will not be displayed regardless of what value you set.

position_x
integer <int32>

The overlays X position for the upper left corner.

If not specified it will use the default value for the template.

position_y
integer <int32>

The overlays Y position for the upper left corner.

If not specified it will use the default value for the template.

object

Should contain all need replacement fields and their values for the selected template.

Each template have a set of replacement fields that are specified in the template list. These replacement field must be added the as properties in the fields-object in order to get your text in the overlay.

Responses

Request samples

Content type
application/json
{
  • "duration_in_seconds": 0,
  • "position_x": 0,
  • "position_y": 0,
  • "fields": "\"score\":\"1-1\""
}

Response samples

Content type
application/json
{
  • "idempotency_key": "string",
  • "template_id": "string",
  • "fields": {
    },
  • "visible_from": "2020-03-20T12:00:00+0100",
  • "visible_until": "2020-03-20T12:00:00+0100",
  • "visible_from_timestamp": 1584702000000,
  • "visible_until_timestamp": 1584702000000,
  • "updated": "2020-03-20T12:00:00+0100",
  • "created": "2020-03-20T12:00:00+0100",
  • "updated_timestamp": 0,
  • "created_timestamp": 0,
  • "position_x": 0,
  • "position_y": 0
}

Delete Live Overlay

Endpoint for deleting a Live Overlay

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Live Overlay

templateId
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Video

With this API you can easily create, update, fetch, delete and list videos on a workspace or category. The API supports both remote and platform streamed videos.

Creating videos

To create a new video, an input file must be provided to the platform in some way. The Create Video API requires the source file to be downloadable by http(s) request. If you, need to upload the input file from a local computer we recommend to use the Signed Url approach.

List Video

Endpoint for listing a Video

Authorizations:
apiKey
query Parameters
page
integer <int32>
Default: 0

Page number

page_size
integer <int32>
Default: 20

Page size

q
string
Example: q=foo:name,custom_fields

Search multiple text fields in a search that is case insensitive and does not require full matches.

It searches name, description, tags and custom_fields, wherecustom_fields searches all your custom fields for matching terms. You can search specific fields by specifying them after a colon (:); if you have multiple search terms you can use pipe (|) to separate the search terms.

Some examples:

Query Description
q=foo Searches all fields for foo.
q=foo:name,description Searches name and description fields for foo.
q=foo:name|bar:tags Searches name for foo and tags for bar. An asset must match both to be included.
sort_by
string
Default: "name"
Enum: "created_at" "name" "published_at" "duration"
sort_order
any
Default: "DESC"
Enum: "DESC" "ASC"
Example: sort_order=ASC

The sort order of the response

created_at
string
Example: created_at=2021-01-01,2021-02-01

Filter the response based on an assets timespan. The filter can be specified in following formats:

Spec Description
YYYY-MM-DD'T'HH:mm:ss Returns all assets with created_at after the specified date
YYYY-MM-DD,YYYY-MM-DD Returns all assets with created_at within the timespan
XX:hours Returns all assets with created_at in the last XX hours
XX:days Returns all assets with created_at in the last XX days
XX:weeks Returns all assets with created_at in the last XX weeks
XX:months Returns all assets with created_at in the last XX months
updated_at
string
Example: updated_at=2021-01-01,2021-02-01

Filter the response based on an assets timespan. The filter can be specified in following formats:

Spec Description
YYYY-MM-DD'T'HH:mm:ss Returns all assets with updated_at after the specified date
YYYY-MM-DD,YYYY-MM-DD Returns all assets with updated_at within the timespan
XX:hours Returns all assets with updated_at in the last XX hours
XX:days Returns all assets with updated_at in the last XX days
XX:weeks Returns all assets with updated_at in the last XX weeks
XX:months Returns all assets with updated_at in the last XX months
published_at
string
Example: published_at=2021-01-01,2021-02-01

Filter the response based on an assets timespan. The filter can be specified in following formats:

Spec Description
YYYY-MM-DD'T'HH:mm:ss Returns all assets with published_at after the specified date
YYYY-MM-DD,YYYY-MM-DD Returns all assets with published_at within the timespan
XX:hours Returns all assets with published_at in the last XX hours
XX:days Returns all assets with published_at in the last XX days
XX:weeks Returns all assets with published_at in the last XX weeks
XX:months Returns all assets with published_at in the last XX months
remote
boolean

Filter remote assets. If true only remote assets will be returned, if false only platform hosted assets will be returned and if not set both types of assets will be returned.

categories
string

Returns assets that have one of the specified Categories. Input should be a comma separated string with Category ids. You can specify up to four Categories in a single query.

Responses

Response samples

Content type
application/json
{
  • "total_count": 20,
  • "total_count_in_search": 20,
  • "page": 0,
  • "page_size": 20,
  • "total_pages": 20,
  • "assets": [
    ]
}

Create Video

Endpoint for creating one single Video. You only need to provide a url to the video file you want to publish as input and the platform will then download it from your server and make it available through platform.

The example below shows the easiest way to upload a video, you just need the api-key and an downloadable input-url:

            curl  https://api.flowplayer.com/platform/v3/videos \
            -H "x-flowplayer-api-key: YOUR_API_KEY" \
            -H "Content-Type: application/json" \
            -X POST \
            -d '{ "input" : "https://edge.flowplayer.org/functional.mp4"}'

To prepare the video for best possible result, please read our prepare Videos for upload document.

Authorizations:
apiKey
Request Body schema: application/json
name
string

The Video name, can be displayed in the player. If not specified, it will default to the input files name.

description
string

The Video description, can be displayed in the player.

duration
integer <int64>
unpublish
boolean
Default: false

If true the unpublish_date is respected and the video will not be available after unpublish_date. If false the video will not be unpublished.

unpublish_date
string

Date and time in ISO 8601 format when video no longer is available for publishing. After this date the video is not visible in the player if using ovp-plugin to request the video.

published
boolean

This field, together with pubish_date and unpublish_date, determines if this Video will be visible in public listings such as MRSS-feeds, endscreens and Playlists. If true and publish_date and unpublish_date allows, the Video will be visible.

publish_date
string

Date and time in ISO 8601 format when video is available for publishing . Before this date the video is not visible in the player if using ovp-plugin to request the video.

tags
string

A comma separated list of tags.

remote
boolean
Default: false

When set to true the Video is treated as a remote asset by the platform

Array of objects (CustomField)
object (IdNameResponseCategory)
category_id
string
Default: "<The Workspace default Category>"

The unique identifier for the Category that the Video belongs to.

no_ads
boolean

When set to true no ads will be displayed during this Video. Notice, this feature only works for Iframe embeds.

ad_keywords
string

Used for replacing the ad_keywords macro in the VAST-tag in any Player that plays the Video. Find more information here.

object (IdNameResponseWorkspaceSimple)
user_id
string

Id for the creator of the Video

object (Geoblocking)
input
string

Url that the platform will download, encode and serve to the player. We accept HTTP, HTTPS and FTP addresses. If you want to host the file yourself you should specify the files in remote_inputs.

If it's not possible to give the platform direct download access to the source file, we recommend you to use the Signed Url approach instead.

Array of objects (RemoteUrl)

If the file should not be hosted and encoded by the platform you can create remote assets.

In this array you can specify the video and image file to be registered in the platform, which will hosted on you own servers and delivered through your CDN.

Cannot be used together with input and image_input in the same video asset. The video asset will be marked as remote if this is used.

image_input
string

Url to an image file to be downloaded and served by the platform as poster image for the Video. If no image is specified, a poster image created during the encoding process and be set as default image for this Video.

Responses

Request samples

Content type
application/json
{
  • "name": "My video",
  • "description": "string",
  • "duration": 0,
  • "unpublish": false,
  • "unpublish_date": "2020-01-01T12:33:22+00:00",
  • "published": true,
  • "publish_date": "2020-01-01T12:33:22+00:00",
  • "tags": "for,bar",
  • "remote": false,
  • "custom_fields": [
    ],
  • "category": {
    },
  • "category_id": "<The Workspace default Category>",
  • "no_ads": true,
  • "ad_keywords": "special_ads",
  • "workspace": {
    },
  • "user_id": "string",
  • "geoblocking": {
    },
  • "remote_inputs": [],
}

Response samples

Content type
application/json
{
  • "name": "My video",
  • "description": "string",
  • "duration": 0,
  • "unpublish": false,
  • "unpublish_date": "2020-01-01T12:33:22+00:00",
  • "published": true,
  • "publish_date": "2020-01-01T12:33:22+00:00",
  • "tags": "for,bar",
  • "remote": false,
  • "custom_fields": [
    ],
  • "category": {
    },
  • "category_id": "<The Workspace default Category>",
  • "no_ads": true,
  • "ad_keywords": "special_ads",
  • "workspace": {
    },
  • "user_id": "string",
  • "geoblocking": {
    },
  • "id": "9aaaaa9a-1234-56bc-789d-8eeeeee765",
  • "created_at": "2020-01-01T12:33:22+00:00",
  • "updated_at": "2020-01-01T12:33:22+00:00",
  • "state": "FINISHED",
  • "encoding_progress": 0,
  • "upload_progress": 0,
  • "error_message": "string",
  • "deactivated": false,
  • "images": [],
  • "encodings": [
    ],
  • "subtitles": [
    ],
  • "drm": {
    },
  • "shallow_copy": true,
  • "shallow_copy_source_id": "string",
  • "multiple_audio_tracks": true,
  • "audio_only": true,
  • "upload_type": "WEB_BASED_UI",
  • "version": 0,
  • "thumbnails": {
    },
  • "chapters": [
    ],
  • "animated_preview": "string",
  • "animated_previews": [
    ]
}

Get Video

Endpoint for fetching a Video

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Video

Responses

Response samples

Content type
application/json
{
  • "name": "My video",
  • "description": "string",
  • "duration": 0,
  • "unpublish": false,
  • "unpublish_date": "2020-01-01T12:33:22+00:00",
  • "published": true,
  • "publish_date": "2020-01-01T12:33:22+00:00",
  • "tags": "for,bar",
  • "remote": false,
  • "custom_fields": [
    ],
  • "category": {
    },
  • "category_id": "<The Workspace default Category>",
  • "no_ads": true,
  • "ad_keywords": "special_ads",
  • "workspace": {
    },
  • "user_id": "string",
  • "geoblocking": {
    },
  • "id": "9aaaaa9a-1234-56bc-789d-8eeeeee765",
  • "created_at": "2020-01-01T12:33:22+00:00",
  • "updated_at": "2020-01-01T12:33:22+00:00",
  • "state": "FINISHED",
  • "encoding_progress": 0,
  • "upload_progress": 0,
  • "error_message": "string",
  • "deactivated": false,
  • "images": [],
  • "encodings": [
    ],
  • "subtitles": [
    ],
  • "drm": {
    },
  • "shallow_copy": true,
  • "shallow_copy_source_id": "string",
  • "multiple_audio_tracks": true,
  • "audio_only": true,
  • "upload_type": "WEB_BASED_UI",
  • "version": 0,
  • "thumbnails": {
    },
  • "chapters": [
    ],
  • "animated_preview": "string",
  • "animated_previews": [
    ]
}

Update Video

Endpoint for updating a Video

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Video

Request Body schema: application/json
name
string

The Video name, can be displayed in the player. If not specified, it will default to the input files name.

description
string

The Video description, can be displayed in the player.

duration
integer <int64>
unpublish
boolean
Default: false

If true the unpublish_date is respected and the video will not be available after unpublish_date. If false the video will not be unpublished.

unpublish_date
string

Date and time in ISO 8601 format when video no longer is available for publishing. After this date the video is not visible in the player if using ovp-plugin to request the video.

published
boolean

This field, together with pubish_date and unpublish_date, determines if this Video will be visible in public listings such as MRSS-feeds, endscreens and Playlists. If true and publish_date and unpublish_date allows, the Video will be visible.

publish_date
string

Date and time in ISO 8601 format when video is available for publishing . Before this date the video is not visible in the player if using ovp-plugin to request the video.

tags
string

A comma separated list of tags.

remote
boolean
Default: false

When set to true the Video is treated as a remote asset by the platform

Array of objects (CustomField)
object (IdNameResponseCategory)
category_id
string
Default: "<The Workspace default Category>"

The unique identifier for the Category that the Video belongs to.

no_ads
boolean

When set to true no ads will be displayed during this Video. Notice, this feature only works for Iframe embeds.

ad_keywords
string

Used for replacing the ad_keywords macro in the VAST-tag in any Player that plays the Video. Find more information here.

object (IdNameResponseWorkspaceSimple)
user_id
string

Id for the creator of the Video

object (Geoblocking)
input
string

Url that the platform will download, encode and serve to the player. We accept HTTP, HTTPS and FTP addresses. If you want to host the file yourself you should specify the files in remote_inputs.

If it's not possible to give the platform direct download access to the source file, we recommend you to use the Signed Url approach instead.

Array of objects (RemoteUrl)

If the file should not be hosted and encoded by the platform you can create remote assets.

In this array you can specify the video and image file to be registered in the platform, which will hosted on you own servers and delivered through your CDN.

Cannot be used together with input and image_input in the same video asset. The video asset will be marked as remote if this is used.

image_input
string

Url to an image file to be downloaded and served by the platform as poster image for the Video. If no image is specified, a poster image created during the encoding process and be set as default image for this Video.

Responses

Request samples

Content type
application/json
{
  • "name": "My video",
  • "description": "string",
  • "duration": 0,
  • "unpublish": false,
  • "unpublish_date": "2020-01-01T12:33:22+00:00",
  • "published": true,
  • "publish_date": "2020-01-01T12:33:22+00:00",
  • "tags": "for,bar",
  • "remote": false,
  • "custom_fields": [
    ],
  • "category": {
    },
  • "category_id": "<The Workspace default Category>",
  • "no_ads": true,
  • "ad_keywords": "special_ads",
  • "workspace": {
    },
  • "user_id": "string",
  • "geoblocking": {
    },
  • "remote_inputs": [],
}

Response samples

Content type
application/json
{
  • "name": "My video",
  • "description": "string",
  • "duration": 0,
  • "unpublish": false,
  • "unpublish_date": "2020-01-01T12:33:22+00:00",
  • "published": true,
  • "publish_date": "2020-01-01T12:33:22+00:00",
  • "tags": "for,bar",
  • "remote": false,
  • "custom_fields": [
    ],
  • "category": {
    },
  • "category_id": "<The Workspace default Category>",
  • "no_ads": true,
  • "ad_keywords": "special_ads",
  • "workspace": {
    },
  • "user_id": "string",
  • "geoblocking": {
    },
  • "id": "9aaaaa9a-1234-56bc-789d-8eeeeee765",
  • "created_at": "2020-01-01T12:33:22+00:00",
  • "updated_at": "2020-01-01T12:33:22+00:00",
  • "state": "FINISHED",
  • "encoding_progress": 0,
  • "upload_progress": 0,
  • "error_message": "string",
  • "deactivated": false,
  • "images": [],
  • "encodings": [
    ],
  • "subtitles": [
    ],
  • "drm": {
    },
  • "shallow_copy": true,
  • "shallow_copy_source_id": "string",
  • "multiple_audio_tracks": true,
  • "audio_only": true,
  • "upload_type": "WEB_BASED_UI",
  • "version": 0,
  • "thumbnails": {
    },
  • "chapters": [
    ],
  • "animated_preview": "string",
  • "animated_previews": [
    ]
}

Delete Video

Endpoint for deleting a Video

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Video

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Playlist

Playlists allow you to group videos into a list that plays in sequence in the player.

Selecting Playlist type

There are two types of playlists, MANUAL and AUTOMATIC, and what type to choose depends on how you want to manage your playlist.

AUTOMATIC playlists should be used if you want to filter its content through video metadata, e.g. tags or categories, and the sort order by popularity or publishing date.

If you instead want to control exactly which videos the playlist should contain and in what order they will be displayed, you can use the MANUAL type.

List Playlist

Endpoint for listing a Playlist

Authorizations:
apiKey
query Parameters
page
integer <int32>
Default: 0

Page number

page_size
integer <int32>
Default: 20

Page size

q
string

Search multiple text fields. For Playlists it searches name and description.

sort_by
string
Default: "name"
Enum: "created_at" "updated_at" "name"
sort_order
any
Default: "DESC"
Enum: "DESC" "ASC"
Example: sort_order=ASC

The sort order of the response

types
string
created_at
string
Example: created_at=2021-01-01,2021-02-01

Filter the response based on an assets timespan. The filter can be specified in following formats:

Spec Description
YYYY-MM-DD'T'HH:mm:ss Returns all assets with created_at after the specified date
YYYY-MM-DD,YYYY-MM-DD Returns all assets with created_at within the timespan
XX:hours Returns all assets with created_at in the last XX hours
XX:days Returns all assets with created_at in the last XX days
XX:weeks Returns all assets with created_at in the last XX weeks
XX:months Returns all assets with created_at in the last XX months
updated_at
string
Example: updated_at=2021-01-01,2021-02-01

Filter the response based on an assets timespan. The filter can be specified in following formats:

Spec Description
YYYY-MM-DD'T'HH:mm:ss Returns all assets with updated_at after the specified date
YYYY-MM-DD,YYYY-MM-DD Returns all assets with updated_at within the timespan
XX:hours Returns all assets with updated_at in the last XX hours
XX:days Returns all assets with updated_at in the last XX days
XX:weeks Returns all assets with updated_at in the last XX weeks
XX:months Returns all assets with updated_at in the last XX months

Responses

Response samples

Content type
application/json
{
  • "total_count": 20,
  • "total_count_in_search": 20,
  • "page": 0,
  • "page_size": 20,
  • "total_pages": 20,
  • "assets": [
    ]
}

Create Playlist

Endpoint for creating a Playlist

Authorizations:
apiKey
Request Body schema: application/json
name
string

The Playlist name.

description
string

A description of the playlist

object (PlaylistConfig)

Contains the configuration for AUTOMATIC Playlists. Required when creating an AUTOMATIC Playlist.

type
string
Enum: "MANUAL" "AUTOMATIC" "INTELLIGENT" "SIMUPLAYLIST"

Contains Video items for MANUAL Playlists. The Playlist will display Videos in the order specified in the request.

object (WorkspaceSimple)

Site/Workspace-object that is the owner of the Playlist

Array of objects (IdRequestPlaylist)

Contains Video items for MANUAL Playlists. The Playlist will display Videos in the order specified in the request.

Responses

Request samples

Content type
application/json
{
  • "name": "My playlist",
  • "description": "string",
  • "config": {
    },
  • "type": "MANUAL",
  • "workspace": {
    },
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "name": "My playlist",
  • "description": "string",
  • "config": {
    },
  • "type": "MANUAL",
  • "workspace": {
    },
  • "id": "9aaaaa9a-1234-56bc-789d-8eeeeee765",
  • "items": [
    ],
  • "created_at": "string",
  • "updated_at": "string"
}

Get Playlist

Endpoint for fetching a Playlist

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Playlist

Responses

Response samples

Content type
application/json
{
  • "name": "My playlist",
  • "description": "string",
  • "config": {
    },
  • "type": "MANUAL",
  • "workspace": {
    },
  • "id": "9aaaaa9a-1234-56bc-789d-8eeeeee765",
  • "items": [
    ],
  • "created_at": "string",
  • "updated_at": "string"
}

Update Playlist

Endpoint for updating a Playlist

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Playlist

Request Body schema: application/json
name
string

The Playlist name.

description
string

A description of the playlist

object (PlaylistConfig)

Contains the configuration for AUTOMATIC Playlists. Required when creating an AUTOMATIC Playlist.

type
string
Enum: "MANUAL" "AUTOMATIC" "INTELLIGENT" "SIMUPLAYLIST"

Contains Video items for MANUAL Playlists. The Playlist will display Videos in the order specified in the request.

object (WorkspaceSimple)

Site/Workspace-object that is the owner of the Playlist

Array of objects (IdRequestPlaylist)

Contains Video items for MANUAL Playlists. The Playlist will display Videos in the order specified in the request.

Responses

Request samples

Content type
application/json
{
  • "name": "My playlist",
  • "description": "string",
  • "config": {
    },
  • "type": "MANUAL",
  • "workspace": {
    },
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "name": "My playlist",
  • "description": "string",
  • "config": {
    },
  • "type": "MANUAL",
  • "workspace": {
    },
  • "id": "9aaaaa9a-1234-56bc-789d-8eeeeee765",
  • "items": [
    ],
  • "created_at": "string",
  • "updated_at": "string"
}

Delete Playlist

Endpoint for deleting a Playlist

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Playlist

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Transcription

Create Transcription

Automated transcription of the video input. Converts audio to text in minutes.

Note that transcription is only available to enterprise customers.

Authorizations:
apiKey
path Parameters
id
required
string
Example: 51cd5c07-1583-4f5e-bd81-f1aa11510ea9

Unique identifier for the Transcription

Request Body schema: application/json
language
string

Language code the language that will be use in the transcription process.

keywords
string

Comma-separated list of words or sentences that can help the transcription service deliver a more accurate result. For example, "flowplayer.com" can be easily transcribed as "flowplayer dot com" and by adding "flowplayer.com" to the keywords, the result will be "flowplayer.com" instead of "flowplayer dot com".

Responses

Request samples

Content type
application/json
{
  • "language": "sv",
  • "keywords": "flowplayer.com,Flowplayer"
}

Response samples

Content type
application/json
{
  • "status": "string",
  • "language": "sv",
  • "id": "string"
}
Results