# Video Watermark API Usage Guide ## Overview The Video Watermark API allows you to add watermarks to video files asynchronously. The process involves two steps: 1. Submit a watermark job and receive a token 2. Use the token to check the job status and get the result ## Base URL ``` https://animator-gg-api.ca2324.servep2p.com:8443 ``` ## Step 1: Submit a Video Watermark Job **Request:** ```bash curl -X POST "https://animator-gg-api.ca2324.servep2p.com:8443/api/script" \ -H "Content-Type: application/json" \ -d '{ "scriptPath": "/tmp/api_scripts/video_add_watermark.sh", "args": [ "https://example.com/input.mp4", "https://example.com/watermark.png", "30", "30" ] }' ``` **Parameters:** - `scriptPath`: Must be video_add_watermark.sh - `args`: Array containing: - Input video URL (required) - Watermark image URL (required) - X position in pixels (required) - Y position in pixels (required) - Width for watermark resize (optional, 0 for no resize) - Height for watermark resize (optional, 0 for no resize) **Response:** ```json { "token": "550e8400-e29b-41d4-a716-446655440000" } ``` ## Step 2: Check Job Status and Get Result **Request:** ```bash curl -X GET "https://animator-gg-api.ca2324.servep2p.com:8443/api/script?token=550e8400-e29b-41d4-a716-446655440000" ``` **Response:** ```json { "status": "completed", "result": { "success": true, "stdout": "{\n \"input_video_url\": \"https://example.com/input.mp4\",\n \"watermark_png_url\": \"https://example.com/watermark.png\", \n \"pos_x\": 30,\n \"pos_y\": 30,\n \"size_w\": 0,\n \"size_h\": 0,\n \"output_file_name\": \"/var/www/html/watermarked_videos/bcc55e77-f1b4-472c-8a1b-0f3c852bd73a.mp4\",\n \"output_file_url\": \"https://example.com/watermarked_videos/bcc55e77-f1b4-472c-8a1b-0f3c852bd73a.mp4\"\n}", "stderr": "..." }, "timestamp": 1743991194237 } ``` When the job is complete, the `stdout` field will contain a JSON string with the output video URL. You'll need to parse this string to get the actual URL. ## Example: Complete Process 1. **Submit the job:** ```bash TOKEN=$(curl -s -X POST "https://animator-gg-api.ca2324.servep2p.com:8443/api/script" \ -H "Content-Type: application/json" \ -d '{ "scriptPath": "/tmp/api_scripts/video_add_watermark.sh", "args": [ "https://ca2324.ddns.net:8443/jerry/_seed847064922.mp4", "https://ca2324.ddns.net:8443/jerry/0a97d84a70fec3991cf05ee99ceb6469.png", "30", "30" ] }' | jq -r '.token') echo "Job submitted with token: $TOKEN" ``` 2. **Check status until complete:** ```bash while true; do RESULT=$(curl -s -X GET "https://animator-gg-api.ca2324.servep2p.com:8443/api/script?token=$TOKEN") STATUS=$(echo $RESULT | jq -r '.status') echo "Status: $STATUS" if [ "$STATUS" = "completed" ] || [ "$STATUS" = "failed" ]; then break fi sleep 2 done # Extract the watermarked video URL if [ "$STATUS" = "completed" ]; then OUTPUT_JSON=$(echo $RESULT | jq -r '.result.stdout') OUTPUT_URL=$(echo $OUTPUT_JSON | jq -r '.output_file_url') echo "Watermarked video URL: $OUTPUT_URL" fi ``` ## Status Codes - `pending`: Job is waiting in the queue - `running`: Job is currently processing - `completed`: Job finished successfully - `failed`: Job failed to complete ## Notes - Results are stored for 24 hours after completion - Processing large videos may take several minutes - The API is rate-limited to 2 concurrent jobs