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.2.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.2-py3-none-any.whl (27.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for vidio_cli-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8bfe77e645a749fdff3c2aefae14a88c617b11b7fff735e7823e85513eb59a11
MD5 d25f4470df0d35bbb5103f0d30691bb7
BLAKE2b-256 5db5372c505ef960541f36b2d5199d64dab30fb9df88d1bfc73749f8aa7edc17

See more details on using hashes here.

Provenance

The following attestation bundles were made for vidio_cli-0.1.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: vidio_cli-0.1.2-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.12

File hashes

Hashes for vidio_cli-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 47546d400e6d7b25d2886cf0ed48bc88b0ddd04423624b4bf0da3e03e82af214
MD5 19b08920f20424f5978fee45f1ce9236
BLAKE2b-256 eca308df53af2b111b34a2a0b0e6e06f8c390b16aa331a1e69d2c9de28a8810f

See more details on using hashes here.

Provenance

The following attestation bundles were made for vidio_cli-0.1.2-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