Pular navegação

Recursos do vídeo

Pôsteres, legendas, anotações e materiais adicionais.

Posters

Criar pôster por tempo

POST https://api.kinescope.io/v1/videos/:video_id/posters

Gera 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.

Request body (json)
{
  "from_time": 2.3333
}

Definir pôster ativo

POST https://api.kinescope.io/v1/videos/:video_id/posters/:poster_id/active

Marca o pôster indicado como ativo — ele será exibido no player e nas listagens.

Lista de pôsteres

GET https://api.kinescope.io/v1/videos/:video_id/posters

Retorna a lista de pôsteres. Os resultados são paginados e podem ser filtrados por parâmetros de consulta.

Responses
{
  "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

GET https://api.kinescope.io/v1/videos/:video_id/posters/:poster_id

Retorna os dados de um pôster pelo seu identificador único.

Responses
{
  "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

DELETE https://api.kinescope.io/v1/videos/:video_id/posters/:poster_id

Exclui o pôster permanentemente. A ação não pode ser desfeita.

Subtitles

Adicionar arquivo de legendas

POST https://api.kinescope.io/v1/videos/:video_id/subtitles

Envia um arquivo de legendas (VTT ou SRT) e o anexa ao vídeo no idioma indicado.

Corpo (formdata)
ParâmetroTipoDescrição
languagetextExemplo: ru
descriptiontextExemplo: descrição do arquivo de legendas
filefile—
Responses
{
  "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

POST https://api.kinescope.io/v1/videos/:video_id/subtitles/auto

Coloca 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.

Corpo (json)
ParâmetroTipoDescrição
languagesarray of stringIdiomas a reconhecer, como códigos ISO 639-1. Uma faixa de legendas é criada por elemento. Exemplo: ["ru", "en"]
Request body (json)
{
  "languages": [
    "ru",
    "en"
  ]
}
Responses
{
  "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

POST https://api.kinescope.io/v1/videos/:video_id/subtitles/:subtitle_id/copy

Duplica uma faixa de legendas. Útil para criar uma variante a partir de uma tradução existente.

Responses
{
  "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

GET https://api.kinescope.io/v1/videos/:video_id/subtitles

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

Responses
{
  "data": null
}

Obter legenda

GET https://api.kinescope.io/v1/videos/:video_id/subtitles/:subtitle_id

Retorna os dados de uma legenda pelo seu identificador único.

Responses
{
  "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

PATCH https://api.kinescope.io/v1/videos/:video_id/subtitles/reorder

Altera a ordem das faixas de legendas. Envie a lista completa de IDs de legendas na ordem desejada.

Request body (json)
[
  "<UUID>",
  "<UUID>",
  "<UUID>",
  "<UUID>"
]
Responses
{
  "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

PATCH https://api.kinescope.io/v1/videos/:video_id/subtitles/:subtitle_id

Atualiza os metadados de uma faixa de legendas (idioma, descrição, ordem).

Request body (json)
{
  "language": "ru",
  "description": "desc111"
}
Responses
{
  "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

DELETE https://api.kinescope.io/v1/videos/:video_id/subtitles/:subtitle_id

Exclui a legenda permanentemente. A ação não pode ser desfeita.

Responses
{
  "data": {
    "success": true
  }
}

Annotations

Adicionar anotação

POST https://api.kinescope.io/v1/videos/:video_id/annotations

Cria uma anotação. Em caso de sucesso, retorna o objeto criado.

Request body (json)
{
  "video_id": "<UUID>",
  "annotation_poster_id": "<UUID>",
  "type": "video",
  "title": "new annotation",
  "link": "https://example.com",
  "start_time": 0,
  "end_time": 10000
}
Responses
{
  "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

GET https://api.kinescope.io/v1/videos/:video_id/annotations/:annotation_id

Retorna os dados de uma anotação pelo seu identificador único.

Responses
{
  "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

GET https://api.kinescope.io/v1/videos/:video_id/annotations

Retorna a lista de anotações. Os resultados são paginados e podem ser filtrados por parâmetros de consulta.

Responses
{
  "data": []
}

Atualizar anotação

PUT https://api.kinescope.io/v1/videos/:video_id/annotations/:annotation_id

Atualiza a anotação indicada. Só os campos enviados no corpo da requisição são alterados; os demais ficam como estão.

Request body (json)
{
  "video_id": "<UUID>",
  "annotation_poster_id": "<UUID>",
  "title": "new annotation",
  "link": "https://example.com",
  "start_time": 0,
  "end_time": 10000
}
Responses
{
  "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

DELETE https://api.kinescope.io/v1/videos/:video_id/annotations/:annotation_id

Exclui a anotação permanentemente. A ação não pode ser desfeita.

Responses
{
  "data": {
    "success": true
  }
}

Additional materials

Enviar material adicional

POST https://uploader.kinescope.io/additional-material

Envia um arquivo para anexar a um vídeo como material adicional (por exemplo, um PDF de apoio ou arquivos de origem).

Cabeçalhos
ParâmetroDescrição
X-Video-ID4iUMUmb63dLAvnbsMRkSUX
X-File-Namematerial.png
X-TitleTítulo do material
GET https://api.kinescope.io/v1/additional-materials/:material_id/link

Retorna uma URL assinada de curta duração para baixar o material.

Responses
{
  "data": {
    "link": "https://kinescopecdn.net/<UUID>/materials/<UUID>?expires=<EXPIRES>&sign=<SIGNATURE>"
  }
}

Atualizar material adicional

PUT https://api.kinescope.io/v1/additional-materials/:material_id

Atualiza o material adicional indicado. Só os campos enviados no corpo da requisição são alterados; os demais ficam como estão.

Request body (json)
{
  "title": "New title"
}
Responses
{
  "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

PATCH https://api.kinescope.io/v1/additional-materials/reorder

Altera a ordem de exibição dos materiais adicionais anexados a um vídeo.

Request body (json)
[
  "8VYZT2rW5vbvRBcWruuNFo",
  "b32Wjbh6a3pYNaKvfxhXFU"
]
Responses
{
  "data": {
    "success": true
  }
}

Excluir material adicional

DELETE https://api.kinescope.io/v1/additional-materials/:material_id

Exclui o material adicional permanentemente. A ação não pode ser desfeita.

Responses
{
  "data": {
    "success": true
  }
}

Posters

Enviar pôster

POST https://uploader.kinescope.io/v2/poster

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

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