Sfoglia documenti per sviluppatori

REST API

Carica e condividi file

Questo tutorial prende un file locale denominato demo.mp4 e lo trasforma in una condivisione di lavoro URL. Completa i passaggi in ordine; ogni risposta fornisce un valore utilizzato dalla richiesta successiva.

1

Crea e salva una chiave API

Apri le impostazioni sviluppatore, seleziona uploads:write, files:read, shares:write e shares:read, quindi crea la chiave. Copialo adesso: il segreto completo viene mostrato solo una volta.

Oscilloscopi disponibili: uploads:write, files:read, shares:write e shares:read.

Risultato previsto:Hai un segreto che inizia con il prefisso della chiave Video2URL. Mantienilo privato.
2

Prepara il tuo terminale

Inserisci la chiave in una variabile d'ambiente in modo che non appaia in ogni comando o nella cronologia della shell. Sostituisci il segnaposto prima di premere Invio.

Terminal
read -s VIDEO2URL_API_KEY
echo "key loaded"
Risultato previsto:Il comando stampa la chiave caricata, non il segreto stesso.
3

Crea un processo di caricamento

Indica a Video2URL il nome esatto del file, il tipo MIME e la dimensione in byte. Ciò restituisce un caricamento R2 temporaneo URL; non carica ancora il video.

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}'
Risultato previsto:Una risposta JSON contenente data.uploadId e data.upload.url. Salva entrambi i valori per i passaggi successivi.
Save response values
export UPLOAD_ID="paste data.uploadId here"
export UPLOAD_URL="paste data.upload.url here"
4

Invia i byte video

Carica demo.mp4 direttamente sullo URL temporaneo. Non aggiungere la chiave Video2URL API a questa richiesta PUT. Utilizza il Content-Type restituito dalla risposta create-upload. Carica il file raw nello URL prefirmato utilizzando il tipo di contenuto restituito.

curl · PUT
curl --fail-with-body -X PUT "$UPLOAD_URL" \
  -H "Content-Type: video/mp4" \
  --data-binary @demo.mp4
Risultato previsto:Il server di caricamento restituisce HTTP 200. Un corpo della risposta vuoto è normale.
5

Completa e verifica il caricamento

Dopo che PUT ha avuto esito positivo, indica a Video2URL di verificare l'oggetto memorizzato e creare il record del file. Non chiamare questo passaggio prima che PUT finisca.

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"
Risultato previsto:La risposta contiene data.file.fileId. Salva FILE_ID; identifica il file completato.
Save FILE_ID
export FILE_ID="paste data.file.fileId here"
6

Crea la condivisione finale URL

Crea un collegamento non elencato da FILE_ID. Non elencato significa che chiunque abbia lo URL può aprirlo, ma non è inserito in una directory pubblica.

  • Il titolo è facoltativo.
  • La password è facoltativa.
  • La visibilità è facoltativa.
  • La visibilità per impostazione predefinita è non elencata.

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"}"
Risultato previsto:La risposta contiene il record di condivisione e URL. Apri SHARE_URL in una finestra del browser privata per verificarlo.
Open SHARE_URL
export SHARE_URL="paste the returned share URL here"
open "$SHARE_URL" # macOS; use xdg-open on Linux

JavaScript & Python

Crea la chiave più stretta di cui hai bisogno. Ruota creando e distribuendo una sostituzione prima di revocare la vecchia chiave. Se termina l'accesso a pagamento, i tasti restano salvati ma le chiamate vengono messe in pausa; il rinnovo di un piano idoneo ripristina l'accesso.

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()