Duyệt tài liệu dành cho nhà phát triển

REST API

Tải lên và chia sẻ tập tin

Hướng dẫn này lấy một tệp cục bộ có tên demo.mp4 và biến nó thành một tệp chia sẻ hoạt động URL. Hoàn thành các bước theo thứ tự; mỗi phản hồi cung cấp một giá trị được sử dụng cho yêu cầu tiếp theo.

1

Tạo và lưu khóa API

Mở cài đặt dành cho nhà phát triển, chọn tải lên:ghi, files:read, shares:write và shares:read, sau đó tạo khóa. Sao chép ngay bây giờ—toàn bộ bí mật chỉ được hiển thị một lần.

Phạm vi có sẵn: tải lên:ghi, files:read, shares:write và shares:read.

Kết quả mong đợi:Bạn có một bí mật bắt đầu bằng tiền tố khóa Video2URL. Giữ nó riêng tư.
2

Chuẩn bị thiết bị đầu cuối của bạn

Đặt khóa vào biến môi trường để nó không xuất hiện trong mọi lệnh hoặc trong lịch sử shell của bạn. Thay thế phần giữ chỗ trước khi nhấn Enter.

Terminal
read -s VIDEO2URL_API_KEY
echo "key loaded"
Kết quả mong đợi:Lệnh in khóa được tải chứ không phải bản thân bí mật.
3

Tạo một công việc tải lên

Cho Video2URL biết chính xác tên tệp, loại MIME và kích thước byte. Điều này trả về bản tải lên R2 tạm thời URL; nó chưa tải video lên.

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}'
Kết quả mong đợi:Phản hồi JSON chứa data.uploadId và data.upload.url. Lưu cả hai giá trị cho các bước tiếp theo.
Save response values
export UPLOAD_ID="paste data.uploadId here"
export UPLOAD_URL="paste data.upload.url here"
4

Gửi byte video

Tải trực tiếp demo.mp4 lên URL tạm thời. Không thêm khóa Video2URL API vào yêu cầu PUT này. Sử dụng Loại nội dung được trả về bởi phản hồi tạo-tải lên. Tải tệp thô lên URL được chỉ định bằng cách sử dụng loại nội dung được trả về.

curl · PUT
curl --fail-with-body -X PUT "$UPLOAD_URL" \
  -H "Content-Type: video/mp4" \
  --data-binary @demo.mp4
Kết quả mong đợi:Máy chủ tải lên trả về HTTP 200. Nội dung phản hồi trống là bình thường.
5

Hoàn tất và xác minh việc tải lên

Sau khi PUT thành công, hãy yêu cầu Video2URL xác minh đối tượng được lưu trữ và tạo bản ghi tệp. Không gọi bước này trước khi PUT kết thúc.

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"
Kết quả mong đợi:Phản hồi chứa data.file.fileId. Lưu FILE_ID; nó xác định tập tin đã hoàn thành.
Save FILE_ID
export FILE_ID="paste data.file.fileId here"
6

Tạo chia sẻ cuối cùng URL

Tạo liên kết không công khai từ FILE_ID. Không công khai có nghĩa là bất kỳ ai có URL đều có thể mở nó nhưng nó không được đặt trong thư mục công cộng.

  • Tiêu đề là tùy chọn.
  • Mật khẩu là tùy chọn.
  • Khả năng hiển thị là tùy chọn.
  • Chế độ hiển thị mặc định là không công khai.

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"}"
Kết quả mong đợi:Phản hồi chứa bản ghi chia sẻ và URL. Mở SHARE_URL trong cửa sổ trình duyệt riêng tư để xác minh.
Open SHARE_URL
export SHARE_URL="paste the returned share URL here"
open "$SHARE_URL" # macOS; use xdg-open on Linux

JavaScript & Python

Tạo khóa hẹp nhất bạn cần. Xoay bằng cách tạo và triển khai thay thế trước khi thu hồi khóa cũ. Nếu quyền truy cập trả phí kết thúc, khóa vẫn được lưu nhưng cuộc gọi sẽ tạm dừng; gia hạn gói đủ điều kiện sẽ khôi phục quyền truy cậ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()