Skip to main content

PyPI Changelog Tests License

vidtoolz

Make videos using python. A plugin-based CLI toolset for editing, authering videos, built with python.

Overview

vidtoolz is a collection of command-line tools designed to make videos and edit videos easier. The project takes a plugin-based approach, allowing users to extend its functionality by creating custom plugins.

After installing vidtoolz, install any of the following plugins.

Default Plugins

vidtoolz comes with several built-in plugins for common video operations:

Plugin Description Command
info Get video information (codecs, duration, etc.) vidtoolz info video.mp4
clip Clip a portion of a video vidtoolz clip input.mp4 output.mp4 -s 00:00:10 -d 00:00:05
ffconcat Concatenate multiple videos vidtoolz ffconcat video1.mp4 video2.mp4 -o output.mp4
ffoverlay Overlay one video on another vidtoolz ffoverlay background.mp4 overlay.mp4 -o output.mp4
play Play a video file vidtoolz play video.mp4
reverse Reverse a video (uses FFmpeg by default) vidtoolz reverse input.mp4 output.mp4
scale Scale/resize a video vidtoolz scale input.mp4 output.mp4 640 480
speed Change video playback speed vidtoolz speed input.mp4 output.mp4 2.0

VidToolz Plugins

Tool Description Category
Reverse Reverse a video file Video Effects
Zoomtext Zoom out the video and display text as caption Video Effects
Mchap Make chapters using a list of videos Video Effects
Lightning Add lightning effects on video Video Effects
Flicker Add flicker effects on video Video Effects
Slideshow Create slideshow with images using ffmpeg Video Effects
Split Split a video into two Video Effects
Normalize Normalize audio of a video Audio Enhancements
Shake Shake a portion of a video Special Effects
Flip Flip a vedio vertically or horizontally Special Effects
Denoise Denoise audio in a video Audio Enhancements
Enhance Enhance audio of a video using ffmpeg Audio Enhancements
Twitch Add twitch effect to a video Video Effects
H2R Tools for hum hai rahi channel Video Effects
Vintage Create vintage effect on videos using ffmpeg Video Effects
Jitter Add jitter effect to a video using moviepy Special Effects
Trim Trim video using ffmpeg Video Effects
Rotate Rotates a video Special Effects
Metadata Add metadata to a video for better SEO Metadata and SEO
Stitch Stitch videos using music Music Integration
Highlights Make highlights from videos Video Effects
Fade Add fade in and out for a video using ffmpeg Video Effects
Fadeinout Apply fadein-fadeout effects on videos Video Effects
Soundeffects Add sound effects to videos Audio Enhancements
Getframe Get frame out of a video for thumbnail Special Effects
Chapters Write formated youtube chapters with text inputs Video Effects
Hue Add a hue to a video using ffmpeg Video Effects
Echo Apply noise reduction and echo effect Audio Enhancements
Beats Get beats from a mp3 song Music Analysis
Greenscreen Apply greenscreen video on top of a video Special Effects
Shorts Create shorts from long form videos Video Effects
Freeze Use moviepy to flash freeze a frame just like imovie Special Effects
Intro Create intro video from a series of videos Video Effects
Repaudio Replace audio for a video file Audio Enhancements
Vignette Apply Vignette on Video Video Effects
Addtext Add text to a video file Text and Overlay
Volume Increase decrease volume Audio Control
Addsound Add sound to a video Audio Control
Loudness Use EBU R128 Loudness Normalization with ffmpeg Audio Enhancements
Overlay Add overlay effect on video using ffmpeg Text and Overlay
Textclip Create a color clip with overlaid text Text and Overlay
Compose Compose Videos using the supplied compose_vid file Video Composition
Concat Concat videos using ffmpeg Video Composition

To get help, just type vidtoolz or its shortcut vid to access the cli.

vidtoolz --help 

or

vid --help

This will show all the plugins installed.

usage: vid [-h]
           {plugins,install,trim,addtext,chapters,beats,greenscreen,shorts,repaudio,addsound,concat}
           ...

Video Tools for editing videos using python

positional arguments:
 plugins              Get all listed plugins
 install              Install plugins in the same environemnt as vidtoolz
 trim                 Trim video using ffmpeg
 addtext              Add text to a video file
 chapters             Write formated youtube chapters with text inputs
 beats                Get beats from a mp3 song
 greenscreen          Apply greenscreen video on top of a video
 shorts               Create shorts from long form videos
 repaudio             Replace audio for a video file
 addsound             Add sound to a video
 concat               Concat videos using ffmpeg 

optional arguments:
  -h, --help            show this help message and exit

To install a plugin, just type

vid install vidtoolz-trim

