A Sheet Is a Good Control Panel for a Bulk Video Generator
Short AI clips are useful for product teasers, social posts and ad tests, but making them one at a time is tedious. You write a prompt, wait, download a file, and then lose track of which prompt produced which clip. When you want ten clips with the same style, the bookkeeping takes longer than the generating.
A spreadsheet is a decent control panel for this. The scene, the shot description, the model you used and the link to the finished clip all sit on one row. You can reorder, filter, add notes and share it. This post shows how to use Google Sheets as a bulk video generator front end, with SheetAI passing your prompts to a video model on Replicate. It is for marketers, small shops and creators who already plan content in a sheet and want to generate a handful of short clips from that plan.
I want to be straightforward about the limits up front. Video models are slow, and Google Sheets formulas have a time limit. So this workflow is best for a few clips at a time, and for longer clips you will want to run the model on Replicate directly and paste the links back. The details are below.
How It Works
SheetAI has a function that runs any Replicate model:
=SHEETAI_Replicate("owner/model:version", prompt)
It passes your prompt to the Replicate model you name, and returns the output file link in the cell. That is all it does. It does not choose a model for you, and it does not edit or stitch clips. You bring the model and the key.
Replicate hosts many models from different authors, including video and audio ones. The model identifier has the shape owner/model:version, and you copy the real one from the model page on replicate.com. I am using that placeholder throughout this post on purpose. Models are added and replaced often, so check the model page for the current one and for what inputs it accepts.
What You Need
- SheetAI installed. Install it from the Google Workspace Marketplace, then in a sheet go to
Extensions,SheetAI App,Launch. It works in Google Sheets, not Microsoft Excel. - A Replicate account and API key. Paste the key into the SheetAI sidebar settings. SheetAI itself is free with your own keys, and Replicate bills you directly. Hosted plans without keys start at $12/month, see pricing, but for this workflow check that you have a Replicate key set up.
- A video model chosen on replicate.com. Open its page, read the inputs it takes, and copy the
owner/model:versionidentifier. - A short list of scenes. Five to ten is plenty to start.
Step 1: Lay Out the Sheet
Here is the layout I use:
| Column | Content |
|---|---|
| A | Scene or product |
| B | Shot description (the prompt) |
| C | Clip link from the model |
| D | Status or notes |
| F1 | The model identifier, owner/model:version |
Putting the model identifier in one cell, F1, means you can swap models by changing one cell, and the sheet records which model made which batch. Refer to it as $F$1 so the reference does not move when you drag formulas down.
Step 2: Write the Shot Descriptions
You can write column B by hand, which gives you the most control. If you have a long list, let SheetAI write a first draft from the scene in column A:
=SHEETAI("Write one shot description for a 5 second product video of: "&A2&". Include the subject, one simple action, one camera move and the lighting. Under 40 words. No text on screen.", 120, 0.4)
Read every line before you generate anything. A video request costs more than a text request, so fix the prompts first, while they are still cheap to change.
| A | B | |
|---|---|---|
| 1 | Scene | Shot description |
| 2 | Soy wax candle | A soy candle is lit on an oak shelf, the flame settles, slow push in, warm evening light. |
| 3 | Linen throw blanket | A hand lays an oat linen throw over a sofa, slow pan left, soft morning window light. |
| 4 | Ceramic pour-over coffee set | Hot water pours over coffee grounds in a ceramic dripper, close up, steam rising, side light. |
| 5 | Stainless steel water bottle | A steel bottle is set down on a rock beside a trail, slow orbit, cool daylight. |
| 6 | Oak serving board | Hands place bread and olives on an oak board, overhead shot, steady camera, warm light. |
Step 3: Generate One Clip
Put your model identifier in F1. In C2:
=SHEETAI_Replicate($F$1, B2)
The cell returns a link to the output file. Open the link in a browser and look at the clip. Do this for a single row first. If the clip is wrong, you want to find out on one row, not on twenty.
Different models take different inputs, such as duration or aspect ratio, and some are set from the model page defaults. Check what the model page says it accepts, and keep your prompt to the plain description if you are unsure.
Step 4: Fill the Next Few Rows
Once one row works, drag the formula down a few rows at a time. When a row has a link, mark it in column D, for example "Clip ok" or "Redo: too dark". That status column is what makes the sheet useful later, because you can filter on it.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Scene | Shot description | Clip link | Status |
| 2 | Soy wax candle | A soy candle is lit on an oak shelf, slow push in, warm evening light. | https://replicate.delivery/.../clip-01.mp4 | Clip ok |
| 3 | Linen throw blanket | A hand lays an oat linen throw over a sofa, slow pan left, soft light. | https://replicate.delivery/.../clip-02.mp4 | Redo: hand looks odd |
| 4 | Ceramic pour-over coffee set | Hot water pours over coffee grounds, close up, steam rising. | https://replicate.delivery/.../clip-03.mp4 | Clip ok |
| 5 | Stainless steel water bottle | A steel bottle is set down on a rock beside a trail, slow orbit. | https://replicate.delivery/.../clip-04.mp4 | Not run yet |
| 6 | Oak serving board | Hands place bread and olives on an oak board, overhead shot. | https://replicate.delivery/.../clip-05.mp4 | Not run yet |
Writing Shot Prompts That Work
Video prompts reward being specific about a small number of things. I use this checklist for every shot:
- Subject. What is on screen, in a few words. One main subject.
- Action. One simple movement, for example "steam rising" or "a hand sets it down". Complex sequences tend to go wrong in a short clip.
- Camera move. "Slow push in", "slow pan left", "overhead, steady". Without it the model picks one for you.
- Length. If the model lets you choose a duration, keep it short. If not, the model decides.
- Style and light. "Warm evening light", "soft window light", "clean studio".
- What to avoid. "No text on screen" is a useful default, since text in generated video is unreliable.
Keeping a Set Consistent
Clips made from different prompts will not match unless you make them match. Three habits help:
-
Keep the model in one cell. Do not mix models inside a batch unless you want different looks.
-
Put the shared style in one cell. Store a style line such as
warm light, shallow depth of field, steady camerain F2 and add it to every prompt:=SHEETAI_Replicate($F$1, B2&", "&$F$2) -
Vary only the subject. If you also change the lighting and the camera move in every row, the set stops looking like a set.
Even then, expect similar rather than identical results. That is fine for social posts and ad tests. It is not enough if a brand guide requires exact matches.
Cost Awareness
Video models on Replicate generally bill per second of output, but the details depend on the model, so check the pricing shown on the model page before you run a batch. I will not quote any prices here because they change. Two practical points follow from that. Longer clips cost more, so start with short ones. And a redo costs the same as the first attempt, so a careful prompt is cheaper than a quick one. SheetAI caches results, so the same prompt on the same model is not billed twice, but any edit to the prompt is a new request.
The Important Limit: Timeouts
Google Sheets custom functions time out after about 30 seconds per cell. Text models usually answer well within that. Video models often take much longer. That has some consequences:
- Start with one row. If one row times out, a column of them will too.
- Use fast or short models. Model pages usually say whether a model is quick, and shorter clips finish sooner.
- Run a few rows at a time. Do not drag the formula down 100 rows and walk away.
- For long clips, run the model on Replicate directly. Generate the clip on replicate.com or through its own tools, then paste the output link into column C as a plain value. The sheet still tracks the scenes, prompts and status, it just is not the thing that runs the model.
If a cell shows an error, check whether the clip appears in your Replicate account's prediction history. A request can finish on Replicate even when the cell did not wait for it.
Also remember that output links may not last forever. Download the clips you want to keep, then replace or note the link. Freeze finished cells with Paste special, Values only so a recalculation does not trigger a new request. The freezing guide explains how.
The Same Pattern for Music and Audio
Replicate also hosts audio and music models. The pattern is identical, only the model identifier and the prompt change:
=SHEETAI_Replicate($H$1, "Calm acoustic loop, 30 seconds, no vocals, for a "&A2&" product video")
Put the audio model identifier in H1, a mood or brief per row in A, and the returned link in the next column. The same limits apply: check the model page for inputs and billing, expect it to be slower than text, and download the files you want to keep.
| A | B | C | |
|---|---|---|---|
| 1 | Product | Music link | Status |
| 2 | Soy wax candle | https://replicate.delivery/.../track-01.mp3 | Keep |
| 3 | Linen throw blanket | https://replicate.delivery/.../track-02.mp3 | Keep |
| 4 | Ceramic pour-over coffee set | https://replicate.delivery/.../track-03.mp3 | Too busy, redo |
| 5 | Stainless steel water bottle | https://replicate.delivery/.../track-04.mp3 | Not run yet |
| 6 | Oak serving board | https://replicate.delivery/.../track-05.mp3 | Not run yet |
When Another Tool Is the Better Choice
A sheet is a planning and tracking tool, not a video editor. Use something else when:
- You need clips longer than a few seconds, or a finished video with voiceover, captions and cuts. Generate the pieces, then edit them in a video editor.
- You need exact brand consistency or a real person on screen. Film it.
- You need hundreds of clips. Run the model on Replicate directly with its own tools and keep the sheet as the index.
- You have not checked the rights. Read the terms of the model and of the platform where you will publish. Some platforms ask you to label AI video.
For the text side of the workflow, the same approach of drafting with a formula and reviewing by hand is described in the guide to an AI product description generator in Google Sheets, and the OpenAI and Claude model pages list the models you can use for writing the shot descriptions.
Frequently Asked Questions
Can Google Sheets generate videos?
Not by itself. With SheetAI you can send a prompt from a cell to a video model on Replicate and get the output file link back in the cell. The model does the generating, so you need your own Replicate key and a model chosen from replicate.com.
How do I find the model identifier?
Open the model page on replicate.com and copy the identifier in the form owner/model:version. Check the inputs listed on the same page, since models differ.
Why does my cell show an error for a video?
Most often it is the time limit. Google Sheets formulas stop waiting after about 30 seconds, and video models can take longer. Try one row, a shorter or faster model, or run the model directly on Replicate and paste the link.
How much does it cost to generate videos from a spreadsheet?
SheetAI works free with your own key, and Replicate bills you for each run, usually by the second of output. Check the pricing on the model page before a batch. Hosted SheetAI plans start at $12/month, see pricing.
Can I generate videos from a spreadsheet in bulk?
You can plan and track in bulk, and generate in small batches. For large batches or long clips, run the model on Replicate directly and keep the links in the sheet.
Start with One Shot
Pick one scene, write one careful shot description, set your model identifier in F1 and generate a single clip. If it works, go a few rows at a time. You can install the add-on from the Google Workspace Marketplace or read the getting started guide first.