A b-roll shot list template is a table with one row per scene: the script line, the picture that line requires, the search, the file, and the license. Copy the table below, or download the same columns as a CSV. Fill a row before you download a clip. The sheet is the record. The video is still your edit.

This is a sourcing template, not a theory of B-roll. If you need the definition and the places footage comes from, start with the B-roll footage guide. If a client handed you a script and no visual direction, pair this sheet with the visual-brief questions. The sheet does not replace those decisions. It stores them.

Download the b-roll shot list template (CSV)

What goes in a b-roll shot list template?

Each row is one scene. The columns force you to name the line, the visible action, the search, the file, where it came from, and whether you are keeping it. A row without a script line is a clip you will not be able to place. A row without a file name is a decision you have not finished.

Nine columns are enough. More columns turn the sheet into a production budget, which is a different document. Use these:

ColumnWhat to write
SceneA number in script order. Scene 01 is the first picture, not the first paragraph of setup if that paragraph has no picture.
Script lineThe sentence the viewer will hear, copied, not paraphrased. If the sentence changes, the row changes.
What the shot must showThe action, object, or place that makes the line true on screen. Not the theme.
Search querySubject, action, setting. Short enough to paste into a stock site.
SourcePexels, Pixabay, your camera, the client, or another library you name. "Internet" is not a source.
File or URLThe file name you will import, or the page URL until you have the file.
License noteThe license name and any limit you actually read. "Free" is not a license note.
Keep or replaceKeep, replace, or shoot. Empty means you have not watched the clip against the line.
Editor noteCrop, a logo to avoid, a second clip for a vertical version, or the client asset you are still waiting on.

The CSV uses those headers in the same order. The first data row is an example. Delete it when you start a real job, or move it to a tab your spreadsheet calls "example." Blank rows under it are there so you can type immediately. The file is plain text. It opens in Excel, Google Sheets, Numbers, and any editor that accepts CSV.

How do you fill the template from a script?

Read the script once and add a row only where a picture carries information the words need. Write the visible action before you search. Then search, watch, and either keep the file or mark the row replace. Do not download a stack of candidates and sort them later. Later is how the desktop fills up.

The example is a podcast cutdown we invented for this template. It is not a real episode. The host is explaining a freelance editor's Tuesday. Only some sentences need footage.

"I open the project and the bin is named Final Final. The client writes at 7 a.m. asking for the logo on every lower third. I export a cut at lunch. By evening the notes are in, and they are about the music, not the logo."

SceneScript lineWhat the shot must showSearch querySourceFile or URLLicense noteKeep or replaceEditor note
1I open the project and the bin is named Final Final.A video project opening on a computer. The bin name can be a title you add. Stock will not show this project's real bin.editor opening video project laptopPexelsscene-01_editor-laptop.mp4Pexels License. Free to use. Attribution not required. See the license page.KeepAdd the words "Final Final" as a caption. Do not pretend the screen is the client's real project.
2The client writes at 7 a.m.An early message being read. A phone in morning light is enough. Do not show a readable stranger's private chat.person reading phone morning windowPixabayscene-02_phone-morning.jpgCheck the Pixabay license on the file you downloaded. Do not assume it matches Pexels.KeepCrop out any visible name.
3Asking for the logo on every lower third.This is the client's brand. Stock of a random logo contradicts the line.Clientwaiting on logo packClient must confirm we can show the logo.ShootUse their style frame, or a mock lower third they approved. Not a stock brand.
4I export a cut at lunch.An export or progress finishing, around midday. A food shot does not say export.video export progress bar computerPexelsReplaceFirst results were restaurants. New search: "video rendering on laptop".
5By evening the notes are in, and they are about the music.Evening, then something that reads as music notes arriving. Two beats if one clip cannot do both.headphones video edit eveningPexelsscene-05_headphones-evening.mp4Pexels License, same limits as scene 1.KeepPair with a second short clip of a message only if no personal data is readable.

Scene 3 is the point of the sheet. The template makes the missing client asset visible before you pretend stock can play a logo. Scene 4 shows a failed search written down, so the next person does not download the restaurant clip. Scene 2 separates Pixabay from Pexels on purpose. A pack that mixes them needs two license notes.

Abstract lines, if you add them, still need a concrete picture. "The afternoon got away from me" is not a search. Pick an action, such as a clock and a still-open laptop, and read finding B-roll for abstract ideas if the whole script is written in concepts.

How do you use the CSV with a stock search?

