Get Annotated Video
GET/v2/videos/{video_id}/annotated_video
Get annotated video with emotion labels and bounding boxes overlaid on each frame.
How It Works:
- First request initiates video generation and returns a status response
- Poll this endpoint to check generation progress
- When ready, returns an authorized URL for downloading the video
Response Types:
-
Status Response (JSON) - While generating:
\{"video_id": "abc123","message": "Annotated video is currently being generated...","status": "pending"\} -
Download URL Response (JSON) - When complete:
\{"video_id": "abc123","download_url": "https://...","filename": "My_Video_abc123.mp4","expires_in_minutes": 60,"expires_at": "2026-01-09T12:00:00Z","note": "Download URLs are short-lived. Request a new URL if a download fails."\}
Parameters:
video_id: Video identifiercallback_url: Optional webhook URL to receive notification when generation completes
Prerequisites: Video analysis must be complete before requesting annotated video.
Security:
- New videos are stored privately; the returned URL is what authorizes the download
- Treat
download_urlas short-lived — fetch it promptly and request a new one rather than storing or sharing it - Old videos may use public URLs (backward compatibility)
Example Workflow:
# 1. Request annotated video (with optional callback URL)
GET /v2/videos/abc123/annotated_video?callback_url=https://example.com/webhook
Response: {"status": "pending", "message": "..."}
# 2. Check status (poll until ready)
GET /v2/videos/abc123/annotated_video
Response: {"status": "in progress", "message": "..."}
# 3. Get download URL when ready
GET /v2/videos/abc123/annotated_video
Response: {"video_id": "abc123", "download_url": "https://...", ...}
# 4. Download video from the returned URL
GET <download_url>
Request
Responses
- 200
- 422
Successful Response
Validation Error