Media Management

Channel Media Pool

Delete a media asset

DELETE /channels/(string: uuid)/media/(string: mediaId)

Allow to remove a media asset from the channel media pool

Parameters:
  • uuid (string) – The channel ID

  • mediaId (string) – Media id.

Delete a media assets by tags

POST /channels/(string: uuid)/media/delete-by-tags

Allow to remove media assets from the channel media pool by specified tags

Parameters:
  • uuid (string) – The channel ID

Request JSON Object:
  • tag (string) – Tag name

Delete a media assets in batch

POST /channels/(string: uuid)/media/batch-delete

Allow to remove media assets from the channel media pool in batch

Parameters:
  • uuid (string) – The channel ID

Request: List of Strings

Get channel media pool size

GET /channels/(string: uuid)/media/quota

Allow to get the size and usage of the channel media pool

Parameters:
  • uuid (string) – The channel ID

Response JSON Object:
  • used (long) – Used space

  • limit (long) – Limit of the space

Get media asset metadata

GET /channels/(string: uuid)/media/(string: mediaId)

Allows to fetch details of the media file.

Parameters:
  • uuid (string) – The channel ID

  • mediaId (string) – Media id.

Response JSON Object:
  • name (string) – Name of the media asset

  • size (long) – Asset size

  • description (option[string]) – Description of the media asset

  • tags (seq[tag]) – Tags assigned to the asset

  • id (string) – Unique identifier of the media asset

  • contentType (string) – Content type of the asset

  • publicRead (boolean) – Information of the asset can be accessed without authorization

  • created (long) – Creation date of the asset

List channel media

GET /channels/(string: uuid)/media

Allows to browse through the channel media pool assets.

Parameters:
  • uuid (string) – The channel ID

Query Parameters:
  • query (string) – Search query. Will be matched against name of the asset.

  • limit (string) – Limit amount of results. Needed for implementing pagination

  • offset (string) – Offset at which start looking for results in database. Needed for implementing pagination

  • sort (string) – By which field sort results. Possible values: [“created”, “name”, “size”]. Default is “created”

  • order (string) – In which order sort results. Possible values: [“asc”, “desc”]. Default is “desc”

  • tags_all (string) – Filter results by tags. All tags must be present in the asset.

  • tags_any (string) – Filter results by tags. At least one tag must be present in the asset.

Response:

{
    total: number
    results: list
}

where total is a total amount of elements matching criteria results objects has following fields:

{
    name: string  // Name of the media asset
    size: long  // Asset size
    description: option[string]  // Description of the media asset
    tags: seq[tag]  // Tags assigned to the asset
    id: string  // Unique identifier of the media asset
    contentType: string  // Content type of the asset
    publicRead: boolean  // Information of the asset can be accessed without authorization
    created: long  // Creation date of the asset
}

Set tags for media asset

POST /channels/(string: uuid)/media/(string: mediaId)/tags

Allow to set tags for media asset

Parameters:
  • uuid (string) – The channel ID

  • mediaId (string) – Media id.

Request JSON Object:
  • tag (string) – Tag name

Upload media asset

POST /channels/(string: uuid)/media

Allows to upload a media asset to a channel media pool for sharing or letter use. File should be attached as binaries directly in the request body.

Parameters:
  • uuid (string) – The channel ID

Query Parameters:
  • name (string) – Media file name.

  • description (string) – Media file description.

  • read (string) – Information if the asset can be accessed without authorization, Can be one of public/private

Response JSON Object:
  • id (string) – Unique id

Client Media Pool

Delete a media asset

DELETE /media/(string: mediaId)

Allow to remove a media asset from the client media pool

Parameters:
  • mediaId (string) – Media id.

Delete a media assets by tags

POST /media/delete-by-tags

Allow to remove media assets from the client media pool by specified tags

Request JSON Object:
  • tag (string) – Tag name

Delete a media assets in batch

POST /media/batch-delete

Allow to remove media assets from the client media pool in batch

Request: List of Strings

Get client media pool size

GET /media/quota

Allow to get the size and usage of the client media pool

