Livepeer · Schema

Livepeer Asset

An on-demand video asset stored in Livepeer Studio. Captures source upload, transcoded video specifications, playback identity, and IPFS storage state.

VideoLive StreamingVideo On DemandAI VideoDecentralized ComputeGPU NetworkEthereumArbitrumWeb3

Properties

Name Type Description
id string
type string Asset content type.
playbackId string
userId string
playbackUrl string
downloadUrl string
playbackPolicy object
source object
creatorId object
storage object
status object
name string
projectId string
createdAt number
createdByTokenName string
size number
hash array
videoSpec object
View JSON Schema on GitHub

JSON Schema

livepeer-asset-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/livepeer-com/json-schema/livepeer-asset-schema.json",
  "title": "Livepeer Asset",
  "description": "An on-demand video asset stored in Livepeer Studio. Captures source upload, transcoded video specifications, playback identity, and IPFS storage state.",
  "type": "object",
  "required": ["id", "name"],
  "properties": {
    "id": { "type": "string" },
    "type": {
      "type": "string",
      "enum": ["video", "audio"],
      "description": "Asset content type."
    },
    "playbackId": { "type": "string" },
    "userId": { "type": "string" },
    "playbackUrl": { "type": "string", "format": "uri" },
    "downloadUrl": { "type": "string", "format": "uri" },
    "playbackPolicy": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["public", "jwt", "webhook", "lit_signing_condition"]
        },
        "webhookId": { "type": "string" },
        "webhookContext": { "type": "object" },
        "refreshInterval": { "type": "number" },
        "allowedOrigins": {
          "type": "array",
          "items": { "type": "string" }
        }
      },
      "required": ["type"]
    },
    "source": {
      "oneOf": [
        {
          "type": "object",
          "required": ["type"],
          "properties": {
            "type": { "const": "url" },
            "url": { "type": "string", "format": "uri" },
            "encryption": {
              "type": "object",
              "properties": {
                "encryptedKey": { "type": "string" }
              }
            },
            "gatewayUrl": { "type": "string", "format": "uri" }
          }
        },
        {
          "type": "object",
          "required": ["type"],
          "properties": {
            "type": { "const": "recording" },
            "sessionId": { "type": "string" }
          }
        },
        {
          "type": "object",
          "required": ["type"],
          "properties": {
            "type": { "const": "directUpload" }
          }
        },
        {
          "type": "object",
          "required": ["type", "sourceId"],
          "properties": {
            "type": { "const": "clip" },
            "sessionId": { "type": "string" },
            "playbackId": { "type": "string" },
            "sourceId": { "type": "string" }
          }
        }
      ]
    },
    "creatorId": {
      "type": "object",
      "properties": {
        "type": { "type": "string", "enum": ["unverified", "verified"] },
        "value": { "type": "string" }
      }
    },
    "storage": {
      "type": "object",
      "properties": {
        "ipfs": {
          "type": "object",
          "properties": {
            "spec": {
              "type": "object",
              "properties": {
                "nftMetadataTemplate": {
                  "type": "string",
                  "enum": ["file", "player"]
                },
                "nftMetadata": { "type": "object" }
              }
            },
            "nftMetadata": {
              "type": "object",
              "properties": {
                "cid": { "type": "string" },
                "url": { "type": "string", "format": "uri" },
                "gatewayUrl": { "type": "string", "format": "uri" }
              }
            },
            "cid": { "type": "string" },
            "url": { "type": "string", "format": "uri" },
            "gatewayUrl": { "type": "string", "format": "uri" },
            "updatedAt": { "type": "number" }
          }
        },
        "status": {
          "type": "object",
          "properties": {
            "phase": {
              "type": "string",
              "enum": ["waiting", "processing", "ready", "failed", "reverted"]
            },
            "progress": { "type": "number" },
            "errorMessage": { "type": "string" },
            "tasks": {
              "type": "object",
              "properties": {
                "pending": { "type": "string" },
                "last": { "type": "string" },
                "failed": { "type": "string" }
              }
            }
          },
          "required": ["phase"]
        }
      }
    },
    "status": {
      "type": "object",
      "properties": {
        "phase": {
          "type": "string",
          "enum": ["waiting", "processing", "ready", "failed", "deleting", "deleted"]
        },
        "updatedAt": { "type": "number" },
        "progress": { "type": "number" },
        "errorMessage": { "type": "string" }
      },
      "required": ["phase", "updatedAt"]
    },
    "name": { "type": "string" },
    "projectId": { "type": "string" },
    "createdAt": { "type": "number" },
    "createdByTokenName": { "type": "string" },
    "size": { "type": "number" },
    "hash": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "hash": { "type": "string" },
          "algorithm": { "type": "string" }
        }
      }
    },
    "videoSpec": {
      "type": "object",
      "properties": {
        "format": { "type": "string" },
        "duration": { "type": "number" },
        "bitrate": { "type": "number" },
        "tracks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": { "type": "string", "enum": ["video", "audio"] },
              "codec": { "type": "string" },
              "startTime": { "type": "number" },
              "duration": { "type": "number" },
              "bitrate": { "type": "number" },
              "width": { "type": "integer" },
              "height": { "type": "integer" },
              "pixelFormat": { "type": "string" },
              "fps": { "type": "number" },
              "channels": { "type": "integer" },
              "sampleRate": { "type": "integer" },
              "bitDepth": { "type": "integer" }
            }
          }
        }
      }
    }
  }
}