---
title: "Plan a video from a script or idea: beats, and the library footage an LLM picks for each"
method: POST
path: "/api/v1/video-library/generate/plan"
tags: ["videoLibrary"]
---

# Plan a video from a script or idea: beats, and the library footage an LLM picks for each

`POST /api/v1/video-library/generate/plan`

## Request

- Base URL: `https://api.brandbooster.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.brandbooster.ai/api/v1/video-library/generate/plan`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/brandbooster/apis/brandbooster-api/docs/api/v1/video-library/generate/plan/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- EditPlanDTO: A video from a script or an idea, cut from the analysed library (Footage Graph, step 3).
  - `text` string, required
  - `mode` 'idea' | 'script'
  - `duration_seconds` integer
  - `footage_rules` FootageRulesDTO: How library footage is picked for each beat of a new video (asked when creating one).
    - `source` 'prefer_library' | 'fallback' | 'library_only' | 'never'
    - `roll` 'a_first' | 'b_first' | 'mix'
    - `generate_missing` boolean
    - `threshold` number
    - `character` 'strict' | 'loose'
    - `instructions` string
  - `item_ids` string[]
  - `picks` MomentRefDTO[]
    - `item_id` string, required
    - `moment_id` string, required
  - `picks_only` boolean
  - `presenter` string, nullable
  - `domain_id` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

## Changes

> 55 revisions in range; 1 not diffed.

- **2026-11-10** `f01e0665e1e4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/brandbooster/apis/brandbooster-api/changes/api/v1/video-library/generate/plan/post.md)

---

[API](https://skmtc.dev/brandbooster/apis/brandbooster-api.md) - [All operations](https://skmtc.dev/brandbooster/apis/brandbooster-api/llms.txt) - [OpenAPI document](https://skmtc.dev/brandbooster/apis/brandbooster-api/revisions/0240f7deba06?raw)
