Przeglądaj dokumentację programisty

REST API

Przesyłaj i udostępniaj pliki

Ten samouczek wykorzystuje jeden plik lokalny o nazwie demo.mp4 i przekształca go w działający udział URL. Wykonaj kroki w podanej kolejności; każda odpowiedź dostarcza wartość używaną w następnym żądaniu.

1

Utwórz i zapisz klucz API

Otwórz ustawienia programisty, wybierz przesyłanie:zapis, pliki:czytanie, udziały:zapis i udziały:czytanie, a następnie utwórz klucz. Skopiuj go teraz — cały sekret zostanie wyświetlony tylko raz.

Dostępne zakresy: uploads:write, files:read, shares:write i shares:read.

Oczekiwany wynik:Masz sekret zaczynający się od prefiksu klucza Video2URL. Zachowaj prywatność.
2

Przygotuj terminal

Umieść klucz w zmiennej środowiskowej, aby nie pojawiał się w każdym poleceniu ani w historii powłoki. Zastąp symbol zastępczy przed naciśnięciem klawisza Enter.

Terminal
read -s VIDEO2URL_API_KEY
echo "key loaded"
Oczekiwany wynik:Polecenie wypisuje załadowany klucz, a nie sam sekret.
3

Utwórz zadanie przesyłania

Podaj Video2URL dokładną nazwę pliku, typ MIME i rozmiar bajtów. Zwraca to tymczasowe przesłanie R2 URL; nie przesyła jeszcze filmu.

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}'
Oczekiwany wynik:Odpowiedź JSON zawierająca data.uploadId i data.upload.url. Zapisz obie wartości do następnych kroków.
Save response values
export UPLOAD_ID="paste data.uploadId here"
export UPLOAD_URL="paste data.upload.url here"
4

Wyślij bajty wideo

Prześlij demo.mp4 bezpośrednio do tymczasowego URL. Nie dodawaj klucza API Video2URL do tego żądania PUT. Użyj typu zawartości zwróconego przez odpowiedź tworzenia-przesyłania. Prześlij surowy plik do wcześniej wyznaczonego URL, używając zwróconego typu zawartości.

curl · PUT
curl --fail-with-body -X PUT "$UPLOAD_URL" \
  -H "Content-Type: video/mp4" \
  --data-binary @demo.mp4
Oczekiwany wynik:Serwer przesyłania zwraca HTTP 200. Pusta treść odpowiedzi jest zjawiskiem normalnym.
5

Zakończ i sprawdź przesyłanie

Po pomyślnym wykonaniu testu PUT powiedz Video2URL, aby zweryfikował przechowywany obiekt i utworzył rekord pliku. Nie wywołuj tego kroku przed zakończeniem PUT.

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"
Oczekiwany wynik:Odpowiedź zawiera data.file.fileId. Zapisz PLIK_ID; identyfikuje ukończony plik.
Save FILE_ID
export FILE_ID="paste data.file.fileId here"
6

Utwórz ostatni udział URL

Utwórz niepubliczny link z FILE_ID. Niepubliczny oznacza, że ​​każdy, kto ma URL, może go otworzyć, ale nie jest on umieszczony w katalogu publicznym.

  • Tytuł jest opcjonalny.
  • Hasło jest opcjonalne.
  • Widoczność jest opcjonalna.
  • Widoczność jest domyślnie ustawiona jako niepubliczna.

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"}"
Oczekiwany wynik:Odpowiedź zawiera rekord udziału i URL. Otwórz SHARE_URL w prywatnym oknie przeglądarki, aby to sprawdzić.
Open SHARE_URL
export SHARE_URL="paste the returned share URL here"
open "$SHARE_URL" # macOS; use xdg-open on Linux

JavaScript & Python

Utwórz najwęższy klucz, jakiego potrzebujesz. Zmień, tworząc i wdrażając zamiennik przed unieważnieniem starego klucza. Jeśli płatny dostęp dobiegnie końca, klucze pozostaną zapisane, ale połączenia zostaną wstrzymane; odnowienie kwalifikującego się planu przywraca dostęp.

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