Bläddra i utvecklardokument

REST API

Ladda upp och dela filer

Denna handledning tar en lokal fil med namnet demo.mp4 och förvandlar den till en fungerande resurs URL. Slutför stegen i ordning; varje svar tillhandahåller ett värde som används av nästa begäran.

1

Skapa och spara en API-nyckel

Öppna utvecklarinställningarna, välj uploads:write, files:read, shares:write och shares:read, skapa sedan nyckeln. Kopiera den nu – hela hemligheten visas bara en gång.

Tillgängliga omfång: uploads:write, files:read, shares:write och shares:read.

Förväntat resultat:Du har en hemlighet som börjar med nyckelprefixet Video2URL. Håll det privat.
2

Förbered din terminal

Sätt nyckeln i en miljövariabel så att den inte visas i varje kommando eller i din skalhistorik. Byt ut platshållaren innan du trycker på Enter.

Terminal
read -s VIDEO2URL_API_KEY
echo "key loaded"
Förväntat resultat:Kommandot skriver ut nyckeln laddad, inte själva hemligheten.
3

Skapa ett uppladdningsjobb

Berätta för Video2URL exakt filnamn, MIME-typ och bytestorlek. Detta returnerar en tillfällig R2-uppladdning URL; den laddar inte upp videon ännu.

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}'
Förväntat resultat:Ett JSON-svar som innehåller data.uploadId och data.upload.url. Spara båda värdena för nästa steg.
Save response values
export UPLOAD_ID="paste data.uploadId here"
export UPLOAD_URL="paste data.upload.url here"
4

Skicka videobytes

Upload demo.mp4 directly to the temporary URL. Lägg inte till nyckeln Video2URL API till denna PUT-förfrågan. Använd Content-Type som returneras av svaret skapa uppladdning. Ladda upp råfilen till den fördefinierade URL med den returnerade innehållstypen.

curl · PUT
curl --fail-with-body -X PUT "$UPLOAD_URL" \
  -H "Content-Type: video/mp4" \
  --data-binary @demo.mp4
Förväntat resultat:Uppladdningsservern returnerar HTTP 200. En tom svarstext är normalt.
5

Slutför och verifiera uppladdningen

När PUT har lyckats, be Video2URL att verifiera det lagrade objektet och skapa filposten. Anrop inte detta steg innan PUT är klar.

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"
Förväntat resultat:Svaret innehåller data.file.fileId. Spara FILE_ID; den identifierar den färdiga filen.
Save FILE_ID
export FILE_ID="paste data.file.fileId here"
6

Skapa den sista andelen URL

Skapa en olistad länk från FILE_ID. Olistad betyder att alla med URL kan öppna den, men den är inte placerad i en offentlig katalog.

  • Titeln är valfri.
  • Lösenord är valfritt.
  • Synlighet är valfritt.
  • Synlighet är som standard olistad.

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"}"
Förväntat resultat:Svaret innehåller delningsposten och URL. Open SHARE_URL in a private browser window to verify it.
Open SHARE_URL
export SHARE_URL="paste the returned share URL here"
open "$SHARE_URL" # macOS; use xdg-open on Linux

JavaScript & Python

Skapa den smalaste nyckeln du behöver. Rotera genom att skapa och distribuera en ersättning innan du återkallar den gamla nyckeln. Om betald åtkomst upphör förblir nycklarna sparade men samtalen pausas; att förnya en kvalificerad plan återställer åtkomsten.

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