Pular navegação

Eventos e streams

Eventos, programação, chat e QoS.

Live

O objeto evento

CampoTipoDescrição
idstringIdentificador único do objeto.
typestringValores possíveis: one-time, recurring

Criar evento

POST {{baseHost}}/v2/live/events

Cria um evento ao vivo. O evento fica no estado draft até ser agendado e ativado.

Criar um evento

CampoTipoDescrição
namestringNome do evento. Obrigatório
typestringValores possíveis: recurring, one-time. Obrigatório
parent_idUUIDID do projeto ou da pasta do evento. Não obrigatório
auto_startbooleanInício automático da transmissão. Padrão false. Não obrigatório
protectedbooleanAtiva a criptografia da transmissão. Padrão false. Não obrigatório
time_shiftbooleanPadrão false. Não obrigatório
reconnect_windowintegerPadrão 600 segundos. Não obrigatório
scheduledobjectConfigurações do evento agendado. Chaves disponíveis — 'time'
'time' — hora de início da transmissão. Não obrigatório
recordobjectConfigurações para salvar os vídeos depois do fim da transmissão. Não obrigatório. Chaves disponíveis — 'parent_id'.
'parent_id' — ID do projeto ou da pasta onde o vídeo vai ficar depois do fim da transmissão. Não obrigatório
videoobjectConfigurações do vídeo. Não obrigatório. Chaves disponíveis — 'presets'.
'presets' — array de strings. Escolha as qualidades dos vídeos. Valores possíveis — 360p 480p 720p 1080p 1440p 2160p. Não obrigatório
restreams[]object{}Não obrigatório. Cada objeto tem as chaves — "name", "url", "key", "description", "enabled".
"name" — string. Obrigatório
"url" — string. Obrigatório
"key" — string. Obrigatório
"description" — string. Não obrigatório
"enabled" — boolean. Não obrigatório
latency_modestringValores possíveis: standard, reduced. Padrão 'standard'. Não obrigatório.
show_membersboolExibir/ocultar os participantes do chat. Padrão true.
chat_activeboolChat ativado/desativado depois do fim da transmissão. Padrão false.
chat_after_streamboolExibir/ocultar o chat depois do fim da transmissão. Padrão true.
chat_previewboolExibir/ocultar o chat na pré-visualização do vídeo. Padrão true.
Request body (json)
{  "name": "New event",  "type": "recurring",  "auto_start": true,  "protected": false,  "time_shift": false,  "parent_id": "<UUID>",  "reconnect_window": 600,  "scheduled": {    "time": "2022-12-19T00:05:41.634922Z"  },  "record": {    "parent_id": "<UUID>"  },  "video": {    "presets": [      "360p",      "1080p"    ]  },  "restreams": [    {      "name": "Restream 1",      "url": "rtmp://rtmp.kinescope.dev/live",      "key": "stream key"    }  ],  "latency_mode": "standard",  "show_members": true,  "chat_active": false,  "chat_after_stream": true,  "chat_preview": true}
Responses
{  "data": {    "id": "<UUID>",    "workspace_id": "<UUID>",    "parent_id": "<UUID>",    "name": "New event",    "subtitle": "New subtitle",    "type": "recurring",    "streamkey": "a6739c5535504feaa45da338dc62f752",    "auto_start": true,    "protected": false,    "time_shift": false,    "chat_after_stream": true,    "chat_active": true,    "record": {      "parent_id": "<UUID>"    },    "video": {      "presets": null    },    "audio": {      "channel_mapping": null    },    "restreams": [      {        "id": "<UUID>",        "event_id": "<UUID>",        "name": "Restream 1",        "url": "rtmp://rtmp.kinescope.dev/live",        "key": "stream key",        "status": "disconnected",        "enabled": true,        "description": "",        "created_at": "2022-11-15T12:25:04.095926Z",        "updated_at": null      }    ],    "reconnect_window": 1800,    "play_link": "https://kinescope.dev/200527222",    "rtmp_link": "rtmp://rtmp.kinescope.dev/live",    "scheduled": {      "time": "2022-12-19T00:05:41.634922Z"    },    "stream": {      "id": "<UUID>",      "event_id": "<UUID>",      "status": "pending",      "started_at": "2022-12-19T00:05:41.634922Z",      "finished_at": null    },    "created_at": "2022-11-15T12:25:04.095926Z",    "updated_at": null,    "latency_mode": "standard",    "poster": {      "id": "<UUID>",      "type": "image",      "status": "done",      "active": true,      "original": "https://static.kinescopecdn.net/assets/event_default_poster.png",      "md": "https://static.kinescopecdn.net/assets/event_default_poster.png",      "sm": "https://static.kinescopecdn.net/assets/event_default_poster.png",      "xs": "https://static.kinescopecdn.net/assets/event_default_poster.png",      "from_time": 0,      "to_time": 0    }  }}

