Got questions or doubts? Ping me on Discord

Splicer guides · 08

The command line

4 min read

Everything Splicer, by PITO MD, does on the desk, it also does as a command. splicer <command> prints plain text for you, or structured JSON for a script, and exits with a code you can check. I use it to cut from a shell when the desk is overkill, and to wire Splicer into things I’m not going to describe here, because they’re mine.

This guide shows a whole cut as commands, then the flags you’ll actually use.

The shape of a command

splicer <command> [flags]

Every command prints plain text. Add --json to any command and you get structured results, and structured errors too, so a script never has to parse prose. The one exception is a usage error, which stays plain text even with --json. splicer --help lists every command, and the list in this guide is that list, nothing more.

If your terminal says it can’t find splicer, put it on your PATH first. Use Splicer from the terminal, in Get started, shows how on each system.

A cut in five commands

Open the video, look at the clips, search for a word, keep what you want, export the cut.

splicer open talk.mkv
splicer clips
splicer search crew --json
splicer keep 1 2
splicer export

open opens the video. clips lists what Splicer heard, clip by clip. search finds the clips where you said a word, and with --json it hands them to you as data. keep keeps the clips you name by number. export writes the cut to a file, and prints its progress as it goes; with nothing kept, it says “The cut is empty. Keep a clip first.”

Keep, drop, arrange

Everything the desk does has a command. The cut itself:

  • drop and keep are the left and right arrows.
  • trim moves a seat’s start or end, numbered as splicer cut lists them, by seconds (--start, --end) or by words (--start-words, --end-words), up to 5 s at either edge. nudge shifts a clip’s picture for a vertical or wide export, the desk’s , and ..
  • cut lists the seats of the cut and its total length. move, copy and remove do what Shift and the arrows, Ctrl+C and Ctrl+V, and Delete do in the desk’s cut view.
  • undo and redo are what they say.

Then splices, save, forget and transcript look after the Splice itself and the words Splicer heard: save moves the Splice file unless you add --copy, and forget takes it off the list but leaves the file. cache is Splicer’s own cache for opening files fast, not your Splice.

Export with flags

The export sheet’s choices are flags:

splicer export --vertical fill --captions anton --caption-size l --progress json

--shape original|wide|vertical picks the shape, the sheet’s o, w and 9, and Splicer remembers it. --original keeps the video as shot even if the Splice is set to vertical or wide, the same as --shape original. --vertical fill or --vertical frame picks the vertical layout, and without --shape it makes the export vertical. --viewport 16:9|4:3|1:1, --place center|up, --zoom from 0 to 1 and --background black|blur set the frame the way f, p, z and Z, and b do on the desk; --zoom and --background set a wide export’s sides too, 0 for the whole picture between bars or blur, 1 to fill. --nudge nudges every clip at once, the desk’s < and >, and a clip with its own nudge keeps it. --viewport, --place and --nudge are for a vertical export: with --shape wide or --shape original Splicer refuses them in one line, and it refuses --zoom and --background with --shape original. --captions off or --captions <look> with one of the ten looks, and --caption-size s|m|l|xl. --watermark off leaves the small Splicer mark off a Pro export, and --watermark on puts it back. --out says where the file lands. --progress text prints progress for you; --progress json prints it for a script.

The rest

  • license --activate then paste your key. update checks for a new release and installs it if it’s signed by PITO MD.
  • deps lists what Splicer carries inside, and doctor checks the install.
  • terms prints the terms, version prints the version, and tui and gui open the terminal workspace and the desk.

When it says no

A command that isn’t understood prints clap’s short usage error on stderr and exits 2, in plain text even with --json. A command that is understood but refused, because the file isn’t there or the disk is full, prints one line and exits 1, and with --json that refusal comes back as {"ok":false,"error":...}. So a script checks the exit code, and reads --json when it needs to know why: it exits 2 on a usage error and 1 on a refusal, every time, for every command.

That is the whole of Splicer: the desk, the terminal workspace and the command line, the same cut three ways.

The footage in this guide is NASA's holiday message from the International Space Station's Expedition 64 crew and NASA's Summer Solstice interview with Alex Young, both public domain.