Response JSON Object:
  • used (long) – Used space

  • limit (long) – Limit of the space

Get media asset metadata

GET /media/(string: mediaId)

Allows to fetch details of the media file.

Parameters:
  • mediaId (string) – Media id.

Response JSON Object:
  • name (string) – Name of the media asset

  • size (long) – Asset size

  • description (option[string]) – Description of the media asset

  • tags (seq[tag]) – Tags assigned to the asset

  • id (string) – Unique identifier of the media asset

  • contentType (string) – Content type of the asset

  • publicRead (boolean) – Information of the asset can be accessed without authorization

  • created (long) – Creation date of the asset

List client media

GET /media

Allows to browse through the client media pool assets.

Query Parameters:
  • query (string) – Search query. Will be matched against name of the asset.

  • limit (string) – Limit amount of results. Needed for implementing pagination

  • offset (string) – Offset at which start looking for results in database. Needed for implementing pagination

  • sort (string) – By which field sort results. Possible values: [“created”, “name”, “size”]. Default is “created”

  • order (string) – In which order sort results. Possible values: [“asc”, “desc”]. Default is “desc”

  • tags_all (string) – Filter results by tags. All tags must be present in the asset.

  • tags_any (string) – Filter results by tags. At least one tag must be present in the asset.

Response:

{
    total: number
    results: list
}

where total is a total amount of elements matching criteria results objects has following fields:

{
    name: string  // Name of the media asset
    size: long  // Asset size
    description: option[string]  // Description of the media asset
    tags: seq[tag]  // Tags assigned to the asset
    id: string  // Unique identifier of the media asset
    contentType: string  // Content type of the asset
    publicRead: boolean  // Information of the asset can be accessed without authorization
    created: long  // Creation date of the asset
}

Set media asset tags

POST /media/(string: mediaId)/tags

Allow to set tags for a media asset

Parameters:
  • mediaId (string) – Media id.

Request JSON Object:
  • tag (string) – Tag name

Upload media asset

POST /media

Allows to upload a media asset to a client media pool for sharing or letter use. File should be attached as binaries directly in the request body.

Query Parameters:
  • name (string) – Media file name.

  • description (string) – Media file descritpion.

  • read (string) – Information if the asset can be accessed without authorization, Can be one of public/private

Response JSON Object:
  • id (string) – Unique id

Horn Gateway

Horn Gateway is an ingress entry service in the platform that allows users to bring external media sources into the system. It supports various streaming protocols like RTMP (Real-Time Messaging Protocol) and SRT (Secure Reliable Transport), enabling users to feed external content directly into channels.

Once media is ingested through the Horn Gateway, it can be:

  • Viewed by other users in real-time

  • Recorded for later playback

  • Distributed to multiple channels

  • Processed through the platform’s media pipeline

Create an gateway endpoint

POST /users/(string: userId)/source
Parameters:
  • userId (string) – Me or user id

Request JSON Object:
  • kind (gatewayservice.kind.value) – The kind of stream

Response JSON Object:
  • uuid (string) – The gateway endpoint uuid

  • host (string) – The host of the gateway endpoint

  • port (int) – The port of the gateway endpoint

  • kind (gatewayservice.kind.value) – The kind of stream

  • credentials (option[credentials]) – The credentials of the gateway endpoint

Get all endpoints id for a user

GET /users/(string: userId)/sources
Parameters:
  • userId (string) – Me or user id

Response: String

Get details about an gateway endpoint

GET /users/(string: userId)/source/(string: uuid)
Parameters:
  • userId (string) – Me or user id

  • uuid (string) – Id of the endpoint

Response JSON Object:
  • uuid (string) – The gateway endpoint uuid

  • host (string) – The host of the gateway endpoint

  • port (int) – The port of the gateway endpoint

  • kind (gatewayservice.kind.value) – The kind of stream

  • credentials (option[credentials]) – The credentials of the gateway endpoint

Remove the endpoint

DELETE /users/(string: userId)/source/(string: uuid)
Parameters:
  • userId (string) – Me or user id

  • uuid (string) – Id of the endpoint