Atualizar evento

PUT {{baseHost}}/v2/live/events/:event_id

Atualiza as propriedades de um evento ao vivo (título, descrição, horário agendado, retransmissões e outras).

Request body (json)
{  "name": ""}
Responses
{  "data": {    "id": "<UUID>",    "workspace_id": "<UUID>",    "parent_id": "<UUID>",    "name": "Update event",    "subtitle": "Update subtitle",    "type": "recurring",    "streamkey": "a6739c5535504feaa45da338dc62f752",    "auto_start": true,    "protected": false,    "time_shift": false,    "chat_after_stream": true,    "record": {      "parent_id": "<UUID>"    },    "video": {      "presets": null    },    "audio": {      "channel_mapping": null    },    "restreams": [      {        "id": "<UUID>",        "event_id": "<UUID>",        "name": "Restream 1",        "url": "rtmp://rtmp.kinescope.dev/live",        "key": "stream key",        "status": "disconnected",        "enabled": true,        "description": "",        "created_at": "2022-11-15T12:25:04.095926Z",        "updated_at": null      }    ],    "reconnect_window": 1800,    "play_link": "https://kinescope.dev/200527222",    "rtmp_link": "rtmp://rtmp.kinescope.dev/live",    "scheduled": {      "time": "2023-12-19T00:05:41.634922Z"    },    "stream": {      "id": "<UUID>",      "event_id": "<UUID>",      "status": "pending",      "started_at": "2023-12-19T00:05:41.634922Z",      "finished_at": null    },    "created_at": "2022-11-15T12:25:04.095926Z",    "updated_at": "2022-11-15T12:30:53.449823Z",    "latency_mode": "standard",    "poster": {      "id": "<UUID>",      "type": "image",      "status": "done",      "active": true,      "original": "https://static.kinescopecdn.net/assets/event_default_poster.png",      "md": "https://static.kinescopecdn.net/assets/event_default_poster.png",      "sm": "https://static.kinescopecdn.net/assets/event_default_poster.png",      "xs": "https://static.kinescopecdn.net/assets/event_default_poster.png",      "from_time": 0,      "to_time": 0    }  }}

Obter evento

GET {{baseHost}}/v2/live/events/:event_id

Retorna os dados de um evento ao vivo pelo seu identificador único.

