🎬 Video Automation Dashboard

Real-time monitoring & video processing control

Server Active

CPU Load

0.0 %

Memory Usage

0 MB

Generated Today

0 videos

🔗 Process from URLs

Add up to 8 videos (minimum 2 required)

📋 Recent Tasks

Task ID Status Video URL Created Completed Action
No tasks yet. Upload some videos to get started!

📚 API Documentation

1. Health Check

Method: GET

Endpoint: /api/health

Description: Check if server is running

curl http://editin.my.id/api/health

2. Submit Task

Method: POST

Endpoint: /api/process

Content-Type: multipart/form-data

Description: Upload and process videos

curl -X POST http://editin.my.id/api/process \ -F "videos=@video1.mp4" \ -F "videos=@video2.mp4"

3. Process Videos from URLs

Method: POST

Endpoint: /api/process-urls

Content-Type: application/json

Description: Process videos from direct URLs (2-8 videos supported, maintains order)

curl -X POST http://editin.my.id/api/process-urls \ -H "Content-Type: application/json" \ -d '{"videoUrls": [ "https://example.com/video1.mp4", "https://example.com/video2.mp4", "https://example.com/video3.mp4" ]}'

5. Check Task Status

Method: GET

Endpoint: /api/tasks/:taskId

Description: Get task status and result

curl http://editin.my.id/api/tasks/TASK_ID

6. List All Tasks

Method: GET

Endpoint: /api/tasks

Description: Get all completed tasks

curl http://editin.my.id/api/tasks

7. System Stats

Method: GET

Endpoint: /api/stats

Description: Get server resource usage

curl http://editin.my.id/api/stats

📋 Polling Example (Every 10 seconds)

function pollTaskStatus(taskId) { const interval = setInterval(async () => { const response = await fetch(`http://editin.my.id/api/tasks/${taskId}`); const task = await response.json(); console.log('Status:', task.status); if (task.status === 'completed') { console.log('Video URL:', task.cloudinaryUrl); clearInterval(interval); } else if (task.status === 'failed') { console.error('Error:', task.error); clearInterval(interval); } }, 10000); // Poll every 10 seconds }