step

ittybit step <kind> -i '<json>' [flags]

Atomic operations. Unlike ittybit video (full pipeline), steps run one thing at a time. Compose them into custom workflows — probe a file first, then decide what to encode based on the result.

Kinds

probe

ittybit step probe -i '{"url":"https://example.com/video.mp4"}'

Returns format, dimensions, duration, codecs.

ingest

ittybit step ingest -i '{"url":"https://example.com/video.mp4"}'

Downloads to local storage.

video · audio · image · adaptive_video

Encode from a probed Source object:

ittybit step video \
  -i '{"object":"source","url":"file://input.mp4","kind":"video","format":"mp4","width":1920,"height":1080,"duration":62.5,"codecs":{"video":"h264","audio":"aac"}}' \
  --width 1280 --quality medium

upload

ittybit step upload \
  -i '{"object":"source","url":"file://output.mp4","kind":"video","format":"mp4"}' \
  -o s3://bucket/key.mp4 --connection my-s3

Composing

ittybit step probe -i '{"url":"https://example.com/video.mp4"}' --json | \
  jq '.output' | \
  xargs -I {} ittybit step image -i '{}' --start 5 -o poster.jpg

Cloud

Run on Ittybit infrastructure instead of locally:

ittybit step probe -i '{"url":"https://example.com/video.mp4"}' --cloud

Requires ITTYBIT_API_KEY. The step is executed remotely and the result is returned.

See also