🎵 Vibe Engine API

Programmatic music video generation. Upload a track, analyze it, generate videos.

âš¡ Authentication: Include your API key as Authorization: Bearer <api-key> header or ?api_key=<key> query param. Generate keys from your profile.

Workflow

1
Upload your audio file
2
Analyze — extracts mood, lyrics, beats, Song Bible
3
Generate — renders video with chosen style
4
Poll render status until complete
5
Download the finished video

Endpoints

POST /api/upload

Upload an audio file (MP3, WAV, FLAC, M4A, OGG, AAC). Max 100MB.

curl -X POST http://vibe-engine.black369.com/api/upload \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "audio=@mysong.mp3"

POST /api/analyze/:projectId

Start analysis (mood detection, lyrics transcription, beat mapping, Song Bible generation).

curl -X POST http://vibe-engine.black369.com/api/analyze/PROJECT_ID \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"lyrics": "optional pre-pasted lyrics"}'

POST /api/generate/:projectId

Start video generation. Poll /api/render-status/:projectId for progress.

curl -X POST http://vibe-engine.black369.com/api/generate/PROJECT_ID \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"format":"tiktok","style":"karaoke","captionStyle":"bounce","quality":"fast"}'

GET /api/render-status/:projectId

Check render progress (status, progress %, queue position).

curl http://vibe-engine.black369.com/api/render-status/PROJECT_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /api/download/:projectId

Download the rendered MP4 video.

curl -o output.mp4 http://vibe-engine.black369.com/api/download/PROJECT_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /api/projects

List all your projects.

curl http://vibe-engine.black369.com/api/projects \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /api/project/:projectId

Get full project details (analysis, bible, settings).

curl http://vibe-engine.black369.com/api/project/PROJECT_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

DELETE /api/project/:projectId

Trash a project (soft delete, recoverable).

curl -X DELETE http://vibe-engine.black369.com/api/project/PROJECT_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /api/templates

List style templates. Optional ?category=viral|cinematic|retro|minimal|energetic

curl http://vibe-engine.black369.com/api/templates

POST /api/templates/:id/apply/:projectId

Apply a template's style config to a project.

curl -X POST http://vibe-engine.black369.com/api/templates/tpl-tiktok-viral/apply/PROJECT_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /api/project/:id/share-kit

Download a ZIP with video + captions + hashtags + thumbnail for social posting.

curl -o share-kit.zip http://vibe-engine.black369.com/api/project/PROJECT_ID/share-kit \
  -H "Authorization: Bearer YOUR_API_KEY"

Full Example Workflow

# 1. Upload
PROJECT_ID=$(curl -s -X POST http://vibe-engine.black369.com/api/upload \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "audio=@mysong.mp3" | jq -r '.projectId')

# 2. Analyze
curl -s -X POST http://vibe-engine.black369.com/api/analyze/$PROJECT_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

# 3. Wait for analysis (poll until status=complete)
while true; do
  STATUS=$(curl -s http://vibe-engine.black369.com/api/project/$PROJECT_ID \
    -H "Authorization: Bearer YOUR_API_KEY" | jq -r '.status')
  [ "$STATUS" = "complete" ] && break
  sleep 5
done

# 4. Generate video
curl -s -X POST http://vibe-engine.black369.com/api/generate/$PROJECT_ID \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"format":"tiktok","style":"karaoke"}'

# 5. Poll render status
while true; do
  RSTATUS=$(curl -s http://vibe-engine.black369.com/api/render-status/$PROJECT_ID \
    -H "Authorization: Bearer YOUR_API_KEY" | jq -r '.status')
  [ "$RSTATUS" = "complete" ] && break
  sleep 5
done

# 6. Download
curl -o output.mp4 http://vibe-engine.black369.com/api/download/$PROJECT_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

Vibe Engine API v1.0 — Built for creators