Перегляньте документи розробника

REST API

Завантажуйте та діліться файлами

Цей підручник бере один локальний файл під назвою demo.mp4 і перетворює його на робочу спільну папку URL. Виконайте кроки по порядку; кожна відповідь надає значення, яке використовується наступним запитом.

1

Створіть і збережіть ключ API

Відкрийте налаштування розробника, виберіть uploads:write, files:read, shares:write і shares:read, а потім створіть ключ. Скопіюйте зараз — повний секрет буде показано лише один раз.

Доступні області: uploads:write, files:read, shares:write і shares:read.

Очікуваний результат:У вас є секрет, який починається з префікса ключа Video2URL. Тримайте це приватно.
2

Підготуйте термінал

Помістіть ключ у змінну середовища, щоб він не з’являвся в кожній команді чи в історії оболонки. Замініть заповнювач перед натисканням клавіші Enter.

Terminal
read -s VIDEO2URL_API_KEY
echo "key loaded"
Очікуваний результат:Команда друкує завантажений ключ, а не сам секрет.
3

Створіть завдання завантаження

Повідомте Video2URL точну назву файлу, тип MIME та розмір у байтах. Це повертає тимчасове завантаження R2 URL; він ще не завантажує відео.

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}'
Очікуваний результат:Відповідь JSON, що містить data.uploadId і data.upload.url. Збережіть обидва значення для наступних кроків.
Save response values
export UPLOAD_ID="paste data.uploadId here"
export UPLOAD_URL="paste data.upload.url here"
4

Надіслати байти відео

Завантажте демо.mp4 безпосередньо на тимчасовий URL. Не додавайте ключ API Video2URL до цього запиту PUT. Використовуйте Content-Type, який повертає відповідь create-upload. Завантажте необроблений файл у попередньо підписаний URL, використовуючи повернутий тип вмісту.

curl · PUT
curl --fail-with-body -X PUT "$UPLOAD_URL" \
  -H "Content-Type: video/mp4" \
  --data-binary @demo.mp4
Очікуваний результат:Сервер завантаження повертає HTTP 200. Порожнє тіло відповіді – це нормально.
5

Завершіть і перевірте завантаження

Після успішного виконання PUT скажіть Video2URL перевірити збережений об’єкт і створити запис файлу. Не викликайте цей крок до завершення 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"
Очікуваний результат:Відповідь містить data.file.fileId. Зберегти FILE_ID; він ідентифікує завершений файл.
Save FILE_ID
export FILE_ID="paste data.file.fileId here"
6

Створити остаточний спільний доступ URL

Створіть приватне посилання з FILE_ID. Не в списку означає, що будь-хто з URL може відкрити його, але він не розміщений у загальнодоступному каталозі.

  • Заголовок необов’язковий.
  • Пароль необов'язковий.
  • Видимість необов'язкова.
  • Видимість за замовчуванням не включена.

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"}"
Очікуваний результат:Відповідь містить запис спільного доступу та URL. Відкрийте SHARE_URL у вікні приватного браузера, щоб перевірити його.
Open SHARE_URL
export SHARE_URL="paste the returned share URL here"
open "$SHARE_URL" # macOS; use xdg-open on Linux

JavaScript & Python

Створіть найвужчий ключ, який вам потрібен. Перед відкликанням старого ключа виконайте ротацію, створивши та розгорнувши заміну. Якщо платний доступ закінчується, ключі залишаються збереженими, але виклики призупиняються; поновлення відповідного плану відновлює доступ.

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