Video Timeline (Text)
A shot list you can paste into your video prompt
- video
- timestamps text
- timeline text
- video runtime
- structured timeline text
Modern video models are getting good at following a sequence - but only if you tell them the sequence. That's what this node is for: it turns "5 shots over 5 seconds" into a ready-to-paste timeline like Shot 1 at 0.000s. Shot 2 at 1.250s. and so on, so the model knows what's supposed to happen when. It's the text-only sibling of the pack's image-driven timeline nodes: no images in, just structured guidance out, built from a duration you type or a video you connect.
This is the node for the family of video prompts that take timestamped shot guidance - the MiniMax H3 workflows in this same pack being the obvious target, where "Picture timestamps map one-to-one to already-selected images" and the text carries the timeline. If your workflow already has the images, you don't need this node. If you're prompting a video model purely from text, this is your shot list.
How it works
You set a duration in seconds, and segment_count (default 5) decides how many timestamped entries to lay across it. The outputs are:
timestamps text- every timestamp in one line.timeline text- each entry formatted viatimeline_text_structure, defaultShot <<shot>> at <<timestamp>>.You can swap in<<time>>or<<timestamp>>placeholders and any prose you like.structured timeline text- one whole-paragraph template, defaultTarget video duration is <<duration>> seconds divided into <<segments>> segments. <<shot>> at <<timestamp>>., where<<duration>>and<<segments>>are scalars and the shot/timestamp section repeats for every entry.video runtime- the length in seconds as a number, handy if you're driving other nodes off it.
The clever bit is focus_areas (0–3) plus focus_one, focus_two, focus_three. With focus_areas at 0 (default), entries space evenly. Set it to 1 and all entries cluster toward one end of the timeline - the focus values run 0 (early) to 1 (late), 0.5 balanced. Two or three parts lets you cluster different groups at different points: shots bunched in the opening, a gap, shots bunched in the finale. It's a compact way to express pacing without hand-authoring every timestamp.
Two things worth knowing
- Connect the optional
videoinput and its native duration overrides yourdurationwidget - the widget is only for manual use. Useful when you're building a timeline to match footage you already have. timestamp_format(default00.000s) is reused verbatim in every output, so change it once and all four outputs follow.
The trap to avoid
This is a text templating node, so the failure mode isn't a crash - it's feeding garbage structure to a model that takes it literally. If your video model ignores the timeline entirely, check that the template placeholders are spelled right (<<timestamp>>, not {timestamp}), and remember focus values only matter for the parts they belong to: focus_two does nothing unless focus_areas is at least 2. It won't generate a great video by itself - nothing will - but it's the fastest way to hand a model a pacing plan it can actually read.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| segment_count | INT | 5 | Number of timestamped timeline entries. |
| focus_areas | INT | 00–3 | How many parts to split the timeline into. 0 spaces entries evenly. |
| focus_one | FLOAT | 0.500–1 | Where entries group in the first part. 0 is early, 0.5 is balanced, 1 is late. |
| focus_two | FLOAT | 0.500–1 | Where entries group in the second part. 0 is early, 0.5 is balanced, 1 is late. |
| focus_three | FLOAT | 0.500–1 | Where entries group in the third part. 0 is early, 0.5 is balanced, 1 is late. |
| timestamp_format | COMBO | 00.000s | Formatting reused verbatim by every text output. |
| timeline_text_structure | STRING | Shot <<shot>> at <<timestamp>>. | One structure repeated for every timeline entry. Use <<shot>> and <<time>> or <<timestamp>>. |
| structured_timeline_text_structure | STRING | Target video duration is <<duration>> seconds divided into <<segments>> segments. <<shot>> at <<timestamp>>. | One whole-timeline structure. <<duration>> and <<segments>> are scalars; <<timestamps>> is comma-and-space-separated; one <<shot>> … <<timestamp>> section repeats comma-and-space-separated for every timeline entry. |
| durationopt | FLOAT | 5.00 | Length of the video in seconds. Ignored when video is connected. |
| videoopt | VIDEO | Optional video whose native duration overrides the duration widget. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| timestamps text | STRING | All formatted timestamps in one line. |
| timeline text | STRING | Timeline text ready for a prompt. |
| video runtime | FLOAT | Length of the video in seconds. |
| structured timeline text | STRING | Text with video length and Picture timestamps. |