Launch film from a website
make_launch_filmGenerate a 20-40 second launch film from a product's own website, using its brand and page content, then render an MP4 with music and sound effects.
Instructions
Makes a 20 to 40 second launch film from a product's own site: it reads the brand and the page, plans the film (name and promise, the real screen in a browser window, the page's own headline, feature cards, a number the page states, the logo close) and renders film.mp4 with music and sound effects, all with Chrome and ffmpeg on this machine. Nothing is generated by AI: the film shows what the site says. film.json is the plan; edit it and call render_launch_film to render again. Rendering takes a few minutes. (launch-film 0.2.0, on this machine.)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sfx | No | Set to false to leave out the sound effects. | |
| url | Yes | The product's website, like https://linear.app | |
| jobs | No | Clips rendered at once (default 2). | |
| keep | No | Keep the work files, each clip's MP4. | |
| look | No | The film's look (default: picked from the brand). launch_film_guide with topic looks says what each one suits. | |
| brand | No | A brand kit you already have: an easybrandkit folder or its brand.json. | |
| music | No | Set to false to leave out the music bed. | |
| words | No | A words.json you already have, instead of reading the page again. | |
| aspect | No | 16:9 (default) or 9:16 for phones. | |
| out_dir | No | Folder to save into, absolute or relative to /app. Default: launch-film-{host}. | |
| seconds | No | Aim for this length (default 30). | |
| wait_seconds | No | How long to wait for the result before returning a job_id to wait on. 45 is safe for clients that stop a tool call after 60 seconds. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kit | Yes | ||
| tool | Yes | ||
| files | No | ||
| folder | No | Where the kit saved its files. | |
| job_id | Yes | ||
| passed | No | For checks: whether the check passed. | |
| status | Yes | ||
| exit_code | No | ||
| last_line | No | What the kit was doing last. | |
| next_action | No | ||
| elapsed_seconds | Yes |