AVScript is a browser-based video editing assistant designed around the way journalists and editors actually think — in timecodes, not mouse clicks. This manual covers every panel, every button, and every keyboard shortcut. Bookmark it and come back whenever something isn’t obvious.
Overview
When you open a project you land in the Editor. The screen is divided into five main zones:
Each zone is described in full below. On a wide screen the Clip List doubles as a vertical timeline and can be switched to a bin grid for visual browsing.
Toolbar
The toolbar runs across the top of the editor and is always visible.
| Element | What it does |
|---|---|
| ← Home | Returns to the project library without losing your work |
| AVSCRIPT | Brand logo — also a home link |
| Library / Project name | Click the project name to rename it inline |
| ● (dot) | Autosave indicator. Orange = unsaved changes, green = saved, red = save failed |
| fps selector | Sets the timeline frame rate. Changing it mid-project re-computes all timecodes |
| MI: OK / MI: – | MediaInfo status. OK means the WASM analyser is loaded and ready to extract frame rate and codec from imported files |
| ↺ MI | Force-reloads the MediaInfo WASM module if it failed on first load |
| ··· | Opens the project actions menu |
| 📡 CoWork | Opens the real-time video collaboration panel. Visible only when the project has an active sharing connection. Both users connect to the same room automatically — no link sharing needed. |
| 🎬 MG | Opens the Motion Graphics Generator panel for creating lower thirds, title cards, countdowns and more. |
Project actions menu (···)
- Color Grading (LUT) — opens the global LUT colour-grading panel (applies to the whole project)
- Motion Graphics — opens the MG generator panel for creating lower thirds, title cards, countdowns, and credit rolls
- Export PDF — generates a print-ready shot list with Media Bin and script table
- Export FCPXML — Final Cut Pro X timeline (FCPXML 1.13)
- Export Premiere XML — opens the Premiere XML export modal; exports a native FCP7/xmeml timeline for Premiere Pro and DaVinci Resolve (no Translation Report)
- Export EDL — CMX 3600 plain-text EDL compatible with every professional NLE
- Delete all clips — clears the timeline (bin is not affected)
- Delete project — permanently deletes the project from the server (only visible for saved server projects)
Media Bin
The Media Bin lives on the left side of the screen. It holds every file associated with your project — videos, audio, or multicam groups.
| # | Name | Kind | Duration | FPS | Size | ✔ | ||
|---|---|---|---|---|---|---|---|---|
| 1 | interview_a.mp4 | Video | 00:03:45 | 25 | 1.2 GB | ✔ | ||
| 2 | broll_park.mp4 | Video | 00:01:22 | 25 | 480 MB | ✔ | ||
| 3 | ambient_sound.wav | Audio | 00:05:00 | — | 52 MB | ○ |
Bin columns explained
| Column | Meaning |
|---|---|
| # | Sequential bin number. Use this to identify which bin slot a clip occupies |
| Thumbnail | Small preview frame. Click a row to load the file into the player |
| Colour dot | Per-file accent colour. Click the dot to change it — the same colour appears on timeline clips |
| Name | Original file name |
| Kind | Video, Audio, or Multicam |
| Duration | Total file length |
| FPS | Source frame rate detected by MediaInfo |
| Size | File size on disk |
| ✔ / ○ | Server sync status. ✔ means the file is uploaded to the cloud; ○ means local only |
Importing files
You can bring media into the bin three ways:
- Drag & drop files directly onto the bin area
- Import from server — click the Import button to browse your cloud library
- Upload — click Upload to send a new file to the cloud and add it to the bin simultaneously
After import, AVScript runs MediaInfo in the background to extract the exact frame rate and codec. The bin row updates automatically when the analysis finishes — you’ll see FPS change from
—to a real value.
Transcription
Each uploaded file shows a language selector and a Transcribe button in its bin row. When the button is green, a transcript already exists — click it to open the Transcript Panel directly. When it is grey, clicking it first checks the server for an existing transcript (Story AI may have already transcribed the file via AssemblyAI). If nothing is found, Whisper AI transcription starts immediately.
Transcripts produced by Story AI (AssemblyAI, word-level timecodes) and transcripts produced by the Transcribe button (Whisper) are stored in the same place and work identically in the player. You never need to run both — whichever runs first wins, and the button reflects the result regardless of which path produced it.
Filmstrip
The filmstrip sits below the player. It shows evenly-spaced thumbnail frames from whichever file is loaded.
- Scrubbing — click anywhere on the filmstrip to jump to that point in the file
- IN handle (left yellow bar) — drag to set the clip’s In point, or press I
- OUT handle (right yellow bar) — drag to set the clip’s Out point, or press O
- Yellow selection overlay — shows the selected In-to-Out region; the dimmed area outside is excluded from the clip
The filmstrip uses bucket-midpoint sampling — each frame is taken from the centre of an equal segment of the clip, so the first and last frames are never black even if the video fades in/out.
Timecode Display
The three-field timecode bar is always visible above the transport controls.
| Field | Shows |
|---|---|
| IN | The current In point (frame accurate). Orange = set; dashes = not set |
| SRC | The player’s current position (source timecode) — updates as you scrub |
| OUT | The current Out point. Displayed below IN for compact vertical layout |
| DUR | Duration between IN and OUT — shown when both are set |
Transport Controls
The transport strip sits between the timecode bar and the filmstrip.
Navigation group
| Button | Key | Action |
|---|---|---|
| ⏮ Go to In | — | Jumps player to the In point |
| ◀ Step back | ← | Steps back 1 frame (Shift = 10 frames) |
| ▶ Play/Pause | Space (player focus) | Toggles playback |
| ▶ Step fwd | → | Steps forward 1 frame (Shift = 10 frames) |
| ⏭ Go to Out | — | Jumps player to the Out point |
The ◀ and ▶ buttons briefly flash when you press the left or right arrow key so you always know which direction you stepped.
Edit group
| Button | Key | Action |
|---|---|---|
| I | I | Set In point at current playhead position |
| O | O | Set Out point at current playhead position |
| E | E | Add the current In→Out selection to the timeline as a new clip |
| W | W | Add a 5-second black (solid colour) slug to the timeline |
Playback modifiers
| Button | Action |
|---|---|
| ↺ Loop | Loops the current In→Out range. Orange = loop active. When an In and Out point are set, playback loops exactly between them (snaps back to In when Out is reached). With no range set, the whole clip loops natively. Only togglable with the mouse — Space always stays Play/Pause. |
| ⛶ Fullscreen | Expands the player to fill the screen |
JKL Shuttle
AVScript supports the industry-standard JKL shuttle system used in Avid, Premiere, and Final Cut:
(press again = 2× → 4× → 8×)
(press again = 2× → 4× → 8×)
Each press of J or L doubles the shuttle speed. K stops playback and resets the speed to zero. This is the fastest way to review footage without touching the mouse.
Clip List
The Clip List is the vertical representation of your timeline — one row per clip, in sequence order.
| # | BIN | Start | End | Duration | Caption | Sub | Cam | CC |
|---|---|---|---|---|---|---|---|---|
| 1. | 1 | 00:00:00:00 | 00:00:10:00 | 00:00:10:00 | ||||
| 2. | 2 | 00:00:10:00 | 00:01:23:05 | 00:01:13:05 | ||||
| 3. | ■ | 00:01:23:05 | 00:01:28:05 | 00:00:05:00 |
Clip list columns
| Column | Meaning |
|---|---|
| # | Clip sequence number |
| BIN | Which bin slot the clip comes from. Black slugs show ■ |
| Start / End | Clip start and end positions in the assembled timeline |
| Duration | Clip length |
| Caption | Editable text field — type a caption directly in the row; it also appears as a subtitle in the player |
| Sub | Caption mode selector — three small icons that control what the player shows as subtitle overlay for this clip. T (green) = timecoded speech transcript; E (purple) = Hume emotion labels; V (amber) = AI visual description. An icon is coloured when its data exists; click to activate, click again to deactivate. Only one mode is active at a time. MG clips and black slugs show only T (caption text). |
| Cam | For multicam clips, switch camera angle without opening any panel |
| CC | Colour Correction indicator. Bright 🎨 = CC is applied; dim 🎨 = no CC |
Clip list keyboard navigation
When focus is on the clip list:
| Key | Action |
|---|---|
| ↑ / ↓ | Select previous / next clip; loads it into the player |
| Enter | Opens the clip editor modal for the selected clip |
| Backspace / Delete | Removes the selected clip from the timeline |
| Space | Play / pause |
| ← / → | Step 1 frame (Shift = 10 frames) |
Rows can be dragged to reorder the sequence. Drag is undoable with Cmd+Z (Mac) / Ctrl+Z (Windows) — the same undo stack used by timeline edits.
▶ Play all
The red ▶ Play all button above the clip list header plays the entire assembled timeline from the first clip to the last, updating the horizontal timeline playhead as it goes.
Horizontal Timeline
The Horizontal Timeline is at the bottom of the screen. It shows the same clips as the Clip List but as a visual sequence.
- Click a clip to select it and load it into the player
- Drag a clip left or right to reorder it
- Playhead (orange vertical line with handle) — drag it to scrub the assembled timeline
- Ctrl/Cmd + scroll — zoom in and out horizontally
- M — place a marker at the current playhead position
Timeline keyboard shortcuts
| Key | Action |
|---|---|
| M | Add marker at current position |
| S | Split selected clip at playhead |
| Ctrl/Cmd + + | Zoom in |
| Ctrl/Cmd + − | Zoom out |
| ← / → | Step playhead 1 frame |
| ↑ / ↓ | Select previous / next clip |
| Delete | Remove selected clip |
The Player
The player is the main video window. It has two render modes:
- Native video — the default. The
<video>element renders directly; no GPU overhead, full CORS compatibility. - WebGL overlay — activated only when the Color Grading (LUT) panel is open. A canvas sits on top of the video and applies the LUT in real time.
You can also drag a file from your computer directly onto the player area to load it instantly into the bin and player.
Color Correction (CC Panel)
Each clip has its own per-clip colour correction. Click the 🎨 icon in any clip row to open the CC panel for that clip.
CC parameters
| Slider | Range | Effect |
|---|---|---|
| Exposure | −3 to +3 stops | Multiplies pixel brightness by 2^exposure. +1 = double brightness |
| Contrast | 0.5× – 2× | S-curve contrast multiplier |
| Saturation | 0× – 2× | 0 = greyscale, 1 = natural, 2 = vivid |
| Temperature | −100 to +100 | Negative = cooler (blue), positive = warmer (orange) |
| Tint | −100 to +100 | Negative = green cast, positive = magenta cast |
CC is applied in real time via a CSS filter on the <video> element — no GPU shader required, so it works even on CORS-restricted R2 URLs. The values are saved per clip and included in the FCPXML export.
The 🎨 icon in the clip row lights up (orange) when a clip has any non-default CC applied. Clicking it also loads the clip’s video into the player so you can immediately see the correction in context.
Color Grading — LUT Panel
The LUT panel is a global look that applies to the whole project (not per clip). Open it from the ··· project menu.
Built-in looks: None, Cinematic, Warm, Cool, Fade, B&W, Teal+Orange.
You can also drop any .cube LUT file onto the drop zone to apply a custom look. The LUT is applied via WebGL (33×33×33 3D texture lookup) with full float precision.
Audio — VU Meter & Fader
The narrow audio strip to the right of the player provides basic monitoring and level control.
| Element | Function |
|---|---|
| VU canvas | Real-time peak meter. Green = safe, yellow = approaching clip, red = clipping |
| Fader | Vertical volume slider. Broadcast-style thin track with horizontal bar thumb |
| 🔊 / 🔇 | Mute toggle |
| dB label | Current peak level in dBFS |
Clip Editor Modal
Double-click any clip row, or select a clip and press Enter, to open the Clip Editor.
- Name — label shown in the clip list and timeline
- Caption — subtitle text shown during playback
- Colour — accent colour for this clip’s timeline block and row border
- For black/solid slugs: the colour picker changes the solid fill colour of the slug itself (the slug becomes that colour in both the timeline and the player)
Export
AVScript currently supports four export formats, each aimed at a different stage of the production workflow. Use the comparison table below to choose the right format, then read the per-format section for details.
Format comparison
| Feature | FCPXML | Premiere XML | EDL | |
|---|---|---|---|---|
| Video clips with timecodes | ✅ | ✅ | ✅ | ✅ |
| Source in / out TC | ✅ | ✅ | ✅ | ✅ |
| Captions / descriptions | printed text | Title layer | Text gen (V2) | * COMMENT |
| Black slugs | ✅ black row | ✅ <gap> | ✅ Slug gen | ✅ BL reel |
| Coloured slugs | ✅ hex colour | ✅ solid gen | ✅ Color Matte | ⚠️ → BL |
| Stereo audio tracks | ❌ | ✅ dialogue role | ✅ A1 + A2 | ❌ |
| Media Bin summary | ✅ | ❌ | ❌ | ❌ |
| NLE-ready timeline | ❌ | Final Cut Pro X | Premiere Pro | all major NLEs |
| DaVinci Resolve | ❌ | ✅ XML import | ✅ XML import | ✅ EDL import |
| Drop-frame TC (29.97) | ✅ | ✅ DF flag | ✅ NTSC flag | ✅ ; separator |
| Reel name limit | — | — | — | 8 chars |
| File format | .pdf (print) | .fcpxml | .xml | .edl |
PDF Shot List
··· → Export PDF opens a print-ready page in a new tab and triggers the browser’s print dialog. The document contains two sections — a Media Bin summary followed by the full Script table — and is formatted to fit standard A4 paper.
| # | Name | Kind | Duration | FPS | Size | Status |
|---|---|---|---|---|---|---|
| 1 | interview_studio.mp4 | Video | 00:08:22 | 25.00 | 1.4 GB | On server |
| 2 | broll_city.mp4 | Video | 00:03:15 | 25.00 | 560 MB | On server |
| 3 | anchor_closeup.mp4 | Video | 00:05:47 | 25.00 | 980 MB | On server |
| 4 | nat_sound_plaza.wav | Audio | 00:10:00 | — | 38 MB | Local |
| TC IN | TC OUT | DESCRIPTION | DURATION |
|---|---|---|---|
| 00:00:05:00 | 00:00:18:12 | 001 Anchor intro — live from the studio | 00:00:13:12 |
| 00:00:42:08 | 00:01:03:00 | 002 Interview: “The decision affects thousands…“ | 00:00:20:17 |
| 00:00:03:00 | BLACK | 00:00:03:00 | |
| 00:00:08:15 | 00:00:22:04 | 003 B-roll: city plaza, morning commuters | 00:00:13:14 |
| 00:00:05:00 | SLUG — transition | 00:00:05:00 | |
| 00:02:14:20 | 00:02:38:05 | 004 Closing statement, anchor signs off | 00:00:23:10 |
| TOTAL DURATION | 00:01:13:23 | ||
What’s included
| Element | Details |
|---|---|
| Logo + username | AVSCRIPT wordmark top-left with the account email below |
| Project info | Project name, library, date, and frame rate — top-right |
| Media Bin | All files in the bin: #, name, kind, duration, FPS, size, server status |
| Colour bar | Each bin row shows the file’s accent colour as a left border |
| Script table | TC IN · TC OUT · Description (sequence number + caption) · Duration |
| Black slugs | Rendered as full black rows so the reader knows it’s a gap |
| Colour slugs | Any solid-colour slug shows in its actual colour |
| Total Duration | Bold footer row at the bottom of the script table |
FCPXML — Final Cut Pro X
··· → Export FCPXML produces a Final Cut Pro X timeline file (FCPXML 1.13).
Import via File → Import → XML… in FCP to immediately get a rough cut with your selects. The file is DTD-valid and passes FCP’s built-in XML validator.
What’s in the file
| Element | How it maps |
|---|---|
| Media clips | <asset-clip> with frame-accurate offset, start, duration |
| Black gaps | <gap> element — no media needed |
| Coloured slugs | <video ref="rSolid"> Custom generator with RGB value |
| Captions | <title> on lane 1 above every clip that has a description |
| Audio | audioRole="dialogue" on every media clip |
| Multicam | Angle information preserved from the original FCPXML if imported |
| Source assets | <asset> + <format> entries in <resources> — all with /RELINK/ paths for relinking after transfer |
Limitations
- Colour correction (LUT / CC panel) is not included in the XML — apply in FCP after import
- Multicam clips preserve angle metadata but the multi-angle viewer must be rebuilt in FCP
MetaFlow FCPXML — AI-enriched export for Final Cut Pro
··· → Export FCPXML → ☑ Inject MetaFlow metadata produces a single-event FCPXML that brings all Story AI enrichment data directly into Final Cut Pro.
Make sure your source files are accessible before importing into Final Cut Pro. If files are stored in AVScript cloud, download them first.
When the checkbox is on, the exported .fcpxml file contains a single FCP Event with everything in one place:
| Contents | Details |
|---|---|
| Timeline sequence | Clips, gaps, structure — same as a plain export |
| Annotated source clips | One <asset-clip> per source file, enriched with all AI metadata |
What MetaFlow injects per source clip
| Data | Module | FCP element |
|---|---|---|
| Transcript | Transcribe | <caption> elements with word-level timecodes |
| Emotion keywords | Emotions AI | FCP Keywords (Emotion-Joy, Emotion-Tension, …) |
| Visual / topic tags | Visual AI | FCP Keywords (Topic-…, Scene-…) |
| Speaker labels | Transcribe | FCP Keywords (Speaker-…) |
| Markers | AVScript | <marker> elements with timecodes |
How to use in FCP
- Export FCPXML with MetaFlow checked
- File → Import → XML… in Final Cut Pro
- One new Event appears in your Library — your timeline and all annotated source clips together
- Use FCP Smart Collections to filter by keyword — e.g.
Emotion-Joyfinds every high-joy segment across all source files instantly
Source file relinking
MetaFlow assets export with /RELINK/ placeholder paths. On first import FCP will show a “Missing Files” dialog — navigate to your local copy of each file to relink. After that, the full AI metadata is attached to your local source files in FCP permanently.
Premiere XML — FCP7 / xmeml
··· → Export Premiere XML opens a modal and produces an FCP7-format XML file (<xmeml version="5">) that Adobe Premiere Pro imports natively via File → Import — no Translation Report, no XML bridge.
This is the most compatible NLE interchange format — Resolve, Avid, and most other NLEs also accept xmeml.
Export modal options
| Option | Default | What it does |
|---|---|---|
| V2 caption overlay | ON (when descriptions exist) | Adds clip descriptions as a legacy text generator on video track 2 — visible during review directly on the Premiere timeline |
| Bin metadata | ON (when descriptions exist) | Writes the description into <logginginfo><description> so it appears in Premiere’s project bin Description column |
| FPS override | Auto | Forces a specific frame rate if bin metadata auto-detection gives the wrong result |
What’s in the file
| Element | How it maps |
|---|---|
| Media clips | <clipitem> with <masterclipid> (shared per source file), integer frame <start>/<end>/<in>/<out> |
| Source files | <file> element (full metadata first use, bare id reference after) |
| Black gaps / slugs | <generatoritem slug> on V1 + matching <generatoritem silence> on A1/A2 |
| Coloured slugs | <generatoritem> with <effectid>color-matte</effectid> + RGB <parameter> |
| Captions on timeline | V2 <track> of <generatoritem> text generators (if V2 caption overlay is ON) |
| Captions in bin | <logginginfo><description> per clipitem (if Bin metadata is ON) |
| Audio | Linked A1 + A2 <track> items per clip with correct sequential <clipindex> |
| Frame rate | <timebase> integer + <ntsc>TRUE/FALSE</ntsc> per clip and per file |
Limitations
- No multicam support — angles are flattened to the selected cut
- V2 captions use FCP7 Legacy Text — visible but not editable via Essential Graphics in Premiere 2019+
- Colour correction values are not exported
<?xml version=“1.0” encoding=“UTF-8”?>
<!DOCTYPE xmeml>
<xmeml version=“5”>
<sequence id=“sequence-1”>
<name>Morning News Package</name>
<duration>1848</duration>
<rate><timebase>25</timebase><ntsc>FALSE</ntsc></rate>
<media><video>
<track>
<clipitem id=“clipitem-1”>
<name>interview_studio</name>
<start>0</start><end>338</end>
<in>125</in><out>463</out>
<file id=“file-1”>…</file>
</clipitem>
</track>
</video></media>
</sequence>
</xmeml>
EDL — CMX 3600
··· → Export EDL produces a plain-text CMX 3600 Edit Decision List. This is the oldest and most universally supported interchange format — every professional NLE, colour grading system (DaVinci Resolve), and tape suite reads it.
Use EDL when you need maximum compatibility or when you’re handing off to a facility that doesn’t accept XML.
What’s in the file
| Element | How it maps |
|---|---|
| Media clips | Edit line with reel name, source TC in/out, record TC in/out |
| Black gaps | BL reel (standard black slug reel name) |
| Coloured slugs | BL reel + * COMMENT: Color slug (#hex) — colour is noted but cannot be encoded in CMX 3600 |
| Captions | * COMMENT: line after the edit |
| Clip name | * FROM CLIP NAME: line after the edit |
| Drop-frame | FCM: DROP FRAME header + ; separator in TC strings |
Limitations
- Reel names are max 8 characters (CMX 3600 hard limit) — AVScript auto-shortens filenames
- No audio track encoding — audio must be re-linked in the NLE after import
- No colour, no effects, no generators beyond black — EDL is cuts-only
- Coloured slugs degrade to black (
BL) with a comment noting the original hex value
FCM: NON-DROP FRAME
001 intvSt1 V C 00:00:05:00 00:00:18:12 00:00:00:00 00:00:13:12
* FROM CLIP NAME: interview_studio.mp4
* COMMENT: Anchor intro — live from the studio
002 BL V C 00:00:00:00 00:00:03:00 00:00:13:12 00:00:16:12
* COMMENT: BLACK
003 brollC2 V C 00:00:08:15 00:00:22:04 00:00:16:12 00:00:30:01
* FROM CLIP NAME: broll_city.mp4
* COMMENT: B-roll: city plaza, morning commuters
004 BL V C 00:00:00:00 00:00:05:00 00:00:30:01 00:00:35:01
* COMMENT: Color slug (#1E90FF)
Settings — Data Sync
Settings → Data Sync automatically backs up your project JSON to a connected cloud storage provider every time you save. Currently Google Drive is supported; Dropbox and OneDrive are coming.
The backup creates and maintains the folder structure AVScript / [Library name] / [Project name].json inside your Drive. Only the project data is uploaded — your video files stay on AVScript’s servers.
Connecting Google Drive
- Go to Settings → Data Sync
- Click Sign in with Google — you’ll be redirected to Google’s auth page
- Select your Google account and grant access
- You’ll land back on the Settings page with your account shown as connected
Note: During the beta the app shows a “Google hasn’t verified this app” warning. Click Advanced → Continue to proceed — this is expected until the OAuth app passes Google’s review.
Auto sync options
| Option | When it syncs |
|---|---|
| On every save | After each successful autosave (default — every ~30 s when changes are pending) |
| Every 15 minutes | A background timer fires every 15 min regardless of saves |
| Every hour | Same as above but hourly — lowest Drive API usage |
| Manual only | Never syncs automatically — use the Sync Now button when you want |
What to sync
| Checkbox | Contents | Typical size |
|---|---|---|
| Project data (JSON) | Timeline clips, In/Out points, captions, CC values, project metadata | A few KB |
| Media Bin file list | File names, cloud URLs, and bin order — no video data | < 1 KB |
Unchecking Project data effectively disables backup entirely even if Google Drive is connected.
Storage info
The Storage row in the connected panel shows three things at a glance:
| Item | Meaning |
|---|---|
| 🟢 AVScript backup | Total size of all AVScript JSON files currently in your Drive |
| 🔵 Drive free / total | Your Google account’s remaining quota (standard accounts have 15 GB shared across all Google services) |
| Progress bar | Visual quota indicator — turns yellow above 70%, red above 90% |
Sync Now
Clicking Sync Now does two things: it verifies that the Drive token is still valid and refreshes the storage stats. It does not trigger a project save — to sync actual changes, save the project first (auto-save, or Ctrl/Cmd + S) and let the background sync pick it up.
Folder structure in Drive
My Drive/
└── AVScript/
├── News March 2026/
│ ├── Morning Briefing.json
│ └── Evening Report.json
└── Documentary/
└── Episode 01.json
Each library becomes a subfolder. Each project is a single JSON file inside it. If you rename a project in AVScript the next sync creates a new file — the old one remains in Drive until you delete it manually.
Motion Graphics Generator
The Motion Graphics Generator lets you create broadcast-ready lower thirds, title cards, countdown leaders, transition wipes, and credit rolls without leaving the editor. No After Effects, no Motion, no round-trips to a graphics workstation.
Opening the MG panel
- Click the 🎬 MG button in the toolbar, or
- Open the ··· project actions menu and select Motion Graphics
Step 1 — Choose a template type
| Template | Use case |
|---|---|
| Lower Third | Two-line name + role bar — interview speaker tags |
| Title Card | Full-frame centred title with optional sub-title |
| Countdown | Numeric leader counting down to zero |
| Transition Wipe | Directional fill element for scene transitions |
| Credit Roll | Multi-line vertical scroll for end credits |
Step 2 — Customise
Fill in the form fields: text content, accent colour, font size, duration (seconds), and output resolution. A live preview appears in the panel as you type.
Preview button
Click ▶ Preview in player. AVScript renders the graphic to WebM entirely in the browser — no upload, no server. The result loads into the main video player and loops automatically, muted. Re-render as many times as needed before committing.
Add to Bin
Click + Add to Bin. The WebM clip appears in the Media Bin as a standard video-only clip. From here it works exactly like any other clip — set In/Out, press E to add to the timeline, drag to reorder, export via FCPXML or Premiere XML.
Audio Controls
Every clip in the Clip List has a 🔊 button on its row. Click it to open the per-clip Audio Controls panel.
Volume, Mute, Peak meter
- Volume slider: 0–200% gain. Default 100%.
- Mute toggle: silences the clip without resetting the slider.
- Peak meter: two-bar live level meter (L and R channels) active during playback, driven by a Web Audio API
AnalyserNode.
Channel routing
Three pills select which channels are monitored and exported:
| Pill | Behaviour |
|---|---|
| L | Left channel only — boom mic on channel 1 |
| L+R | Standard stereo mix (default) |
| R | Right channel only — lav on channel 2 |
Fade In / Fade Out
Both sliders run 0–5 s. The fade shape is an exponential ramp via the Web Audio API setTargetAtTime — the same shape Final Cut Pro uses, so previews match exactly after FCPXML import.
Auto-Duck
Enable Auto-Duck on any ambient or music clip. AVScript reads the Whisper transcript timecodes from every other clip in the project and automatically lowers this clip to −12 dB whenever a speaker is detected. Level fades back up when speech stops. Requires transcription to be run on the interview clips first.
Normalize All
Click ⊙ Normalize All to measure the peak level of every clip in the project and apply per-clip gain adjustments that bring all clips to the same target loudness (−14 LUFS). Source files are never modified — only the Volume slider values update.
FCPXML export
All audio settings round-trip to Final Cut Pro as native FCPXML metadata:
| Setting | FCPXML element |
|---|---|
| Volume | <adjust-volume amount="...dB"> |
| Fade In | <fade-in duration="...s" type="easeIn"> |
| Fade Out | <fade-out duration="...s" type="easeOut"> |
| Channel routing | <channel-mapping> per clip |
Everything runs locally in the browser via the Web Audio API — no server processing.
CoWork
CoWork embeds a real-time WebRTC video call directly inside the editor. No Zoom, no screen sharing, no external tool.
Starting a session
The 📡 CoWork button is only visible when the current project has an active sharing connection (you invited a collaborator, or someone invited you). The room is tied to the project — both users connect to the same room automatically when they open the project and click CoWork. No link to share, no meeting ID to manage.
- Click 📡 CoWork in the toolbar
- Grant camera and microphone permission when prompted
- Your collaborator does the same on their side — the call connects peer-to-peer
Expanded view
The default view is a full-screen overlay with two large camera tiles side by side. Press Esc or click ⊟ Collapse strip to reduce it to the thin bottom strip.
Collapsed strip
A thin bar along the bottom edge of the editor shows both camera thumbnails and all controls. The editor above remains fully usable — scrub, cut, type captions — while the call continues.
Mic and camera toggles
🎙 Mic and 📷 Cam buttons toggle your audio and video independently. Toggling does not affect your collaborator’s feed.
Mouse sharing (🖱 Mouse)
Enable 🖱 Mouse to broadcast your cursor as a green dot on your collaborator’s screen. The dot moves at ~20 fps using normalised coordinates and a short CSS transition for smoothness. Only coordinate data is transmitted — no screenshot. Use it to point at a specific clip or timeline position during the call.
Clip Sync (🔗 Sync)
Enable 🔗 Sync to synchronise clip list changes in real time. Adds, deletes, reorders, and caption edits appear on both screens within ~400 ms. Toggle it off when both editors are working on independent sections to avoid overwriting each other’s changes.
End Call
Click End Call to hang up. On disconnect all WebRTC state and signaling records are cleared from the server immediately. The room remains available for the next session — both users reconnect the same way, by opening the project and clicking CoWork.
FCP Extension
The AVScript FCP Workflow Extension is a panel that lives inside Final Cut Pro — no browser, no tab switching, no context switch. It appears in the FCP interface as a workflow extension and gives you a direct connection between your FCP library and your AVScript cloud projects.
Requirements: macOS 13 or later · Final Cut Pro 10.6.5 or later · AVScript.app installed.
To open it: in Final Cut Pro, choose Window → Extensions → AVScript. The panel docks inside FCP alongside your browser and inspector.
Projects tab
The Projects tab lists every AVScript cloud project you have access to. Each row shows the project name, clip count, and last-modified date.
To import a project into FCP: click any row. AVScript generates an FCPXML from the project’s current edit sequence, writes it to a temporary file, and FCP opens it automatically. There is no manual File → Import step. The FCPXML appears in your active FCP library as a new event.
| Column | Meaning |
|---|---|
| Name | AVScript project name |
| Clips | Number of clips in the timeline |
| Date | Last modification date |
The Sync FCP Edit row at the top of the tab is the entry point for the reverse direction — pulling your FCP work into AVScript.
Sync FCP Edit
Sync FCP Edit is the feature that turns your existing FCP library into AVScript projects. It auto-detects whatever library you have open in FCP, presents all the projects inside it, and lets you choose which ones to register in AVScript.
Step 1 — Auto-detection
When you tap Sync Edit, the extension scans ~/Movies for .fcpbundle files. If it finds an active library it opens the picker immediately. If your library is stored elsewhere, drop a .fcpbundle, .fcpxmld, or .fcpxml file onto the sync zone, or use Pick file… to navigate manually.
Step 2 — The project picker (FCPSyncPickerView)
The picker shows every FCP project in the library, grouped by event name. Each row shows the project name and the event it lives in.
Tap a row to open the Sync View for that project.
Step 3 — Sync View (ProjectSyncView)
The Sync View shows two sections:
Media files — every file from the library’s Proxy Media folder, with cloud status:
| Status | Meaning |
|---|---|
| On cloud | File is already in your AVScript library — green |
| Needs upload | File exists locally but hasn’t been uploaded yet |
| Missing | File is referenced by the FCP project but can’t be found on disk |
FCP Projects — all FCP projects from the library, grouped by event, each with a checkbox. Check the ones you want to create as AVScript projects.
Click Create X projects to register the selected FCP projects in AVScript. Each one becomes a full AVScript project, with its media linked to the files already in your AVScript library.
After creation, open any of the new projects in the AVScript web editor to run Story AI, transcribe the footage, or share player links with your team.
The two-way round-trip
The extension supports both directions of the edit round-trip:
| Direction | How |
|---|---|
| AVScript → FCP | Click any project row in the Projects tab. AVScript generates FCPXML and FCP opens it automatically. |
| FCP → AVScript | Sync FCP Edit → auto-detect library → pick projects → Create projects. |
There is also a third path for full timeline fidelity: if you export a .fcpxmld package from FCP (drag a project from the Browser to Finder), AVScript can parse the complete timeline including all connected clips and overlay lanes. Drop the .fcpxmld onto the sync zone in the extension to use it.
Connected clips and the overlay lane
When a .fcpxmld export contains connected clips — B-roll or graphics placed on a lane above the primary storyline (lane ≥ 1 in FCPXML terms) — AVScript creates a visual overlay lane above the base timeline.
The overlay lane:
- Appears as a semi-transparent orange strip above the primary clips
- Preserves the original in/out points and position from the FCPXML
- Is read-only — overlay clips follow the base clip order and cannot be reordered independently in AVScript
This is intentional: connected clips express editorial relationships that belong in FCP, where you can work with them properly. The overlay lane makes them visible during review without pretending AVScript can edit them with the same precision.
Other tabs
| Tab | What it does |
|---|---|
| MetaFlow | Displays AI-enriched metadata (transcripts, emotion scores, visual tags) for the clips in the current FCP library. |
| Bin | Media bin view — browse and preview files from your AVScript library without leaving FCP. |
| Upload | Upload files from your Mac directly to your AVScript cloud library. Drag files onto the upload zone or click Choose files. |
| Story AI | Launch the Story AI analysis pipeline on footage already in your AVScript library. |
| CoWork | Open the real-time collaboration panel for any shared AVScript project. |
Story AI
Story AI is AVScript’s editorial intelligence layer. It analyses your footage across three dimensions — speech, emotion and image — and proposes a complete cut. You then refine the result in a live conversation. The original project is never touched; everything happens inside a protected Sandbox.
How the pipeline works
When you launch Story AI, AVScript runs three parallel enrichment services before a single editorial decision is made:
The three enrichment stages run automatically after upload and take between 2 and 20 minutes depending on clip length. Story AI computes the moment all three are complete, or immediately if you skip the wait.
Starting Story AI
- Open a project that has media in the Bin
- Click ✦ Story AI in the toolbar or from the home screen
- Answer four short questions and click Generate Story →
| Field | What it controls |
|---|---|
| Topic / brief | The editorial subject — described in plain language |
| Structure | Narrative form — Three-Act, Problem–Solution, Chronological, Montage, etc. |
| Direction | Cutting style — fast-paced, slow and atmospheric, educational, emotional, etc. |
| Duration | Hard maximum runtime — Story AI never exceeds this ceiling |
The enrichment pipeline bar
While the three services work, a live status bar shows progress:
Each step turns green (✓ Done) when complete. If a service fails, a red ✗ appears with a diagnostic log you can copy for support. You can click ⏭ Skip remaining & run Story AI now to proceed with whatever data is ready — Story AI adapts.
The result
When all enrichment is done, Story AI proposes a complete cut:
A tightly-cut action sequence built from the unedited bank robbery footage, opening with the van arrival and escalating through the interior confrontation to the police response. Narration stripped; only in-scene dialogue and visual action retained.
- 1Bank Robbers — Part I62.0s – 115.0s · 53sArrival + approach — wide establishing shots, Ebert voice-over only, no narrator on screen
- 2Bank Robbers — Part II8.0s – 83.0s · 75sVan sequence + bank interior, parallel action — Tension AI peak begins here
- 3Bank Robbers — Part II102.0s – 162.0s · 60sEscalation + climax — Tension 85%, quick cuts, armed confrontation, police
The result shows:
- Suggested structure — the narrative form and total runtime
- Summary — one paragraph editorial rationale
- Proposed Timeline — every clip with exact in/out seconds and a note explaining the editorial logic
- Editorial Reasoning — full explanation of how each constraint (topic, structure, direction, duration) was applied
Actions
| Button | What happens |
|---|---|
| ✓ Accept — Create Sandbox | Duplicates your project, applies the proposed timeline, and opens it as a protected Sandbox edit |
| ↺ Re-analyze | Re-runs only the Story AI step (no extra charge) using the current enrichment data |
| ✎ Change parameters | Returns to the question form — re-run Story AI with different structure, direction, or duration |
| ✕ Discard | Closes the AI suggestion without touching anything |
Chat mode
After the result appears, a chat interface opens below. You can ask follow-up questions or request alternative edits — and every answer that describes a specific cut is automatically turned into a sandbox.
- 1Part I62s–115s · 53s
- 2Part II8s–83s · 75s
- 3Part II102s–162s · 60s
Create sandbox from answer — when checked, any chat reply that contains a specific edit plan is automatically converted to a sandbox card with an Open in Editor button. No copy-pasting required.
What the AI knows about your footage
Story AI works with every layer of enrichment data simultaneously:
| Data layer | Source | What it enables |
|---|---|---|
| Timecoded transcript | Transcription | Pick exact spoken moments; split narration from in-scene dialogue |
| Emotion scores | Emotions AI | Identify peak tension, concentration or interest — choose the emotionally strongest shots |
| Visual tags | Visual AI | Understand themes and subjects without watching every frame |
| Visual chapters | Visual AI | Know the temporal structure of each clip (intro, action, resolution) |
| Shot list | Visual AI | Every individual shot with start/end seconds, camera angle, subject and action — the most precise in/out data available |
Shot list example — Visual AI might return:
14.0s–18.7s | close-up | driver hands on wheel | gripping, tension building. Story AI uses those exact seconds as cut points.
Sandbox
A Sandbox is a full duplicate of your project with the AI-proposed timeline applied. It opens in the standard editor and behaves exactly like any other project — you can trim, rearrange, add markers, export, everything.
The original project is never modified. Sandbox edits are isolated copies. You can create as many sandboxes as you like from a single project — one per chat message if needed.
To discard a sandbox, delete it from the project library. The original remains untouched.
Enrichment data follows the file, not the project
All analysis Story AI generates — transcripts, emotion scores, visual tags, speaker labels — is stored on the media file itself, not only on the project.
Practical consequences:
- Delete a project → the analysis survives. Transcripts, Hume emotion data, TwelveLabs visual tags — all still on the file.
- Re-use the file in a new project → Story AI picks up exactly where it left off. No re-processing. No extra charge.
- You are never charged twice for the same footage.
The only data that doesn’t survive a project deletion is the editorial brief (topic, structure, direction) and the AI-generated timeline proposal. Everything Whisper, Hume, and TwelveLabs produced stays on the file, permanently.
Shot Search
Shot Search is a semantic query across every layer of AI analysis — Visual AI shot descriptions, transcript words, detected emotions and tags. Use it from the home screen to quickly verify whether material exists across your library, or directly inside the editor to load matching shots into the player and add them to the timeline with a single key press.
Library-wide analysis — analyse once, search everywhere
AVScript follows a simple rule: once a clip is analysed, it is analysed forever — across every project in the library.
When you run Story AI on a project, the resulting analysis (visual shots, transcript, emotions, tags) is stored permanently against the clip’s filename in the library. If you later create a new project and add the same clip to its Media Bin, Shot Search in that new project will automatically use the previously stored analysis — no need to re-run Story AI.
This means:
- Run Story AI once on Project A containing
interview.mp4 - Create Project B, add
interview.mp4to its bin - Open Shot Search in Project B — it already knows every shot, every word spoken, every detected object in
interview.mp4
The 🔍 Shots button in the editor is active (orange) as long as the Media Bin contains at least one clip — regardless of whether Story AI has been run for this specific project.
Searching from the home screen
Click Shot Search in the left sidebar. Select a project from the drop-down, type a query and press Search or hit Enter.
🎬 Bank Robbers Part I.mp4 594s score: 3
Results show the clip name, a Story AI editorial note, matched highlight labels and — most importantly — the list of exact Visual AI shots that matched the query. Each shot has timecoded start and end (in seconds), the camera angle, subject and a description of the action.
What you can search for
Shot Search indexes four data layers simultaneously. A query like "girl running" hits all of them at once:
Shot Search in the editor
Inside the editor, the 🔍 Shots button appears in the Media Bin action bar. It lights up orange as soon as there is at least one clip in the bin. If those clips were analysed in another project in the same library, their full analysis is already available here — no Story AI run required.
Bank Robbers Part I.mp4 594s visual: girl
Clicking 🔍 Shots opens the Shot Search panel in the same slot as the Transcript and Bin Grid panels — the clip list slides away and Shot Search takes its place. Click ✕ or open any other panel to return to the clip list.
Workflow: from search to cut
The selected shot row is highlighted. Its timecode in/out appears in the filmstrip’s yellow handles — the same handles you see when setting I/O points manually. You can adjust them by dragging before pressing E.
Playback — all contexts
| Key | Action |
|---|---|
| J | Rewind (faster on repeated press) |
| K | Stop |
| L | Play forward (faster on repeated press) |
| Space | Play / Pause |
| ← | Step back 1 frame |
| → | Step forward 1 frame |
| Shift + ← | Step back 10 frames |
| Shift + → | Step forward 10 frames |
Editing
| Key | Action |
|---|---|
| I | Set In point |
| O | Set Out point |
| E | Add current selection to timeline |
| W | Add 5-second black slug |
| M | Add marker at playhead |
| S | Split clip at playhead (timeline focus) |
| Ctrl/Cmd + Z | Undo |
| Ctrl/Cmd + S | Save project (manual save) |
Clip list & Timeline navigation
| Key | Action |
|---|---|
| ↑ / ↓ | Select previous / next clip |
| Enter | Open clip editor |
| Backspace / Delete | Remove selected clip |
| Ctrl/Cmd + scroll | Zoom timeline in/out |
| Ctrl/Cmd + = | Zoom in |
| Ctrl/Cmd + − | Zoom out |
General
| Key | Action |
|---|---|
| Escape | Close any open panel, modal, or menu — also closes the CoWork expanded view and returns to the collapsed strip |
AVScript is developed by BION.TV. For support write to avscript@bion.tv.