Navegue pelos documentos do desenvolvedor

REST API

Carregar e compartilhar arquivos

Este tutorial pega um arquivo local chamado demo.mp4 e o transforma em um compartilhamento funcional URL. Conclua as etapas em ordem; cada resposta fornece um valor usado pela próxima solicitação.

1

Crie e salve uma chave API

Abra as configurações do desenvolvedor, selecione uploads:write, files:read, shares:write e shares:read e crie a chave. Copie agora – o segredo completo é mostrado apenas uma vez.

Escopos disponíveis: uploads:write, files:read, shares:write e shares:read.

Resultado esperado:Você tem um segredo que começa com o prefixo da chave Video2URL. Mantenha-o privado.
2

Prepare seu terminal

Coloque a chave em uma variável de ambiente para que ela não apareça em todos os comandos ou no histórico do shell. Substitua o espaço reservado antes de pressionar Enter.

Terminal
read -s VIDEO2URL_API_KEY
echo "key loaded"
Resultado esperado:O comando imprime a chave carregada, não o segredo em si.
3

Crie um trabalho de upload

Informe ao Video2URL o nome exato do arquivo, o tipo MIME e o tamanho do byte. Isso retorna um upload R2 temporário URL; ainda não carrega o vídeo.

POST /api/v1/uploads

curl
curl -sS -X POST https://video2url.com/api/v1/uploads \
  -H "Authorization: Bearer $VIDEO2URL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename":"demo.mp4","mimeType":"video/mp4","sizeBytes":1048576}'
Resultado esperado:Uma resposta JSON contendo data.uploadId e data.upload.url. Salve ambos os valores para as próximas etapas.
Save response values
export UPLOAD_ID="paste data.uploadId here"
export UPLOAD_URL="paste data.upload.url here"
4

Envie os bytes de vídeo

Carregue demo.mp4 diretamente para o URL temporário. Não adicione a chave Video2URL API a esta solicitação PUT. Use o Content-Type retornado pela resposta create-upload. Faça upload do arquivo bruto para o URL pré-assinado usando o tipo de conteúdo retornado.

curl · PUT
curl --fail-with-body -X PUT "$UPLOAD_URL" \
  -H "Content-Type: video/mp4" \
  --data-binary @demo.mp4
Resultado esperado:O servidor de upload retorna HTTP 200. Um corpo de resposta vazio é normal.
5

Conclua e verifique o upload

Após o sucesso do PUT, diga ao Video2URL para verificar o objeto armazenado e criar o registro do arquivo. Não chame esta etapa antes de PUT terminar.

POST /api/v1/uploads/{uploadId}/complete · GET /api/v1/uploads/{uploadId}

curl
curl -sS -X POST "https://video2url.com/api/v1/uploads/$UPLOAD_ID/complete" \
  -H "Authorization: Bearer $VIDEO2URL_API_KEY"
Resultado esperado:A resposta contém data.file.fileId. Salvar FILE_ID; ele identifica o arquivo concluído.
Save FILE_ID
export FILE_ID="paste data.file.fileId here"
6

Crie o compartilhamento final URL

Crie um link não listado de FILE_ID. Não listado significa que qualquer pessoa com o URL pode abri-lo, mas ele não está colocado em um diretório público.

  • O título é opcional.
  • A senha é opcional.
  • A visibilidade é opcional.
  • A visibilidade é padronizada como não listada.

POST /api/v1/shares · GET / DELETE /api/v1/shares/{shareId}

curl
curl -sS -X POST https://video2url.com/api/v1/shares \
  -H "Authorization: Bearer $VIDEO2URL_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{"fileId":"$FILE_ID","visibility":"unlisted"}"
Resultado esperado:A resposta contém o registro de compartilhamento e URL. Abra SHARE_URL em uma janela privada do navegador para verificá-lo.
Open SHARE_URL
export SHARE_URL="paste the returned share URL here"
open "$SHARE_URL" # macOS; use xdg-open on Linux

JavaScript & Python

Crie a chave mais estreita que você precisa. Faça uma rotação criando e implantando uma chave substituta antes de revogar a chave antiga. Se o acesso pago terminar, as chaves permanecem salvas, mas as chamadas são pausadas; renovar um plano elegível restaura o acesso.

JavaScript
const response = await fetch('https://video2url.com/api/v1/uploads', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.VIDEO2URL_API_KEY}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({ filename: 'demo.mp4', mimeType: 'video/mp4', sizeBytes: file.size }),
});
const created = await response.json();
Python
import os, requests
headers = {"Authorization": f"Bearer {os.environ['VIDEO2URL_API_KEY']}"}
created = requests.post("https://video2url.com/api/v1/uploads", headers=headers, json={"filename": "demo.mp4", "mimeType": "video/mp4", "sizeBytes": 1048576})
created.raise_for_status()
with open("demo.mp4", "rb") as video:
    requests.put(created.json()["data"]["upload"]["url"], data=video).raise_for_status()