Sao lưu video trước khi VoD ngừng hoạt động
Bizfly Cloud VoD dự kiến ngừng hoạt động vào 31/12/2026. Video hiện có trên VoD không thể chuyển sang MPS hoặc dịch vụ khác. Hãy tải và lưu bản sao video trước khi dịch vụ ngừng hoạt động.
Bước 1: Nhận STORE_SECRET_KEY của kho video
Liên hệ bộ phận hỗ trợ kỹ thuật. Nhân viên hỗ trợ sẽ gửi STORE_SECRET_KEY của kho video cho bạn qua tin nhắn riêng. Bạn cần biết store_name (tên kho video) tương ứng với STORE_SECRET_KEY. Không chia sẻ STORE_SECRET_KEY công khai.
Bước 2: Tải video khi đã biết đường dẫn file
Thay <STORE_SECRET_KEY> bằng giá trị nhận ở bước 1 và <STORE_NAME> bằng store_name của bạn. Trong ví dụ này, 194844052557418496/2026/9/22/tiktok1-1790043729186282420282.mp4 là toàn bộ file_name. --output lưu video vào file trên máy của bạn.
curl --fail --location \
'https://mps.mediacdn.vn/v1/vod/files/194844052557418496/2026/9/22/tiktok1-1790043729186282420282.mp4/download?store_name=<STORE_NAME>' \
--header 'X-Key: <STORE_SECRET_KEY>' \
--output 'tiktok1-1790043729186282420282.mp4'
Lặp lại lệnh với từng file_name và chọn tên file đầu ra riêng để không ghi đè bản sao đã tải.
Nếu chưa biết danh sách file
Bước 1: Tạo policy và signature
API tạo signature yêu cầu policy có action là get_list_video, store_name và expire. expire dùng giờ UTC/GMT, theo định dạng dd Mon yyyy HH:MM:SS GMT, và không được quá 2 giờ kể từ lúc tạo. Ví dụ Python 3.6 sau tạo JSON policy với thời hạn 115 phút kể từ thời điểm chạy, có khoảng đệm trước giới hạn 2 giờ. Chạy lại đoạn mã để tạo thời hạn mới nếu policy hết hiệu lực.
STORE_NAME='<STORE_NAME>'
POLICY_JSON="$(STORE_NAME="$STORE_NAME" python3 - <<'PY'
from datetime import datetime, timedelta
import json
import os
expire = (datetime.utcnow() + timedelta(minutes=115)).strftime(
'%d %b %Y %H:%M:%S GMT'
)
print(json.dumps({
'policy': {
'action': 'get_list_video',
'expire': expire,
'store_name': os.environ['STORE_NAME'],
}
}))
PY
)"
curl --fail --location 'https://mps.mediacdn.vn/v1/vod/signature' \
--header 'X-Key: <STORE_SECRET_KEY>' \
--header 'Content-Type: application/json' \
--data "$POLICY_JSON"
Response thành công chứa cặp data.policy và data.signature để gọi API liệt kê file. Các giá trị dưới đây chỉ minh họa cấu trúc response; sử dụng giá trị thực từ lần gọi API của bạn.
{
"data": {
"policy": "<POLICY_FROM_RESPONSE>",
"signature": "<SIGNATURE_FROM_RESPONSE>"
},
"description": "Successful",
"status": true,
"status_code": "S001"
}
Bước 2: Liệt kê file trong kho video
Thay hai giá trị trong header bằng data.policy và data.signature của response trên. Lấy tối đa 10.000 video mỗi trang:
curl --fail --location 'https://mps.mediacdn.vn/v1/vod/files?page=1&page_size=10000' \
--header 'X-Policy: <POLICY_FROM_RESPONSE>' \
--header 'X-Signature: <SIGNATURE_FROM_RESPONSE>'
Tăng page thành 2, 3, … cho đến khi data rỗng.
Trong response thành công, data là danh sách video. Dùng trường file_name của từng phần tử làm đường dẫn trong URL tải ở bước 2; name chỉ là tên hiển thị. Thực hiện cho từng kho video của bạn, rồi kiểm tra các file đã tải có thể mở được và lưu bản sao ở nơi an toàn.
Ví dụ một phần tử trong data:
{
"name": "Video TikTok",
"file_name": "194844052557418496/2026/9/22/tiktok1-1790043729186282420282.mp4"
}
Câu hỏi thường gặp
Sau 31/12/2026, video trong kho VoD có bị xóa không? Kho và API có thể ngừng sớm hơn ngày đó không?
Sau ngày 31/12/2026, video trong kho sẽ bắt đầu bị xóa và API sẽ ngừng hoạt động. Hãy sao lưu video càng sớm càng tốt.
API liệt kê và tải video có tải được toàn bộ video, kể cả video cũ tải bằng công cụ chọn video không?
Có. API liệt kê (/v1/vod/files) và tải video (/v1/vod/files/{file_name}/download) có thể truy cập toàn bộ video trong kho, kể cả video cũ được tải lên bằng công cụ chọn video.
Tệp tải về có phải bản gốc đã tải lên không?
Có. Tệp tải về là file gốc đã tải lên.
API tải file có giới hạn tốc độ, số lượt tải hoặc tính phí truyền dữ liệu không?
Tải video từ kho không bị giới hạn số lượng hay tốc độ và không tính phí truyền dữ liệu.
Tôi có thể xem số file và dung lượng hiện tại ở đâu?
Xem tại dashboard dịch vụ VoD .
Lưu ý: Tổng dung lượng các tệp tải về sẽ thấp hơn dung lượng hiển thị trên dashboard vì dashboard bao gồm cả các file phái sinh từ file gốc để cải thiện trải nghiệm phát video.