Tiếng Việt
Tích Hợp Với cURL & Shell Scripts
Dành cho các quản trị viên hệ thống hoặc lập trình viên muốn xây dựng script tự động hóa trên máy chủ Linux/macOS bằng Bash hoặc POSIX shell.
1. Biến Môi Trường Chung
bash
export API_BASE="https://api.stackvid.dev/api"
export STACKVID_API_KEY="tk_live_YOUR_KEY_HERE"2. Kiểm Tra Số Dư Ví
bash
curl -s -X GET "${API_BASE}/credits/balance" \
-H "X-API-Key: ${STACKVID_API_KEY}" | jq .3. Script Upload & Đăng Video Tự Động (publish.sh)
bash
#!/usr/bin/env bash
set -e
VIDEO_FILE="$1"
CAPTION="$2"
CHANNEL_NAME="$3"
if [ -z "$VIDEO_FILE" ] || [ -z "$CAPTION" ]; then
echo "Usage: ./publish.sh <video_path> <caption text> [channel_name]"
exit 1
fi
FILE_SIZE=$(wc -c < "$VIDEO_FILE" | tr -d ' ')
echo "📁 Kích thước file: ${FILE_SIZE} bytes"
# 1. Xin Presigned Upload URL
echo "⚡ 1. Yêu cầu cấp Presigned Upload URL..."
PRESIGNED_JSON=$(curl -s -X POST "${API_BASE}/uploads/presigned-url" \
-H "X-API-Key: ${STACKVID_API_KEY}" \
-H "Content-Type: application/json" \
-d "{
\"fileType\": \"VIDEO\",
\"contentType\": \"video/mp4\",
\"fileSizeBytes\": ${FILE_SIZE}
}")
UPLOAD_URL=$(echo "$PRESIGNED_JSON" | jq -r '.uploadUrl')
PUBLIC_URL=$(echo "$PRESIGNED_JSON" | jq -r '.publicUrl')
# 2. Upload file trực tiếp lên uploadUrl
echo "🚀 2. Đang tải video lên..."
curl -s -X PUT "$UPLOAD_URL" \
-H "Content-Type: video/mp4" \
--data-binary "@${VIDEO_FILE}"
echo "✅ Tải lên hoàn tất! Public URL: $PUBLIC_URL"
# 3. Xuất bản lên TikTok
echo "📱 3. Đăng lên TikTok..."
PUBLISH_JSON=$(curl -s -X POST "${API_BASE}/tiktok/upload" \
-H "X-API-Key: ${STACKVID_API_KEY}" \
-H "Content-Type: application/json" \
-d "{
\"videoUrl\": \"${PUBLIC_URL}\",
\"caption\": \"${CAPTION}\",
\"targetChannel\": \"${CHANNEL_NAME}\",
\"privacyLevel\": 0
}")
echo "🎉 Kết quả:"
echo "$PUBLISH_JSON" | jq .4. Cào Posts Creator & Lấy Link Video Không Watermark
bash
curl -s -X GET "${API_BASE}/tiktok/user/posts?username=lamine.yamal&count=10" \
-H "X-API-Key: ${STACKVID_API_KEY}" \
| jq -r '.itemList[] | "\(.id) | \(.stats.playCount) views | \(.video.playAddr)"'