When you want to automate this

A daily short, without opening an editor.

1
See it
OutputMP4
Size720 × 1280 (9:16)
Length17s
Frame rate25 fps
Tracks / clips6 / 9
Assets used1 caption, 1 image, 1 text, 5 text-to-image, 1 text-to-speech
Soundtrackno
Merge fields7
2
Make it yours

Send a merge array with your values for these fields:

FieldDefault value
{{ VOICEOVER }}Did you know that bananas are slightly radioactive? They contain potassium-40, a naturally occurring isotope that emits a small amount of radiation. Don’t worry though, you’d have to eat over 10 million bananas at once to experience any harmful effects! This phenomenon is known as the ‘banana equivalent dose,’ and it’s a fun way to understand radiation in everyday life.
{{ IMAGE_1_PROMPT }}A perfectly peeled banana hovers gracefully above a sleek, reflective metal surface in a futuristic laboratory. Suspended just above the banana is a glowing radiation symbol, its black lines crisp and sharp against the radiant yellow center. The glossy surface of the table captures reflections of the warm orange gradient in the background, adding a sense of depth and energy to the scene. Soft, translucent bubbles float effortlessly around the banana, reflecting light and casting gentle highlights across the smooth lines of the scene. The retro-futuristic vibe, with its glossy finishes and clean, curved lines, evokes a sense of mid-century sci-fi, blending the playful imagery of the banana with the precise, scientific iconography of the radiation symbol.
{{ IMAGE_2_PROMPT }}A half-peeled banana floats above a shiny metal table in a laboratory setting, with a detailed potassium atom suspended within the fruit’s curved form. The shiny surface of the table reflects the vibrant orange background, while the banana’s yellow colors contrast against the glowing nucleus and orbiting electrons of the atom. Surrounding the banana, translucent bubbles float gently, reflecting light and adding depth to the scene. The smooth lines and retro-futuristic aesthetic, reminiscent of mid-century sci-fi illustrations, are complemented by the juxtaposition of the banana’s natural form and the scientifically precise atom within.
{{ IMAGE_3_PROMPT }}A small stack of perfectly ripe, peeled bananas rests on a sleek metal table inside a retro-futuristic laboratory. Beside the stack, a modern, digital radiation meter floats just above the surface, its glowing screen reflecting softly on the shiny table. The background features a warm orange gradient, complemented by softly floating translucent bubbles that reflect the surrounding light. Smooth lines and a glossy finish give the scene a mid-century sci-fi aesthetic, emphasizing the playful yet precise contrast between the bananas’ natural form and the scientific equipment around them.
{{ IMAGE_4_PROMPT }}A single, peeled banana stands upright in the center of a gleaming metal platform, floating slightly above the surface in a futuristic lab environment. Surrounding the banana, softly glowing translucent bubbles float, adding depth and reflecting the ambient light. The background is a vibrant orange gradient, seamlessly blending with the reflective surface of the platform. The scene has a retro-futuristic feel, with smooth lines and a sleek, glossy finish reminiscent of mid-century sci-fi artwork. The juxtaposition of the banana’s natural form with the scientific, futuristic setting creates a whimsical yet thought-provoking contrast.
{{ IMAGE_5_PROMPT }}A sleek laboratory scene features a perfectly peeled banana sliced down the middle, with one half revealing a detailed potassium atom inside, complete with orbiting electrons and a glowing nucleus. The banana hovers just above a shiny, reflective table, which mirrors the vibrant orange gradient of the background. Soft, translucent bubbles float through the air, reflecting light and adding a sense of depth to the composition. The artwork’s retro-futuristic aesthetic, inspired by mid-century sci-fi illustrations, emphasizes smooth lines and glossy finishes, creating a visually striking contrast between the organic banana and the scientific precision of the atom.
{{ HEADLINE }}Surprising Banana Fact
Edit and save to your account
3
Run it once

Save the JSON above as template.json, then render in the free sandbox:

# Save the JSON above as template.json, then:
curl -X POST https://api.shotstack.io/edit/stage/render \
  -H "x-api-key: $SHOTSTACK_API_KEY" \
  -H "Content-Type: application/json" \
  -d @template.json

# Poll until status is "done", then download response.url
curl https://api.shotstack.io/edit/stage/render/RENDER_ID -H "x-api-key: $SHOTSTACK_API_KEY"
import { readFileSync } from 'node:fs';

const headers = { 'x-api-key': process.env.SHOTSTACK_API_KEY, 'Content-Type': 'application/json' };
const edit = JSON.parse(readFileSync('template.json', 'utf8'));

const { response } = await fetch('https://api.shotstack.io/edit/stage/render', {
  method: 'POST', headers, body: JSON.stringify(edit)
}).then((r) => r.json());

let render;
do {
  await new Promise((r) => setTimeout(r, 3000));
  render = (await fetch(`https://api.shotstack.io/edit/stage/render/${response.id}`, { headers }).then((r) => r.json())).response;
} while (!['done', 'failed'].includes(render.status));

console.log(render.status, render.url);
import json, os, time, requests

headers = {"x-api-key": os.environ["SHOTSTACK_API_KEY"]}
with open("template.json") as f:
    edit = json.load(f)

render_id = requests.post("https://api.shotstack.io/edit/stage/render", json=edit, headers=headers).json()["response"]["id"]

while True:
    render = requests.get(f"https://api.shotstack.io/edit/stage/render/{render_id}", headers=headers).json()["response"]
    if render["status"] in ("done", "failed"):
        break
    time.sleep(3)

print(render["status"], render.get("url"))
npm install -g @shotstack/cli
export SHOTSTACK_API_KEY=your_sandbox_key

shotstack validate template.json          # offline schema check, free
shotstack render template.json --env stage --watch

Sandbox renders are free and watermarked. Production: the v1 endpoint and key. SDKs

4
Automate it

Schedule it against a topic list or feed and post a fresh short every day.

Paste into Claude, ChatGPT or Cursor — your AI assistant builds the workflow around your data.

Node.js, one render per CSV row, wired to this template's 7 merge fields. Setup steps in the header.

Guides: Bulk-create from a CSV · Webhooks · Templates endpoint · Render your first video

AI assistants: Markdown () · · · CLI skill: SKILL.md () · MCP server

Common questions

How do I change the text and media without editing the JSON?

Use the 7 merge fields listed above. Send a merge array with your own values for each field and the API swaps them in at render time, so one template can produce thousands of unique videos.

Is this template made for TikTok, Reels and Shorts?

Yes. It renders vertical 720×1280 (9:16), the format those platforms expect. Change output.size or output.aspectRatio in the JSON if you also need a square or landscape cut.

Can I use my own photos?

Yes. The template uses 1 image; replace each image asset's src with a public URL of your own file (JPG, PNG or WebP). Keep the timing and effects, or adjust them per clip.

How do I change the text and fonts?

Edit the text on each text asset in the JSON. Fonts come from the timeline fonts list or the asset's font family; add your own font file URL to timeline.fonts to use a brand typeface.