Responses
{  "data": {    "id": "<UUID>",    "workspace_id": "<UUID>",    "parent_id": "<UUID>",    "name": "Novo evento",    "subtitle": "",    "type": "one-time",    "streamkey": "5cbb30742b9b4a02971abd4cdd7fb22f",    "auto_start": false,    "protected": false,    "time_shift": true,    "record": {      "parent_id": null    },    "video": {      "presets": []    },    "audio": {      "channel_mapping": null    },    "restreams": [      {        "id": "<UUID>",        "event_id": "<UUID>",        "name": "23234",        "url": "rtmp://rtmp.kinescope.io/live",        "key": "23234234",        "status": "disconnected",        "enabled": false,        "description": "",        "created_at": "2026-03-03T10:55:22.991595Z",        "updated_at": "2026-03-03T11:10:05.345611Z"      }    ],    "reconnect_window": 600,    "play_link": "https://kinescope.io/0cxfXwkKh4Wzzd1boAnQFE",    "rtmp_link": "rtmp://rtmp.kinescope.io/live",    "scheduled": {      "time": null    },    "stream": {      "id": "<UUID>",      "event_id": "<UUID>",      "status": "pending",      "started_at": "2026-02-18T17:50:37.774745Z",      "finished_at": null    },    "chat_after_stream": true,    "chat_active": true,    "chat_preview": true,    "show_members": true,    "created_at": "2026-02-18T17:50:37.774745Z",    "updated_at": "2026-03-14T11:23:19.777707Z",    "latency_mode": "standard",    "allow_chat_links": false,    "moderators": null,    "poster": {      "id": "<UUID>",      "type": "image",      "media_id": "<UUID>",      "status": "done",      "active": true,      "original": "https://kinescopecdn.net/<UUID>/posters/<UUID>/<UUID>.jpg",      "md": "https://kinescopecdn.net/<UUID>/posters/<UUID>/md/<UUID>.jpg",      "sm": "https://kinescopecdn.net/<UUID>/posters/<UUID>/sm/<UUID>.jpg",      "xs": "https://kinescopecdn.net/<UUID>/posters/<UUID>/xs/<UUID>.jpg",      "from_time": 0,      "to_time": 0    }  }}
{  "error": {    "code": 400404,    "message": "not found"  }}

Listar eventos

GET {{baseHost}}/v2/live/events

Retorna a lista de eventos ao vivo. Os resultados são paginados e podem ser filtrados por parâmetros de consulta.

Responses
{  "meta": {    "pagination": {      "page": 1,      "per_page": 100,      "total": 0    },    "order": {      "created_at": "desc",      "name": "asc"    }  },  "data": []}

Vídeos do evento

GET {{baseHost}}/v2/live/events/:event_id/videos

Retorna as gravações geradas pelo evento, ordenadas por data de criação.

Responses
{  "meta": {    "pagination": {      "page": 1,      "per_page": 10,      "total": 0    },    "order": {      "created_at": "desc"    }  },  "data": []}

Ativar evento

PUT {{baseHost}}/v2/live/events/:event_id/enable

Ativa o evento para que as transmissões possam ser recebidas e reproduzidas.

Encerrar evento

PUT {{baseHost}}/v2/live/events/:event_id/complete

Marca o evento como concluído. Os endpoints de recebimento param de aceitar transmissões.

Agendar nova transmissão

POST {{baseHost}}/v2/live/events/:event_id/stream

Agenda uma nova transmissão dentro do evento. Retorna a URL de recebimento e a chave de transmissão.

Request body (json)
{  "started_at": "2022-11-15T12:42:00.991558Z"}
Responses
{  "data": {    "id": "<UUID>",    "event_id": "<UUID>",    "status": "pending",    "started_at": "2022-11-15T12:42:00.991558Z",    "finished_at": null  }}

Atualizar agendamento da transmissão

PUT {{baseHost}}/v2/live/events/:event_id/stream

Atualiza o agendamento de uma transmissão futura (hora de início, duração prevista).

Request body (json)
{  "started_at": "2024-11-15T12:42:00.991558Z"}
Responses
{  "data": {    "id": "<UUID>",    "event_id": "<UUID>",    "status": "pending",    "started_at": "2024-11-15T12:42:00.991558Z",    "finished_at": null  }}

Excluir evento

DELETE {{baseHost}}/v2/live/events/:event_id

Exclui o evento ao vivo permanentemente. A ação não pode ser desfeita.

Mover evento

PUT {{baseHost}}/v2/live/events/:event_id/move

Move o evento para outro projeto ou outra pasta.