Put the search query into Pexels or Pixabay, watch the action, then come back and fill source, file name, license, and keep or replace. The CSV is finished for a scene when a stranger could find the file and know which line it serves. A full downloads folder with an empty sheet is not finished.

  1. Save a copy of the CSV named for the video, not "template." One file per video.
  2. Delete the example row, or leave it above a blank line you will not import into the edit notes.
  3. Paste script lines that need pictures. Number them. Leave the search column blank until the "must show" column is a visible action.
  4. Search. For Pexels video, start at the video search and filter to the frame you are cutting, horizontal or vertical.
  5. Download only the file you might keep. Rename it with the scene number before it lands in a shared folder: scene-04_rendering-laptop.mp4.
  6. Write the license you relied on. For Pexels, link the decision to the Pexels License and, if the channel runs ads, to the monetization article. For any other site, open that site's license. Do not copy the Pexels note across rows.
  7. Mark keep, replace, or shoot. Replace means you still need a file. Shoot means stock is the wrong source.
  8. Hand the sheet to the editor with the folder. The editor note is where crop and "do not imply this is our customer" belong.

Manual search habits, including how to write the query so the first page is usable, are in finding stock footage faster. The template does not make a vague query specific. It only gives the specific query a place to live.

How does the template map to a ScenePull ZIP?

Paste the same script into ScenePull, review the suggested clips and stills, and copy each accepted file name into the sheet. The ZIP already groups files as broll/scene-01_... and images/scene-01_..., and metadata.json lists the scene description and keyword. The sheet is where you add the judgment the ZIP does not contain: keep or replace, client assets, and license caveats.

ScenePull searches Pexels and Pixabay. A single generation can include both, so the source column still matters. Videos tend to come from Pexels first, with Pixabay as a fallback. Stills tend to come from Pixabay first, with Pexels as a fallback. Read the file's origin. Do not label the whole ZIP "Pexels."

Choose horizontal or vertical before the search, and note it on row 1. A later vertical cut can lose the subject of a wide clip. You can swap a suggestion, including with a phrase you type, while the project is in review. Update the search column to the phrase that produced the file you kept.

Caps, so the sheet matches what comes back: free is 3 generations a month and the first 3 scenes, scripts up to 2,000 characters, SD. Starter is $9 a month or $90 a year, 15 generations, up to 10 scenes, scripts up to 5,000 characters, HD. Pro is $29 a month or $290 a year, 50 generations, up to 50 scenes, scripts up to 30,000 characters, HD. A free run fills the first three stock rows, not an 18-scene sheet. ScenePull does not turn the sheet into a timeline and does not export a Premiere or DaVinci project.

Fill the first rows from a real script

Use the template to mark the lines, then run the script through ScenePull and paste the accepted file names back into the CSV.

Match My Shot List

What should you leave out of the sheet?

Leave out anything you have not decided, anything private, and any duration you have not measured against the recording. Empty is more honest than a guess that looks like a plan. The sheet is often emailed. Write it as if the client will read it, because they might.

  • Do not invent timecodes. Write duration after the voice is cut, in the editor, or leave it out. A template that demands "0:04-0:07" before the read is fiction.
  • Do not paste a client's unreleased product details, login screens, or customer names into a file you will upload to a stock tool. The search query should be generic even when the editor note says "use the client's capture."
  • Do not list a clip as keep because the thumbnail looked right. The keep column means you watched the action.
  • Do not use one license sentence for a mixed folder. Scene 1 and scene 2 in the example are different libraries on purpose.
  • Do not add a column for "mood" unless the mood changes the search. "Calm, premium, authentic" does not help a stock site. "Empty office at dusk" does.

If a producer says "more stock" and means "more coverage," point them at stock footage versus B-roll and keep rows tied to lines. When every keep row has a file and every shoot row has an owner, sourcing is done.

Questions about the shot list template

Is the CSV free to use on client work?

Yes. Download it, duplicate it per video, and put it in the project folder. You do not need to credit ScenePull for the sheet. The footage you link from the sheet is a separate rights question. The template does not license any clip.

Why is there no timecode column?

Because a sourcing list happens before the pictures have a duration on a timeline. Adding a fake timecode makes the sheet look finished when the edit has not started. Put timing in the editor, or add a column later if your team truly cuts from the sheet.

Can a team share one CSV?

Yes, if one person is allowed to rename files. Two people downloading "scene-04" into two folders will diverge. Agree that the file-name column is the only name that may be imported. Google Sheets can import the CSV if you want comments. Keep the license column visible when you do.

What if ScenePull's scene numbers disagree with mine?

Your sheet is the authority if you already marked the lines. Use ScenePull's file as the media, and write your scene number in the file name when you copy it into the project. Note the original ZIP name in the editor column so you can find it again.

Does this replace a storyboard?

No. A storyboard draws the frame. This sheet records the search and the file. For a talking-head video you may need both. For a faceless narration, the sheet is usually the only planning document you will keep open while downloading.

How many rows should a YouTube video have?

As many as there are lines that need a distinct picture, inside the scene cap of the plan you will use to source them. A number copied from another channel is not a target. Five precise rows beat twenty repeats of a laptop.

Download the sheet, then fill it from a script

The CSV is the blank version of the tables on this page. ScenePull can suggest the files for the rows you mark as stock.

Download the CSV

Suggest Clips for My Rows