O upload de vídeos é iniciado através de uma requisição POST na rota <code>/v1/videos</code> Essa rota irá servir somente para a criação do upload, e não para fazer o upload propriamente dito. A partir da chamada dessa rota, serão retornados dados nos HEADERS da resposta que serão utilizados para realizar o upload.

 

O upload em si será feito pela rota /v1/videos/uploads/:id

 

Atualmente a API não aceita mais de um upload por vez.

Criação do Upload – POST

Route (Rota)

Método Rota Descrição
POST /v1/videos Rota para criação do upload.

* Token gerado pela rota de autenticação

Headers (Cabeçalho)

Param Tipo Descrição Obrigatório
Tus-Resumable String Versão do protocolo TUS. Enviar sempre 1.0.0 Sim
Upload-Length Number Tamanho do arquivo que será feito o upload (Em bytes). Sim
Upload-Metadata String “filename” seguido do nome do arquivo em base64.
Ex.: Nome do arquivo: teste_convertido => Upload-Metadata: filename dGVzdGUubXA0.
Sim
Content-Type String application/json Não
gallery String Uuid da galeria que o upload será feito posteriormente. Não
Authorization String Token authorization. Sim

Response (Resposta)

– Resposta ao realizar um upload (Status: 201)

Name Value
X-Powered-By Express
Tus-Resumable 1.0.0
Access-Control-Expose-Headers Authorization, Content-Type, Location, Tus-Extension, Tus-Max-Size, Tus-Resumable, Tus-Version, Upload-Defer-Length, Upload-Length, Upload-Metadata, Upload-Offset, X-HTTP-Method-Override, X-Requested-With
Location //localhost:15214/v1/videos/uploads/410b471ac3ed2ee0f8856e7aa4358ba4
Content-Length 0
Date Tue, 21 Jun 2022 13:09:10 GMT
Connection keep-alive
Keep-Alive timeout=5

– Resposta de erro ao não enviar campo obrigatório ou campo em formato incorreto (Status: 400)

{
   "error": "Bad Request"
}

– Resposta de erro ao se tentar realizar mais de upload por vez por aplicação (Status: 429)

{
   "error": "Too many simultaneous uploads, please send one file at a time"
}

– Resposta de erro por algum erro interno (Status: 500)

{
  "error": "Internal Server Error"
}

Realizar Upload – PATCH

Route (Rota)

Método Rota Descrição
PATCH /v1/videos/uploads/:id Rota para realizar o upload.

OBS: Nessa requisição deve ser passado o vídeo que for especificado em Upload-Metadata em sua forma binária. Como exemplo, no Insomnia, seria selecionando a opção ‘file’, e logo em seguida selecionando a opção ‘Binary file’, e depois selecionando o arquivo desejado.

Headers (Cabeçalho)

Param Tipo Descrição Obrigatório
Tus-Resumable String Versão do protocolo TUS. Enviar sempre 1.0.0 Sim
Content-Length Number Quantidade em bytes restantes a se fazer o upload. Sim
Upload-Offset Number Byte inicial para o upload (Caso seja a primeira requisição deve-se iniciar com 0, caso o upload tenha sido interrompido, deve-se continuar o upload de onde se parou, tal informação é disponibilizada pelo parâmetro Upload-Offset retornado na rota HEAD /v1/videos/uploads/:id). Sim
Upload-Metadata String “filename” seguido do nome do arquivo em base64. Ex.: Nome do arquivo: teste_convertido => Upload-Metadata: filename dGVzdGUubXA0. Sim
Content-Type String application/offset+octet-stream Sim
gallery String Uuid da galeria que o upload será feito posteriormente. Não
Authorization String Token authorization. Sim

Response (Resposta)

– Header da Resposta ao realizar um upload (Status: 201)

Name Value
X-Powered-By Express
Tus-Resumable 1.0.0
Access-Control-Expose-Headers Authorization, Content-Type, Location, Tus-Extension, Tus-Max-Size, Tus-Resumable, Tus-Version, Upload-Defer-Length, Upload-Length, Upload-Metadata, Upload-Offset, X-HTTP-Method-Override, X-Requested-With
Location //localhost:15214/v1/videos/uploads/410b471ac3ed2ee0f8856e7aa4358ba4
Content-Length 0
Date Tue, 21 Jun 2022 13:09:10 GMT
Connection keep-alive
Keep-Alive timeout=5

– Resposta de erro ao não enviar o upload-metadata corretamente (Status: 400)

{
    "error": "Bad Request"
}

– Resposta de erro ao se tentar realizar mais de upload por vez por aplicação (Status: 429)

{
    "error": "Too many simultaneous uploads, please send one file at a time"
}

– Resposta de erro por algum erro interno (Status: 500)

{
  "error": "Internal Server Error"
}

Retorna informações do Upload – HEAD

Route (Rota)

Método Rota Descrição
PATCH /v1/videos/uploads/:id Rota para realizar o upload.

Headers (Cabeçalho)

Param Tipo Descrição Obrigatório
Authorization String Token authorization. Sim
Tus-Resumable String Versão do protocolo TUS. Enviar sempre 1.0.0 Sim

Response (Resposta)

OBS: O parâmetro Upload_Offset retornado indica quantos bytes ja foram enviados, quando o Upload-Offset for igual ao Upload-length, o upload foi concluído.

– Header da Resposta ao realizar um upload (Status: 201)

Name Value
X-Powered-By Express
Tus-Resumable 1.0.0
Access-Control-Expose-Headers Authorization, Content-Type, Location, Tus-Extension, Tus-Max-Size, Tus-Resumable, Tus-Version, Upload-Defer-Length, Upload-Length, Upload-Metadata, Upload-Offset, X-HTTP-Method-Override, X-Requested-With
Location //localhost:15214/v1/videos/uploads/410b471ac3ed2ee0f8856e7aa4358ba4
Content-Length 0
Date Tue, 21 Jun 2022 13:09:10 GMT
Connection keep-alive
Keep-Alive timeout=5

– Resposta de erro por algum erro interno (Status: 500)

{
  "error": "Internal Server Error"
}

Leia em outros idiomas: English Português Español