Vionlabs Docs

Vionlabs Catalog Apis

Vionlabs API for ingest and synchronisation of asset information. The catalog information/data is central to the operation of the system. In order to fully understand the models and the implications of operations it is recommended that developers and integrators consult the relevant section of the Vionlabs developer documentation.

List catalog items.

GET
/catalog/v1/item
key<token>

In: query

Query Parameters

page_num?Page Num

Specifies a positional number of page with results

Default0
Range0 <= value
page_size?Page Size

Specifies a max number of results per page

Default500
Range1 <= value
allow_deleted?Allow Deleted

Flag to indicate whether previously deleted items should be included

Defaultfalse

Response Body

curl -X GET "https://loading/catalog/v1/item?page_num=0&page_size=500&allow_deleted=false"
[
  {
    "id": "string",
    "vionlabs_id": "string",
    "type": "standalone"
  }
]
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

Upsert operation on a catalog item.

This operation performs an upsert on a catalog item:

  • if the item does not exist, it will be created and added to the catalog
  • if the item already exists, the data for the item will be replaced with the provided data

For episodic content (series/season/episode) there are consequential actions that may occur within the episodic hierarchy as a result of a deletion. Please refer to Vionlabs developer documentation for full information on this aspect of system behavior.

PUT
/catalog/v1/item
key<token>

In: query

idId

Customer identifier for the item. All IDs among episodes, standalones, series and seasons must be unique.

Length1 <= length
typeItemType

The item type for this item. 'standalone' should be used for any non-episodic content eg. a movie

titleTitle

Title of item

virtual?Virtual

If Vionlabs GFP contains results of specific product it is possible to set this flag and receive the item in the list of GFP catalog without providing actual content. If the flag is set field 'external_ids' must be filled with IMDB id value.

Defaultfalse
tag?Tag

A list of tags used to categorize content. Each tag represents customer-related information, such as 'content availability', 'customer preferences', or other relevant attributes related to customer interactions and content management.

poster_urls?Poster Urls

List of urls for posters

alternative_lang_title?Alternative Lang Title

Title in other languages

external_ids?External Ids

Identifiers for external data source

metadata?Metadata

Metadata for the item

ratings?Ratings

Ratings information

window_info?Window Info

DEPRECATED

release_year?Release Year

Year of original release

Range1900 < value < 2050
logo_urls?Logo Urls

Logos to be used with thumbnails. Example: {"dark": "https://url.com/image1.png", "bright": "https://url.com/image2.png"}

Empty Object

episodic_info?Episodic Info

Episodic details. Used for episodes in a Metadata-based catalog model

extended_episodic_info?Extended Episodic Info

Episodic details. Used for episodes in an asset structured catalog model

asset_info?Asset Info

Asset information. Used for standalone and episode types

operations?Operations

Operational flags

Response Body

curl -X PUT "https://loading/catalog/v1/item" \  -H "Content-Type: application/json" \  -d '{    "id": "string",    "type": "standalone",    "title": "string"  }'
null
Empty
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

Retrieval operation on a catalog item.

This operation returns the currently active version of the requested item in the catalog.

It should be noted that the Vionlabs catalog system is eventually consistent, so there may be a time lag between applying system updates and seeing changed information from this method.

GET
/catalog/v1/item/{type}/{inventory_id}
key<token>

In: query

Path Parameters

typeItemType

Item type

inventory_idInventory Id

Customer identifier for item as specified in catalog

Query Parameters

allow_deleted?Allow Deleted

Flag to indicate whether previously deleted items should be included

Defaultfalse
asset_model?Asset Model

If set to true, the item will be returned in the Asset-based model format. Otherwise, the item will be returned in the Metadata-based model format.This flag can only be enabled for episodes.

Defaultfalse

Response Body

curl -X GET "https://loading/catalog/v1/item/standalone/string?allow_deleted=false&asset_model=false"
{
  "id": "string",
  "type": "standalone",
  "title": "string",
  "virtual": false,
  "tag": [
    "string"
  ],
  "poster_urls": [
    "string"
  ],
  "alternative_lang_title": [
    "string"
  ],
  "external_ids": [
    {
      "provider": "IMDB",
      "id": "string"
    }
  ],
  "metadata": {
    "genres": [
      "string"
    ],
    "keywords": [
      "string"
    ],
    "categorized_keywords": [
      {
        "category": "string",
        "keyword": "string"
      }
    ],
    "cast": [
      "string"
    ],
    "roles": [
      "string"
    ],
    "crew": [
      {
        "crew_member": "Jill Smith",
        "role": "producer"
      }
    ],
    "short_description": "string",
    "long_description": "string"
  },
  "ratings": [
    {
      "scheme": "MPAA",
      "rating": "PG-13"
    }
  ],
  "window_info": {
    "start": "string",
    "end": "string"
  },
  "release_year": 1901,
  "logo_urls": {
    "property1": "string",
    "property2": "string"
  },
  "episodic_info": {
    "series_id": "string",
    "season_id": "string",
    "season_number": 0,
    "episode_number": 0
  },
  "extended_episodic_info": {
    "series_id": "string",
    "series_title": "string",
    "season_id": "string",
    "season_title": "string",
    "season_number": 0,
    "episode_number": 0
  },
  "asset_info": {
    "file_uri": "string",
    "video_playback_uri": "string",
    "duration": 0,
    "asset_params": {}
  },
  "operations": {
    "deleted": false,
    "force_asset_reprocess": false
  }
}
Empty
Empty
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

Delete an item from catalog

This operation will delete an item from the catalog

For episodic content (series/season/episode) there are consequential actions that may occur within the episodic hierarchy as a result of a deletion. Please refer to Vionlabs developer documentation for full information on this aspect of system behavior.

Note that it is also possible to delete an item from the catalog by performing an upsert with the operational delete flag set to true. This method is provided as a shortcut to delete whilst preserving all other item data in the system.

PUT
/catalog/v1/delete/{type}/{inventory_id}
key<token>

In: query

Path Parameters

typeItemType

Item type

inventory_idInventory Id

Customer identifier for item as specified in catalog

Response Body

curl -X PUT "https://loading/catalog/v1/delete/standalone/string"
null
Empty
Empty
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}