Livepeer · Schema
Livepeer Stream
A live stream resource managed by Livepeer Studio. Combines ingest configuration, transcode profiles, recording settings, multistream targets, and playback identity into one resource.
VideoLive StreamingVideo On DemandAI VideoDecentralized ComputeGPU NetworkEthereumArbitrumWeb3
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Stable identifier of the stream. |
| name | string | Human-readable stream name. |
| kind | string | Resource kind discriminator. |
| creatorId | string | Optional creator identifier. |
| lastSeen | integer | Unix milliseconds of the last segment seen. |
| sourceSegments | integer | |
| transcodedSegments | integer | |
| sourceSegmentsDuration | number | |
| transcodedSegmentsDuration | number | |
| sourceBytes | integer | |
| transcodedBytes | integer | |
| ingestRate | number | Source bitrate in bits per second. |
| outputRate | number | Total output bitrate across renditions in bps. |
| deleted | boolean | |
| isActive | boolean | True while the stream is ingesting. |
| isHealthy | boolean | |
| issues | array | |
| createdByTokenName | string | |
| createdAt | integer | Unix milliseconds when the stream was created. |
| parentId | string | ID of the parent stream for session/child resources. |
| streamKey | string | Secret key used for RTMP/SRT ingest. |
| pull | object | Pull-ingest source configuration. |
| playbackId | string | Public identifier used by players to retrieve manifests. |
| profiles | array | |
| projectId | string | |
| record | boolean | Whether sessions should be recorded for VOD. |
| recordingSpec | object | |
| multistream | object | |
| playbackPolicy | object | |
| userTags | object | Free-form user metadata. |
| suspended | boolean | |
| userId | string |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://api-evangelist.github.io/livepeer-com/json-schema/livepeer-stream-schema.json",
"title": "Livepeer Stream",
"description": "A live stream resource managed by Livepeer Studio. Combines ingest configuration, transcode profiles, recording settings, multistream targets, and playback identity into one resource.",
"type": "object",
"required": ["name"],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "Stable identifier of the stream."
},
"name": {
"type": "string",
"minLength": 1,
"description": "Human-readable stream name."
},
"kind": {
"type": "string",
"enum": ["stream"],
"description": "Resource kind discriminator."
},
"creatorId": {
"type": "string",
"description": "Optional creator identifier."
},
"lastSeen": {
"type": "integer",
"description": "Unix milliseconds of the last segment seen."
},
"sourceSegments": { "type": "integer" },
"transcodedSegments": { "type": "integer" },
"sourceSegmentsDuration": { "type": "number" },
"transcodedSegmentsDuration": { "type": "number" },
"sourceBytes": { "type": "integer" },
"transcodedBytes": { "type": "integer" },
"ingestRate": {
"type": "number",
"description": "Source bitrate in bits per second."
},
"outputRate": {
"type": "number",
"description": "Total output bitrate across renditions in bps."
},
"deleted": { "type": "boolean" },
"isActive": {
"type": "boolean",
"description": "True while the stream is ingesting."
},
"isHealthy": { "type": "boolean" },
"issues": {
"type": "array",
"items": { "type": "string" }
},
"createdByTokenName": { "type": "string" },
"createdAt": {
"type": "integer",
"description": "Unix milliseconds when the stream was created."
},
"parentId": {
"type": "string",
"description": "ID of the parent stream for session/child resources."
},
"streamKey": {
"type": "string",
"description": "Secret key used for RTMP/SRT ingest."
},
"pull": {
"type": "object",
"description": "Pull-ingest source configuration.",
"properties": {
"source": { "type": "string", "format": "uri" },
"headers": {
"type": "object",
"additionalProperties": { "type": "string" }
},
"location": {
"type": "object",
"properties": {
"lat": { "type": "number" },
"lon": { "type": "number" }
}
}
},
"required": ["source"]
},
"playbackId": {
"type": "string",
"description": "Public identifier used by players to retrieve manifests."
},
"profiles": {
"type": "array",
"items": { "$ref": "#/$defs/ffmpegProfile" }
},
"projectId": { "type": "string" },
"record": {
"type": "boolean",
"description": "Whether sessions should be recorded for VOD."
},
"recordingSpec": {
"type": "object",
"properties": {
"profiles": {
"type": "array",
"items": { "$ref": "#/$defs/ffmpegProfile" }
}
}
},
"multistream": {
"type": "object",
"properties": {
"targets": {
"type": "array",
"items": { "$ref": "#/$defs/multistreamTargetRef" }
}
}
},
"playbackPolicy": { "$ref": "#/$defs/playbackPolicy" },
"userTags": {
"type": "object",
"description": "Free-form user metadata.",
"additionalProperties": { "type": "string" }
},
"suspended": { "type": "boolean" },
"userId": { "type": "string" }
},
"$defs": {
"ffmpegProfile": {
"type": "object",
"required": ["name", "width", "height", "bitrate", "fps"],
"properties": {
"name": { "type": "string" },
"width": { "type": "integer", "minimum": 128 },
"height": { "type": "integer", "minimum": 128 },
"bitrate": { "type": "integer", "minimum": 100 },
"fps": { "type": "integer", "minimum": 0 },
"fpsDen": { "type": "integer" },
"gop": { "type": "string" },
"profile": {
"type": "string",
"enum": ["H264Baseline", "H264Main", "H264High", "H264ConstrainedHigh"]
},
"encoder": {
"type": "string",
"enum": ["H.264", "HEVC", "VP8", "VP9"]
},
"quality": { "type": "integer" }
}
},
"multistreamTargetRef": {
"type": "object",
"required": ["profile"],
"properties": {
"profile": {
"type": "string",
"description": "Profile name to push to the multistream destination."
},
"videoOnly": { "type": "boolean" },
"id": {
"type": "string",
"description": "Existing multistream target ID."
},
"spec": {
"type": "object",
"properties": {
"name": { "type": "string" },
"url": { "type": "string", "format": "uri" }
},
"required": ["url"]
}
}
},
"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"]
}
}
}