vidtoolz-help

Features

  • A simple and intuitive CLI interface
  • Extensive plugin support for customizing and extending the toolset
  • Integration with popular Python libraries and frameworks
  • Support for multiple Python versions (>=3.9)
  • Comprehensive testing suite with integration tests for all default plugins
  • FFmpeg-based operations for better performance

Testing

vidtoolz includes a comprehensive test suite that covers all default plugins:

# Run all tests
python -m pytest tests/

# Run specific tests
python -m pytest tests/test_vidtoolz.py::test_info_plugin -v
python -m pytest tests/test_vidtoolz.py::test_reverse_plugin -v
python -m pytest tests/test_vidtoolz.py::test_speed_plugin -v

The tests use the provided test data (tests/test_data/) and verify:

  • Output file creation and validation
  • Proper error handling
  • Argument parsing and validation
  • Performance characteristics

Speed Plugin

The speed plugin allows you to change video playback speed with flexible audio handling options:

# 2x speed with adjusted audio (default)
vidtoolz speed input.mp4 output.mp4 2.0

# Half speed with muted audio
vidtoolz speed input.mp4 output.mp4 0.5 -a mute

# 1.5x speed keeping original audio
vidtoolz speed input.mp4 output.mp4 1.5 -a keep

# Auto-generated output filename
vidtoolz speed input.mp4 1.8

Audio Modes:

  • adjust (default): Adjust audio speed to match video speed
  • mute: Remove audio from the output video
  • keep: Keep original audio unchanged (video only speed change)

Reverse Plugin Enhancement

The reverse plugin now uses FFmpeg by default for much faster performance:

# Fast FFmpeg-based reversal (default)
vidtoolz reverse input.mp4 output.mp4

# Original MoviePy-based reversal (slower but may work better for some files)
vidtoolz reverse input.mp4 output.mp4 --use-moviepy

The FFmpeg version typically completes in seconds vs minutes for the MoviePy version.

Requirements

  • Python 3.9 or later
  • The pluggy library for plugin management

Installation

pip install vidtoolz

Developing your plugin


You'll need to have cookiecutter installed.

pipx install cookiecutter

Regular pip will work OK too.

Usage

Run cookiecutter gh:sukhbinder/vidtoolz-plugin and then answer the prompts. Here's an example run:

cookiecutter gh:sukhbinder/vidtoolz-plugin

This will show this. Fill this and the template is ready. Just add your code.

plugin_name []: vidtoolz plugin template demo
description []: Demonstrating https://github.com/sukhbinder/vidtoolz-plugin
hyphenated [vidtoolz-plugin-template-demo]:
underscored [vidtoolz_plugin_template_demo]:
github_username []: sukhbinder
author_name []: Sukhbinder Singh

Development

To contribute to this tool, first checkout the code. Then create a new virtual environment:

# To clone
git clone https://github.com/sukhbinder/vidtoolz.git

# And create a new virtual environment
cd vidtoolz
python -m venv venv
source venv/bin/activate

# In windows
venv\Scripts\activate

Now install the dependencies and test dependencies:

pip install -e '.[test]'

To run the tests:

python -m pytest

Download files

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

Source Distribution

vidtoolz-0.1.5.tar.gz (23.0 kB view details)

Uploaded Source

Built Distribution

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

vidtoolz-0.1.5-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file vidtoolz-0.1.5.tar.gz.

File metadata

  • Download URL: vidtoolz-0.1.5.tar.gz
  • Upload date:
  • Size: 23.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for vidtoolz-0.1.5.tar.gz
Algorithm Hash digest
SHA256 7c1d90356bff24f23eddf720d96852dfdeeeaa91d211a94d44d036a7c4922c7b
MD5 fa99b3f4724665bddb5288912e8aa2d1
BLAKE2b-256 16d54d9c568417e4a1c833fb09cc8aa84f5c626efa950e5ab5418e50149b4e52

See more details on using hashes here.

Provenance

The following attestation bundles were made for vidtoolz-0.1.5.tar.gz:

Publisher: publish.yml on sukhbinder/vidtoolz

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

File details

Details for the file vidtoolz-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: vidtoolz-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for vidtoolz-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ba308af9fcbe7e4842245ce84ca965e2c9d70632332b7e7536c6e4420c3a2490
MD5 b8d3e00a87627ceea89d48b04c5b4fbc
BLAKE2b-256 1392ba423d3373a8fb139c8c14217e37b9a48efe50b6331280fe2aecd5094be5

See more details on using hashes here.

Provenance

The following attestation bundles were made for vidtoolz-0.1.5-py3-none-any.whl:

Publisher: publish.yml on sukhbinder/vidtoolz

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

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page