انتقل إلى المحتوى

Command-line tools

vistilla-cli: the upload client

crates/vistilla-cli builds the vistilla-cli binary (it is also in the Docker image). It signs in and uploads video files from a terminal or a script.

export VISTILLA_PASSWORD='…'   # or pass --password
vistilla-cli --url https://vistilla.example.com login --email me@example.com
vistilla-cli whoami
#   shows you and your teams
vistilla-cli upload demo.mp4 --title "Sprint demo"
#   uploads and prints the watch URL
Option Default Meaning
--url / VISTILLA_URL http://localhost:8787 Server address for login, which saves it. whoami and upload use the saved address.
--credentials / VISTILLA_CREDENTIALS $XDG_CONFIG_HOME/vistilla/credentials.json, else ~/.config/vistilla/credentials.json Where the session is cached.

upload <file> options:

Option Meaning
--team Team to upload into. Defaults to your first team.
--title Title.
--duration-ms Length, if known. It improves the player's timeline.
--visibility private, team (default) or org.
--proxy Send the bytes through the API instead of straight to the object store.

By default the CLI uploads straight to the object store with a presigned PUT URL. When the server uses the filesystem store there is no such URL, and the upload goes through the API.

Size limit

The CLI reads the whole file into memory and sends it in one piece, not in parts. The server checks the size against VISTILLA_MAX_UPLOAD_BYTES when reserving the video, so on the hosted instance files over 100 MB are refused. Upload bigger files from the library, which sends them in parts.

With Docker Compose:

make cli ARGS="whoami"

vistilla-api passwd: reset a password on the server

When email is not set up, an operator can reset a password directly:

vistilla-api passwd someone@example.com            # generates and prints a new password
vistilla-api passwd someone@example.com 'new-pass' # sets the given one

It signs that user out everywhere. In Docker, run it inside the container, for example:

docker compose exec api vistilla-api passwd someone@example.com

Scripts (scripts/)

Script What it does
smoke.sh [base-url] (default http://localhost:8787) End-to-end test of a running instance with curl: accounts, uploads, ranges, comments, invitations, roles, sharing, insights, moments, notifications, search, AI settings and bulk delete. Currently stops at the account step, because sign-up now needs the emailed code (see Testing).
seed-demo.sh [base-url] (default http://localhost:8787) Meant to fill a fresh instance with a demo workspace: two accounts, a 30-second clip (made with ffmpeg), chapters, comments, tags, a share link and views. It has the same sign-up problem as smoke.sh.
mail-relay.gs A Google Apps Script web app that sends Vistilla's email from a Gmail account (VISTILLA_MAIL_WEBHOOK_URL).
linux-system-audio.sh on\|off\|status On Linux, creates a capture source named Vistilla-system-sound, so the recorder can capture computer sound.
drop-coauthor-trailer.sh [--push] Repository maintenance: removes co-author trailers from commit messages.