Request body (json)
{  "parent_id": "<UUID>"}
Responses
{  "data": {    "id": "<UUID>",    "workspace_id": "<UUID>",    "parent_id": "<UUID>",    "name": "Update event",    "type": "recurring",    "streamkey": "a6739c5535504feaa45da338dc62f752",    "auto_start": true,    "protected": false,    "time_shift": false,    "chat_after_stream": true,    "chat_active": true,    "record": {      "parent_id": "<UUID>"    },    "video": {      "presets": null    },    "audio": {      "channel_mapping": null    },    "restreams": [      {        "id": "<UUID>",        "event_id": "<UUID>",        "name": "Restream 1",        "url": "rtmp://rtmp.kinescope.dev/live",        "key": "stream key",        "status": "disconnected",        "enabled": true,        "description": "",        "created_at": "2022-11-15T12:25:04.095926Z",        "updated_at": null      }    ],    "reconnect_window": 1800,    "play_link": "https://kinescope.dev/200527222",    "rtmp_link": "rtmp://rtmp.kinescope.dev/live",    "scheduled": {      "time": null    },    "stream": {      "id": "<UUID>",      "event_id": "<UUID>",      "status": "pending",      "started_at": "2024-11-15T12:42:00.991558Z",      "finished_at": null    },    "created_at": "2022-11-15T12:25:04.095926Z",    "updated_at": "2022-11-15T12:46:31.301738Z",    "latency_mode": "standard"  }}

Enviar pôster

POST {{uploadHost}}/v2/poster

Envia uma imagem de pôster personalizada para um evento ao vivo.

Cabeçalhos
ParâmetroDescrição
X-Event-ID4iUMUmb63dLAvnbsMRkSUX
X-Poster-URLurl do pôster

Qos

GET {{baseHost}}/v2/live/events/:event_id/qos

Retorna as estatísticas de qualidade de serviço do evento (bitrate, quadros perdidos, latência).

status:

  • 4 — diferença de tempo entre quadros-chave > 50%
  • 3 — diferença de tempo entre quadros-chave > 20%
  • 5 — perda de pacotes (causas possíveis: problemas de rede ou o codificador do streamer não dá conta do vídeo)
Responses
{  "data": [    {      "bitrate_video": 2438,      "bitrate_audio": 156,      "frame_rate": 30,      "status": 0,      "time": "2024-03-07T09:01:30Z"    },    {      "bitrate_video": 2438,      "bitrate_audio": 156,      "frame_rate": 30,      "status": 0,      "time": "2024-03-07T09:02:00Z"    }  ]}

Chat

GET {{baseHost}}/v2/live/events/:event_id/stream/:stream_id/chat(.json|.csv|.txt)

Retorna o registro do chat do evento no formato solicitado — JSON, CSV ou texto puro.

Responses
{  "data": [    {      "id": "<UUID>",      "username": "Arseniy",      "external_id": "kinescope_admin_e3ec44ca-8d9f-4ca9-a36f-69bfcae502a7",      "is_admin": "true",      "message": "ewd",      "created_at": "2025-02-26T08:16:38.21562Z",      "cteated_at_local": "2025-02-26T08:16:38.21562Z"    },    {      "id": "<UUID>",      "username": "Arseniy",      "external_id": "kinescope_admin_e3ec44ca-8d9f-4ca9-a36f-69bfcae502a7",      "is_admin": "true",      "message": "wde",      "created_at": "2025-02-26T08:16:38.722139Z",      "cteated_at_local": "2025-02-26T08:16:38.722139Z"    },    {      "id": "<UUID>",      "username": "Arseniy",      "external_id": "kinescope_admin_e3ec44ca-8d9f-4ca9-a36f-69bfcae502a7",      "is_admin": "true",      "message": "wde",      "created_at": "2025-02-26T08:16:39.12707Z",      "cteated_at_local": "2025-02-26T08:16:39.12707Z"    },    {      "id": "<UUID>",      "username": "Arseniy",      "external_id": "kinescope_admin_e3ec44ca-8d9f-4ca9-a36f-69bfcae502a7",      "is_admin": "true",      "message": "wde",      "created_at": "2025-02-26T08:16:39.451017Z",      "cteated_at_local": "2025-02-26T08:16:39.451017Z"    },    {      "id": "<UUID>",      "username": "asasas",      "external_id": "<UUID>",      "is_admin": "false",      "message": "dcad",      "created_at": "2025-02-26T08:17:56.752304Z",      "cteated_at_local": "2025-02-26T08:17:56.752304Z"    }  ]}