{
  "slug": "modules/video",
  "title": "Video module",
  "description": "Browser-session recording jobs driven by natural-language prompts and explicit workflow steps.",
  "url": "https://cuitty.com/docs/modules/video",
  "markdown_url": "https://cuitty.com/docs/modules/video.md",
  "json_url": "https://cuitty.com/docs/modules/video.json",
  "frontmatter": {
    "title": "Video module",
    "description": "Browser-session recording jobs driven by natural-language prompts and explicit workflow steps.",
    "order": 14,
    "section": "Modules",
    "updatedAt": "2026-05-10"
  },
  "headings": [
    {
      "depth": 1,
      "slug": "video-module",
      "text": "Video module"
    },
    {
      "depth": 2,
      "slug": "what-it-captures",
      "text": "What it captures"
    },
    {
      "depth": 2,
      "slug": "submit-a-job",
      "text": "Submit a job"
    },
    {
      "depth": 2,
      "slug": "reads",
      "text": "Reads"
    }
  ],
  "body_markdown": "# Video module\n\nThe video module records browser workflows as reviewable artifacts. A job starts from a prompt, target URL, or explicit steps, then a browser runner captures screenshots and writes a video artifact when the run finishes.\n\n## What it captures\n\n- Prompt and target URL\n- Resolved workflow steps\n- Run status and per-step progress\n- Duration, output format, and artifact URL\n- Error details when a run fails\n\n## Submit a job\n\n```\nPOST /api/video/jobs\n```\n\nUse the endpoint for long-running video generation requests. Ingest events with `type: \"video\"` are reserved for completed-run metadata that should appear in timelines and audit-style views.\n\n## Reads\n\n| Endpoint | Returns |\n| --- | --- |\n| `GET /api/video/status` | Module health |\n| `GET /api/video/jobs?project_id=...` | Recent jobs |\n| `GET /api/video/jobs/{id}` | Job status, steps, and artifact metadata |\n\nProduct page: [Observe modules](/products/observe/modules).",
  "links_out": [
    "/products/observe/modules"
  ]
}