analyze_video_result
Poll for the result of a video analysis job. Returns status and analysis when complete, or indicates pending, error, or not found.
Instructions
Poll for an analyze_video_start result. Blocks up to wait_seconds for a state change.
Default wait_seconds=10 keeps the blocking window well under the typical 60s MCP request timeout enforced by hosts. Smaller blocking window = guaranteed return well under 60s at the cost of more poll round-trips (cheap, ~1KB per poll).
Recommended pattern: call with wait_seconds=10 each poll. Cap total
polling at ~90 iterations (~15 min) — most podcasts finish within 3-5 min.
If a poll returns an MCP-transport error (not a status: "error"
payload), the underlying job is likely still alive on the server —
re-poll with the SAME job_id rather than starting over.
Args: job_id: The id returned by analyze_video_start wait_seconds: How many seconds to block waiting for completion (default 10, clamped to [0, 55] to stay safely under the MCP 60s request timeout)
Returns: { job_id, status, video_url, created_at, started_at, finished_at, result?, error?, attempts }
status="pending" or "running": still processing — poll again.
status="done": result holds the AnalysisResult dict (analysis, timestamps_valid, video_duration, vaneck_excluded, attempts, error=null).
status="error": error holds the message; result may hold a partial AnalysisResult.
status="not_found": job_id unknown (job purged after 6h TTL or wrong id).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| wait_seconds | No |