# Videomaker

> Create an editable motion VIDEO (render_videomaker) in a MockFlow IdeaBoard Video Maker frame: explainers, product launch and promo videos, app tutorials, animated social posts and reels, ads, intr…

Source: https://mockflow.com/developers/reference/item-types/videomaker

Send `"type": "videomaker"`.

Create an editable motion VIDEO (render_videomaker) in a MockFlow IdeaBoard Video Maker frame: explainers, product launch and promo videos, app tutorials, animated social posts and reels, ads, intros and logo reveals, data stories, event promos. You write the video as a sequence of SCENES, each one finished graphic design page of positioned text, shapes, pictures and lines brought to life by motion, as JSON, never HTML or CSS; MockFlow plays it, the user edits every scene and exports it as MP4. For a still graphic use render_design; for a generated footage clip use render_video.

Also available as the MCP tool `render_videomaker`. The same payload works through either surface.

### Fields

- `title` (string): Short video name shown as the frame title
- `w` (number, required): Canvas width in px
- `h` (number, required): Canvas height in px
- `look` (object): Shared look of pictures that belong together: {"style","cast":[{"id","description"}]} (keep it, with any "ref", when modifying)
- `music` (string): ONLY when the user asks for music, a soundtrack or sound. Best: a real track that allows reuse, found with WebSearch/WebFetch, as "web::" followed by the direct audio file URL (Wikimedia Commons, Free Music Archive, Pixabay, Incompetech, or the artist's own free download; a URL you saw in a page you fetched, never one you composed); MockFlow imports it free. Otherwise the music in a few words (genre, mood, tempo, main instruments; instrumental) and MockFlow makes it. Leave it out when not asked, and when modifying a video whose "sound" already has music.
- `scenes` (object[], required): The scenes in order
    - `id` (string): Only when modifying: the id of a scene kept from the existing video
  - `dur` (number, required): Seconds on screen
  - `trans` (object): How the scene arrives from the one before (the first scene has none). A scene that continues the one before uses "morph" (Smart move) on the SAME "bg": what recurs (same text, picture or shape, the headline, or a shared "link") travels, resizes and recolours into its new place instead of cutting. Other effects only where the story changes chapter.
  - `cam` (object): A slow camera move through the scene, so the frame is never fully still
  - `bg` (any): Scene background: "#rrggbb" or a gradient object
  - `bgImg` (object): Scene picture behind everything {"src","op"} (keep it when modifying)
  - `els` (object[], required): The elements in drawing order (first at the back): the design element schema, plus "anim" and "link", plus at most ONE footage clip per scene: {"type":"clip","x","y","w","h","src":"web::<direct video file URL>", optional "trim":[startSec,endSec]} (see FOOTAGE)
  - `say` (string): ONLY when the user asks for a voiceover, narration or sound (or the video being modified already has "say" lines: keep them word for word unless the change is about them): what the narrator says while this scene shows, one or two short spoken sentences that add to the words on screen rather than reading them out, about 2.5 words per second of "dur" (never more than 3; lengthen "dur" for more words). The lines flow as one story. No stage directions, emoji or hashtags. MockFlow reads it aloud and adds captions.

## Example

```json
{
  "type": "videomaker",
  "data": {
    "title": "Q4 Launch Planning",
    "w": 0,
    "h": 0,
    "look": {},
    "music": "string",
    "scenes": [
      {
        "id": "string",
        "dur": 0,
        "trans": {
          "fx": "morph",
          "dur": 0,
          "color": "string"
        },
        "cam": {
          "fx": "push-in",
          "amt": 0
        },
        "bg": "string",
        "bgImg": {},
        "els": [
          {
            "id": "string",
            "type": "text",
            "x": 0,
            "y": 0,
            "w": 0,
            "h": 0,
            "rot": 0,
            "op": 0,
            "text": "Interview 5 users",
            "font": "string"
          }
        ],
        "say": "string"
      }
    ]
  }
}
```
