Posters
Criar pôster por tempo
https://api.kinescope.io/v1/videos/:video_id/postersGera uma imagem de pôster a partir de um quadro do vídeo no tempo indicado. O pôster é anexado ao vídeo e pode ser marcado como ativo.
{
"from_time": 2.3333
}Definir pôster ativo
https://api.kinescope.io/v1/videos/:video_id/posters/:poster_id/activeMarca o pôster indicado como ativo — ele será exibido no player e nas listagens.
Lista de pôsteres
https://api.kinescope.io/v1/videos/:video_id/postersRetorna a lista de pôsteres. Os resultados são paginados e podem ser filtrados por parâmetros de consulta.
{
"meta": {
"pagination": {
"page": 1,
"per_page": 10,
"total": 1
},
"order": {
"created_at": "desc"
}
},
"data": [
{
"id": "<UUID>",
"type": "image",
"from_time": 0,
"status": "done",
"active": true,
"to_time": 0,
"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"
}
]
}Obter pôster
https://api.kinescope.io/v1/videos/:video_id/posters/:poster_idRetorna os dados de um pôster pelo seu identificador único.
{
"data": {
"id": "<UUID>",
"type": "image",
"from_time": 0,
"status": "done",
"active": true,
"to_time": 0,
"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"
}
}{
"error": {
"code": 400404,
"message": "not found"
}
}Excluir pôster
https://api.kinescope.io/v1/videos/:video_id/posters/:poster_idExclui o pôster permanentemente. A ação não pode ser desfeita.
Subtitles
Adicionar arquivo de legendas
https://api.kinescope.io/v1/videos/:video_id/subtitlesEnvia um arquivo de legendas (VTT ou SRT) e o anexa ao vídeo no idioma indicado.
| Parâmetro | Tipo | Descrição |
|---|---|---|
language | text | Exemplo: ru |
description | text | Exemplo: descrição do arquivo de legendas |
file | file | — |
{
"data": {
"id": "<UUID>",
"video_id": "<UUID>",
"description": "descrição do arquivo de legendas",
"language": "ru",
"file": "",
"file_name": "<UUID>.vtt",
"hls_file": "",
"url": "https://kinescopecdn.net/<UUID>/subtitles/<UUID>/<UUID>?expires=<EXPIRES>&sign=<SIGNATURE>"
}
}Gerar legendas automaticamente
https://api.kinescope.io/v1/videos/:video_id/subtitles/autoColoca na fila o reconhecimento de fala do vídeo e cria uma faixa de legendas por idioma solicitado. Envie os idiomas como códigos ISO 639-1 em languages; um código desconhecido é recusado com 400, e ou todas as faixas são criadas, ou nenhuma.
A resposta volta na hora, antes de o reconhecimento começar, então cada faixa vem com status: "pending", um objeto data vazio e url vazia. Consulte GET /v1/videos/:video_id/subtitles/:subtitle_id até que status fique done — é nesse momento que aparecem as falas reconhecidas e a URL do .vtt.
| Parâmetro | Tipo | Descrição |
|---|---|---|
languages | array of string | Idiomas a reconhecer, como códigos ISO 639-1. Uma faixa de legendas é criada por elemento. Exemplo: ["ru", "en"] |
{
"languages": [
"ru",
"en"
]
}{
"data": [
{
"id": "<UUID>",
"video_id": "<UUID>",
"description": "",
"language": "ru",
"status": "pending",
"position": 1,
"data": {},
"active": true,
"url": "",
"updated_at": "2024-03-04T11:54:32.451502Z",
"file": "",
"file_name": "<UUID>.vtt",
"hls_file": ""
}
]
}Copiar
https://api.kinescope.io/v1/videos/:video_id/subtitles/:subtitle_id/copyDuplica uma faixa de legendas. Útil para criar uma variante a partir de uma tradução existente.
{
"data": {
"id": "<UUID>",
"video_id": "<UUID>",
"description": "desc",
"language": "ru",
"file": "",
"file_name": null,
"hls_file": "",
"url": "https://kinescopecdn.net/<UUID>/subtitles/<UUID>/<UUID>?expires=<EXPIRES>&sign=<SIGNATURE>"
}
}Listar legendas
https://api.kinescope.io/v1/videos/:video_id/subtitlesRetorna a lista de legendas. Os resultados são paginados e podem ser filtrados por parâmetros de consulta.
{
"data": null
}Obter legenda
https://api.kinescope.io/v1/videos/:video_id/subtitles/:subtitle_idRetorna os dados de uma legenda pelo seu identificador único.
{
"data": {
"id": "<UUID>",
"video_id": "<UUID>",
"description": "descrição do arquivo de legendas",
"language": "ru",
"file": "",
"file_name": "<UUID>.vtt",
"hls_file": "",
"url": "https://kinescopecdn.net/<UUID>/subtitles/<UUID>/<UUID>?expires=<EXPIRES>&sign=<SIGNATURE>"
}
}Reordenar
https://api.kinescope.io/v1/videos/:video_id/subtitles/reorderAltera a ordem das faixas de legendas. Envie a lista completa de IDs de legendas na ordem desejada.
[
"<UUID>",
"<UUID>",
"<UUID>",
"<UUID>"
]{
"data": {
"id": "<UUID>",
"video_id": "<UUID>",
"description": "descrição do arquivo de legendas",
"language": "ru",
"file": "",
"file_name": "<UUID>.vtt",
"hls_file": "",
"url": "https://kinescopecdn.net/<UUID>/subtitles/<UUID>/<UUID>?expires=<EXPIRES>&sign=<SIGNATURE>"
}
}Atualizar dados da legenda
https://api.kinescope.io/v1/videos/:video_id/subtitles/:subtitle_idAtualiza os metadados de uma faixa de legendas (idioma, descrição, ordem).
{
"language": "ru",
"description": "desc111"
}{
"data": {
"id": "<UUID>",
"video_id": "<UUID>",
"description": "desc",
"language": "ru",
"file": "",
"file_name": null,
"hls_file": "",
"url": "https://kinescopecdn.net/<UUID>/subtitles/<UUID>/<UUID>?expires=<EXPIRES>&sign=<SIGNATURE>"
}
}Excluir legenda
https://api.kinescope.io/v1/videos/:video_id/subtitles/:subtitle_idExclui a legenda permanentemente. A ação não pode ser desfeita.
{
"data": {
"success": true
}
}Annotations
Adicionar anotação
https://api.kinescope.io/v1/videos/:video_id/annotationsCria uma anotação. Em caso de sucesso, retorna o objeto criado.
{
"video_id": "<UUID>",
"annotation_poster_id": "<UUID>",
"type": "video",
"title": "new annotation",
"link": "https://example.com",
"start_time": 0,
"end_time": 10000
}{
"data": {
"id": "<UUID>",
"media_id": "<UUID>",
"video_id": "<UUID>",
"annotation_type": "video",
"title": "annotation 1",
"link": "",
"start_time": 20000,
"end_time": 21000,
"annotation_poster_id": null,
"created_at": "2024-03-04T11:54:32.451502Z",
"updated_at": null
}
}Obter anotação
https://api.kinescope.io/v1/videos/:video_id/annotations/:annotation_idRetorna os dados de uma anotação pelo seu identificador único.
{
"data": {
"id": "<UUID>",
"media_id": "<UUID>",
"video_id": null,
"annotation_type": "text",
"title": "ann1",
"link": "",
"start_time": 0,
"end_time": 6740,
"annotation_poster_id": "<UUID>",
"created_at": "2024-02-27T10:04:30.259938Z",
"updated_at": null
}
}Listar anotações
https://api.kinescope.io/v1/videos/:video_id/annotationsRetorna a lista de anotações. Os resultados são paginados e podem ser filtrados por parâmetros de consulta.
{
"data": []
}Atualizar anotação
https://api.kinescope.io/v1/videos/:video_id/annotations/:annotation_idAtualiza a anotação indicada. Só os campos enviados no corpo da requisição são alterados; os demais ficam como estão.
{
"video_id": "<UUID>",
"annotation_poster_id": "<UUID>",
"title": "new annotation",
"link": "https://example.com",
"start_time": 0,
"end_time": 10000
}{
"data": {
"id": "<UUID>",
"media_id": "<UUID>",
"video_id": "<UUID>",
"annotation_type": "video",
"title": "annotation 1",
"link": "",
"start_time": 20000,
"end_time": 21000,
"annotation_poster_id": null,
"created_at": "2024-03-04T11:54:32.451502Z",
"updated_at": null
}
}Excluir anotação
https://api.kinescope.io/v1/videos/:video_id/annotations/:annotation_idExclui a anotação permanentemente. A ação não pode ser desfeita.
{
"data": {
"success": true
}
}Additional materials
Enviar material adicional
https://uploader.kinescope.io/additional-materialEnvia um arquivo para anexar a um vídeo como material adicional (por exemplo, um PDF de apoio ou arquivos de origem).
| Parâmetro | Descrição |
|---|---|
X-Video-ID | 4iUMUmb63dLAvnbsMRkSUX |
X-File-Name | material.png |
X-Title | Título do material |
Obter link de download
https://api.kinescope.io/v1/additional-materials/:material_id/linkRetorna uma URL assinada de curta duração para baixar o material.
{
"data": {
"link": "https://kinescopecdn.net/<UUID>/materials/<UUID>?expires=<EXPIRES>&sign=<SIGNATURE>"
}
}Atualizar material adicional
https://api.kinescope.io/v1/additional-materials/:material_idAtualiza o material adicional indicado. Só os campos enviados no corpo da requisição são alterados; os demais ficam como estão.
{
"title": "New title"
}{
"data": {
"id": "8VYZT2rW5vbvRBcWruuNFo",
"video_id": "fq48rAScQ5zAYKJ2gYHZ3w",
"storage_id": "mucjva43n3sLsw5YRwsZYS",
"title": "New title",
"filename": "img.png",
"filetype": "image/png",
"size": 163427,
"position": 1,
"created_at": "2020-08-30T15:14:03.792708Z",
"updated_at": "2020-08-31T10:22:43.67869Z",
"deleted_at": null
}
}Reordenar materiais adicionais
https://api.kinescope.io/v1/additional-materials/reorderAltera a ordem de exibição dos materiais adicionais anexados a um vídeo.
[
"8VYZT2rW5vbvRBcWruuNFo",
"b32Wjbh6a3pYNaKvfxhXFU"
]{
"data": {
"success": true
}
}Excluir material adicional
https://api.kinescope.io/v1/additional-materials/:material_idExclui o material adicional permanentemente. A ação não pode ser desfeita.
{
"data": {
"success": true
}
}Posters
Enviar pôster
https://uploader.kinescope.io/v2/posterEnvia uma imagem de pôster personalizada para um evento ao vivo.
| Parâmetro | Descrição |
|---|---|
X-Video-ID | 4iUMUmb63dLAvnbsMRkSUX |
X-Poster-URL | url do pôster |