Tivo · Schema

TiVo Content Item

Schema for a TiVo entertainment content item representing a movie, TV series, episode, or other media

EntertainmentMetadataTelevisionMoviesMusicStreaming

Properties

Name Type Description
id string Unique TiVo content identifier
title string Content title
type string Content type classification
year integer Release or premiere year
description string Content synopsis or description
genres array List of genres for the content
rating string Content rating (PG, R, TV-MA, etc.)
runtime integer Runtime in minutes
languages array Available languages (ISO 639-1 codes)
cast array Cast and crew members
images array Available images for the content
externalIds object External identifier mappings
availableOn array Streaming platforms where this content is available
View JSON Schema on GitHub

JSON Schema

tivo-content-schema.json Raw ↑
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/tivo/main/json-schema/tivo-content-schema.json",
  "title": "TiVo Content Item",
  "description": "Schema for a TiVo entertainment content item representing a movie, TV series, episode, or other media",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique TiVo content identifier"
    },
    "title": {
      "type": "string",
      "description": "Content title"
    },
    "type": {
      "type": "string",
      "enum": ["movie", "series", "episode", "person", "sport", "program"],
      "description": "Content type classification"
    },
    "year": {
      "type": "integer",
      "minimum": 1888,
      "description": "Release or premiere year"
    },
    "description": {
      "type": "string",
      "description": "Content synopsis or description"
    },
    "genres": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of genres for the content"
    },
    "rating": {
      "type": "string",
      "description": "Content rating (PG, R, TV-MA, etc.)"
    },
    "runtime": {
      "type": "integer",
      "minimum": 0,
      "description": "Runtime in minutes"
    },
    "languages": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Available languages (ISO 639-1 codes)"
    },
    "cast": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/CastMember"
      },
      "description": "Cast and crew members"
    },
    "images": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/Image"
      },
      "description": "Available images for the content"
    },
    "externalIds": {
      "type": "object",
      "description": "External identifier mappings",
      "properties": {
        "rovi": {
          "type": "string",
          "description": "Rovi 1.1 identifier"
        },
        "rovi2": {
          "type": "string",
          "description": "Rovi 2.0 identifier"
        },
        "tmdb": {
          "type": "string",
          "description": "The Movie Database (TMDB) identifier"
        },
        "eidr": {
          "type": "string",
          "description": "Entertainment Identifier Registry (EIDR) identifier"
        }
      }
    },
    "availableOn": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Streaming platforms where this content is available"
    }
  },
  "required": ["id", "title", "type"],
  "definitions": {
    "CastMember": {
      "type": "object",
      "properties": {
        "personId": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "enum": ["actor", "director", "writer", "producer", "composer"]
        },
        "character": {
          "type": "string"
        }
      },
      "required": ["personId", "name", "role"]
    },
    "Image": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "format": "uri"
        },
        "type": {
          "type": "string",
          "enum": ["poster", "backdrop", "still", "headshot", "logo"]
        },
        "width": {
          "type": "integer",
          "minimum": 1
        },
        "height": {
          "type": "integer",
          "minimum": 1
        },
        "language": {
          "type": "string"
        }
      },
      "required": ["url", "type"]
    }
  }
}