Skip to main content

A simple and easy-to-use ffmpeg wrapper for common video operations

Project description

vidio

Stop Googling ffmpeg flags. Just tell vidio what you want.

vidio trim long-meeting.mp4 highlight.mp4 --start 1:30 --duration 45
vidio resize raw-footage.mp4 web-ready.mp4 --width 1280
vidio to-gif funny-moment.mp4 reaction.gif --fps 15 --quality high

vidio is a CLI tool that wraps ffmpeg with sane defaults so you can trim, resize, crop, concatenate, and convert videos without memorizing arcane flags every single time.


Install

Requires Python 3.10+ and ffmpeg in your PATH.

# Recommended — install as a standalone tool with uv
uv tool install vidio-cli

# Or run it directly without installing
uvx vidio-cli trim input.mp4 output.mp4 --start 10 --end 30

# Or if you prefer pip
pip install vidio-cli

Once installed, the vidio command is available globally.


What's in the box

Command What it does
vidio ls Find video files in a directory
vidio info Inspect metadata, codecs, resolution
vidio trim Cut a clip by time range
vidio resize Scale to target dimensions or percentage
vidio crop Crop to aspect ratios like 16:9, 9:16, square
vidio concat Place videos side-by-side or stacked
vidio grid Build multi-video grid layouts
vidio to-gif Convert clips to GIF with palette optimization

That's it. No bloat, no kitchen-sink features. Just the things you actually do with video files on a regular basis.


Usage

Every command has --help:

vidio --help
vidio trim --help

Trim

# Cut from 30s to 1:30
vidio trim input.mp4 clip.mp4 --start 30 --end 1:30

# Take 45 seconds starting at 1:30
vidio trim input.mp4 clip.mp4 --start 1:30 --duration 45

# Chop off everything after 2:15
vidio trim input.mp4 clip.mp4 --end 2:15

Resize

# Scale to a specific width (height calculated automatically)
vidio resize input.mp4 output.mp4 --width 1280

# Scale to 50%
vidio resize input.mp4 output.mp4 --scale 0.5

# Force exact dimensions (may distort)
vidio resize input.mp4 output.mp4 -w 1920 -h 1080 --force-aspect

Crop

# Square crop, centered (great for Instagram)
vidio crop input.mp4 output.mp4 --preset center-square

# Vertical video for Reels/TikTok
vidio crop input.mp4 output.mp4 --preset 9:16

# Widescreen
vidio crop input.mp4 output.mp4 --preset 16:9

# Manual crop with offset
vidio crop input.mp4 output.mp4 -w 1280 -h 720 --x 100 --y 50

Concat

# Side-by-side
vidio concat left.mp4 right.mp4 combined.mp4

# Stacked vertically
vidio concat top.mp4 bottom.mp4 combined.mp4 --vertical

Grid

# Auto-arranged grid
vidio grid a.mp4 b.mp4 c.mp4 d.mp4 mosaic.mp4

# Explicit 2x2 with padding
vidio grid a.mp4 b.mp4 c.mp4 d.mp4 mosaic.mp4 --rows 2 --cols 2 --padding 10

# Custom cell size
vidio grid a.mp4 b.mp4 c.mp4 d.mp4 mosaic.mp4 --width 640 --height 360

Convert to GIF

# Good defaults out of the box
vidio to-gif clip.mp4 output.gif

# Optimized for small file size
vidio to-gif clip.mp4 output.gif --scale 0.3 --fps 8 --quality low

# Specific time range
vidio to-gif clip.mp4 output.gif --start 10 --duration 5

List & Info

# Quick ls-style listing
vidio ls

# Detailed view with duration, resolution, codec
vidio ls --list

# Recursive search
vidio ls --recursive

# JSON output (handy for scripting)
vidio ls --json

# Full metadata for a single file
vidio info video.mp4
vidio info video.mp4 --json

Development

git clone https://github.com/matanb/vidio-cli.git
cd vidio-cli
uv sync --group dev

# Run tests
uv run pytest -q

# Lint
uv run ruff check .

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vidio_cli-0.1.1.tar.gz (42.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vidio_cli-0.1.1-py3-none-any.whl (27.5 kB view details)

Uploaded Python 3

File details

Details for the file vidio_cli-0.1.1.tar.gz.

File metadata

  • Download URL: vidio_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 42.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for vidio_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ab683ddf2306f73f4193d6bd96b30fa680a39d604cd357e353d82d22f5bbec41
MD5 748ff1d22b9095242bd325b1f857eed8
BLAKE2b-256 0a13e87e01d0aa40fb8bdf4a6e4e8462204bea9f6e7a0a1db63e56c4454d7bc8

See more details on using hashes here.

Provenance

The following attestation bundles were made for vidio_cli-0.1.1.tar.gz:

Publisher: publish.yml on matanby/vidio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vidio_cli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: vidio_cli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 27.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for vidio_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4513a5265ac4bde7f0a80313d3ea074df8f7e5299f5d730c593ebb81dcd4892b
MD5 3bedf5af73f87d6456d8cedfbc18a46d
BLAKE2b-256 4e1cf2e501d855b209130c1928f8b252a18823a36e097de174d76271c9c78815

See more details on using hashes here.

Provenance

The following attestation bundles were made for vidio_cli-0.1.1-py3-none-any.whl:

Publisher: publish.yml on matanby/vidio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page