The LAPLACE Cap media editor is an audio and video cutting tool that runs entirely in the browser, integrated deeply with subtitle transcription for a precise, text-driven editing workflow
Features
- Adjustable three-pane layout: media preview, transcript, and clip list each resize by dragging, and the layout persists automatically
- Waveform visualization: the audio waveform renders as soon as media loads, with up to 200× zoom and drag-to-pan; waveform data is cached in local IndexedDB to avoid recomputing it
- Word-aligned transcripts: the transcript aligns to the timeline word by word, the current word highlights during playback, and double-clicking a word jumps straight to its timestamp
- Transcript search and speaker filtering: keyword search and
speaker:namesyntax filter the transcript live, with matches highlighted - Speaker management: rename every speaker in a multi-speaker transcript; names persist per media file
- Clip management: create, rename, retime, split, and delete clips, with undo/redo (up to 50 steps)
- AI clip titles: an LLM generates a concise title from the subtitles inside a clip, one clip at a time or in batch
- Song identification: identify the song in a clip through an AI LLM (from subtitle text), Shazam, or NetEase Cloud Music
- SRT / JSON import: import SRT subtitle files and Soniox JSON transcripts, so existing subtitles drive the edit without re-transcribing
- LosslessCut project compatibility: import and export
.llcproject files to interoperate with a LosslessCut workflow - Frame-accurate export: lossless cutting by MP4 remux, with exact frame-level trimming and optional companion subtitle tracks
- Bilibili video sources: load bilibili videos directly, pair the LAPLACE Cap Helper userscript for playback control and word-level transcript sync, and import bilibili AI / human subtitle tracks
Opening the Editor
- After Generate Subtitles finishes a transcript, click Open in Editor to go straight in with the transcript attached
- Or open the Media Editor tab at the top of the page manually, then load media and subtitles from the menu bar
- You can also deep-link to
/editorwith the?mediaUrl=,?subtitleUrl=, and?clipsUrl=query parameters to load specific media, subtitles, and clips
Loading Files
The editor accepts drag and drop — drop any of these file types onto the editor window to load them:
| File Type | Description |
|---|---|
| Video | MP4, WebM, MOV, MKV |
| Audio | All mainstream audio formats |
| Subtitles | .srt or Soniox .json |
| Project | LosslessCut .llc |
You can also load items one at a time from the File menu:
- Load Local Media… — load an audio or video file from your computer
- Load Media from URL… — load from a remote URL (direct links must support CORS; bilibili video URLs also work)
- Open Recent… — reopen recently loaded media, including local files and URL history; Clear Recently Opened… empties the list
- Load Demo Project — load the built-in sample project for a quick tour of the features
Bilibili Video Sources
The media editor loads bilibili videos directly, with no download step:
- Paste a video link through File → Load Media from URL… (
b23.tvshort links and standardBVlinks both work) and the editor embeds the official bilibili player - Because the bilibili player runs in its own iframe, the LAPLACE Cap Helper userscript is required before the editor can drive playback both ways (play / pause, seeking, word-level sync, clip marking)
- The userscript needs a manager such as Tampermonkey
- Install it in one click from the Media Editor tab on the main screen; loading a bilibili video without it raises an install prompt
- Without the script the editor still shows the player, but cannot drive playback or sync
- Once the script is installed, Subtitles → Import from Bilibili… discovers and imports the video's subtitle tracks (bilibili AI-generated and human-uploaded subtitles alike) with no re-transcription
Bilibili sources are for browsing and subtitle alignment only — clip export and media download are unavailable (the related menu items appear disabled). To cut clips, use a local file or a remote URL you can download directly
Transcript Panel
Search and Filter
- Type in the search box to filter the transcript live, with matches highlighted
- Use
speaker:namesyntax to filter to one speaker; when a transcript holds several speakers, the placeholder text hints at the syntax - The right side of the search box shows filtered count over total count; click × to clear the search
Word-Level Alignment and Karaoke Mode
- During playback the word at the current position highlights in real time (a karaoke effect), while the rest dim slightly
- Double-click any word to jump to its timestamp
- Double-clicking an inactive segment jumps to that segment's start
Speaker Labels
- Each speaker is marked in its own color; click a label to rename that speaker
- Renames persist per media file and come back the next time you load the same file
- View → Always Show Speaker Labels controls whether every segment carries a speaker label; by default it appears only when the speaker changes
Follow Playback
- With View → Follow Active Segment on, the transcript list scrolls to the segment at the current playback position
- Shortcut:
⌥F(Alt+F) toggles it
Waveform and Playback Controls
Waveform Interactions
| Action | Effect |
|---|---|
command/Ctrl + scroll wheel | Zoom the waveform anchored at the cursor (1× – 200×) |
| Horizontal scroll | Pan the timeline while zoomed in |
command/Ctrl + drag | Pan the timeline (hand mode) |
| Click the scrubber | Jump to that point in time |
| Drag the scrubber | Scrub to a position |
Waveform data is cached in local IndexedDB after the first load; reopening the same file reads the cache instead of recomputing it
Playback Controls
| Action | Description |
|---|---|
Space | Play / pause |
← / → | Forward / back 1 second |
Alt + ← / Alt + → | Forward / back 1 frame |
command/Ctrl + ← / command/Ctrl + → | Forward / back 5 seconds |
- Click the timecode at the bottom to edit it and jump to that time
- Video mode shows a frame counter; click it to type a frame number and jump there
Clip Management
Creating Clips
- Click + at the top right of the clip list to create a clip at the current playback position
- Shortcut:
C
By default a clip starts at the current playback time and ends at the transcript's full duration (or the current time plus 10 seconds), named "Clip N"
Adjusting Clip Times
- Edit the start and end time fields directly in the clip list and press Enter to confirm
- Park the playhead at the target time on the waveform, then click Set Start or Set End in the playback controls
- Click the small Set as Start or Set as End button on a segment row in the transcript panel
Splitting Clips
Park the playhead inside a clip and click Slice or press S to split the current clip in two at the playhead
Undo and Redo
command/Ctrl - Z— undo (up to 50 steps)command/Ctrl - Shift - Z— redo
AI Features
Each clip's AI menu (the ✦ icon) offers:
| Feature | Description |
|---|---|
| Generate Title | Calls an LLM to produce a concise title from the subtitles inside the clip (40 characters max) |
| Identify Song from Subtitles (AI) | Feeds the subtitle text to an LLM as lyrics for song identification |
| Shazam Lookup | Extracts an audio fingerprint from the clip and identifies the song through Shazam (local files only) |
| NetEase Cloud Music Lookup | Identifies the song through NetEase Cloud Music fingerprinting (local files only) |
Batch operations run from the AI Batch Actions dropdown in the clip list toolbar, processing every clip concurrently
AI title generation and song identification use the LLM API key and model configured in General settings. Shazam and NetEase Cloud Music lookups work only on locally loaded files, never on media from a remote URL
Exporting
Export Settings
Configure export behavior under Clips → Clips Settings… in the menu bar:
| Option | Description |
|---|---|
| Filename Template | Customize the export filename; supports the {filename}, {index}, {name}, {cut_from}, and {cut_to} variables |
| Accurate Trim | Uses a frame-level Edit List for exact cut points, suited to work that needs frame accuracy; a very few older players may mishandle Edit Lists |
| Export Streams | Audio and video / video only / audio only (audio only outputs .m4a) |
| Export Subtitles Too | Writes a companion SRT beside each clip covering its time range, with timestamps rebased to the clip start |
| Shazam Language | Sets the language region Shazam prefers when identifying |
| AI Prompts | Customize the system prompts for title generation and song identification; restorable to the defaults |
Export Methods
- Single clip: click the export button on a clip row to export that clip
- Batch: click Export (N) in the toolbar or Clips → Export All Clips in the menu bar to export every clip
For very large files (an estimated export above 500 MB), the export calls the File System Access API to write straight to disk and avoid running out of memory
Exporting a LosslessCut Project
Clips → Export as LosslessCut Project writes the current clip list to a .llc file you can keep editing in LosslessCut
Exporting Subtitles
- Export SRT — export the full transcript as an
.srtsubtitle file - Export TXT — export plain text with timestamps and speaker information, suited to further editing
- Export TXT for LLM — export plain text shaped for language models, ready to hand to an LLM for summarizing, translation, or derivative work
Data Storage
Everything the editor holds stays in your local browser and is never uploaded to a server:
| Data | Location |
|---|---|
| Clip list | IndexedDB (keyed by media file) |
| Waveform cache | IndexedDB (speeds up reloads) |
| Layout ratios | localStorage |
| Speaker names | localStorage (keyed by transcript ID) |
| Export settings | localStorage (persisted through useSettings) |
Last updated on September 19, 2026