Skip to main content

videolab

A CLI for video processing.

Installation

You can install videolab from source.

  1. Clone the repository:

    git clone https://github.com/kianmeng/videolab.git
    cd videolab
    
  2. Create a virtual environment and install the package:

    uv venv
    source .venv/bin/activate
    uv pip install -e .
    

Usage

Once installed, you can use the videolab command.

To see the help message:

videolab --help
usage: videolab [-h] [-V] [-v] [-q]
                [--log-level {CRITICAL,DEBUG,ERROR,INFO,WARNING}]
                {env,info,scrub,watermark} ...

A console program to manipulate videos.

website: https://github.com/kianmeng/videolab
changelog: https://github.com/kianmeng/videolab/blob/master/CHANGELOG.md
issues: https://github.com/kianmeng/videolab/issues

positional arguments:
  {env,info,scrub,watermark}
                        sub-command help
    env                 show environment information
    info                inspect media file streams
    scrub               remove all metadata
    watermark           add a watermark to a video

options:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  -v, --verbose         enable verbose logging
  -q, --quiet           disable non-error logging and progress bars
  --log-level {CRITICAL,DEBUG,ERROR,INFO,WARNING}
                        set the logging level explicitly

videolab env

videolab env -h
usage: videolab env [-h]

options:
  -h, --help  show this help message and exit

videolab scrub

videolab scrub -h
usage: videolab scrub [-h] [--output OUTPUT] [--outdir OUTDIR] [--no-audio]
                      [--force] [--dry-run]
                      input_file [input_file ...]

Removes all container-level and stream-level metadata from a video file by
remuxing it

positional arguments:
  input_file       Path to one or more input video files

options:
  -h, --help       show this help message and exit
  --output OUTPUT  Path to save the scrubbed video file; only valid with a
                   single input. Defaults: '<input_file>_scrubbed.<ext>'
  --outdir OUTDIR  Directory to write generated output files (created if
                   missing); cannot be combined with --output
  --no-audio       Remove the audio from the video file
  --force          Overwrite the output file if it already exists
  --dry-run        Show what would be done without writing any output

videolab watermark

videolab watermark -h
usage: videolab watermark [-h] [--output OUTPUT] [--outdir OUTDIR] --text TEXT
                          [--font-size FONT_SIZE] [--font-color FONT_COLOR]
                          [--position {top-left,top-right,bottom-left,bottom-right,center}]
                          [--no-audio] [--margin MARGIN] [--cpu CPU] [--force]
                          [--dry-run]
                          input_file [input_file ...]

Adds a watermark to a video file.

positional arguments:
  input_file            Path to one or more input video files

options:
  -h, --help            show this help message and exit
  --output OUTPUT       Path to save the watermarked video file; only valid
                        with a single input. Defaults:
                        '<input_file>_watermarked.<ext>'
  --outdir OUTDIR       Directory to write generated output files (created if
                        missing); cannot be combined with --output
  --text TEXT           The text for the watermark
  --font-size FONT_SIZE
                        Font size for the watermark text. Defaults to 5% of
                        video height.
  --font-color FONT_COLOR
                        Font color in RGBA format (e.g., '255,255,255,128') or
                        hex format (e.g., '#FFFFFF').
  --position {top-left,top-right,bottom-left,bottom-right,center}
                        Position of the watermark.
  --no-audio            Remove the audio from the video file
  --margin MARGIN       Margin from the edges of the video in pixels.
  --cpu CPU             Number of CPU cores for parallel processing (default:
                        min(all available, 4))
  --force               Overwrite the output file if it already exists
  --dry-run             Show what would be done without writing any output

videolab info

videolab info -h
usage: videolab info [-h] [--json] input_file [input_file ...]

Shows container and per-stream details of a video file without re-encoding it.

positional arguments:
  input_file  Path to one or more input video files

options:
  -h, --help  show this help message and exit
  --json      Output machine-readable JSON instead of human-readable lines

Contributing

Contributions are welcome! Please see the Contributing file for details on how to set up your development environment and submit pull requests.

License

This project is licensed under the GNU Affero General Public License v3.0 or later. See the License file for details.

Metadata

Release files for videolab 0.13.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for videolab 0.13.0
File Size Uploaded Provenance
videolab-0.13.0.tar.gz 37.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for videolab 0.13.0
File Interpreter ABI Platform
videolab-0.13.0-py3-none-any.whl Python 3 none any Details

Total release size: 76.2 kB

Release files / videolab-0.13.0.tar.gz

Download URL videolab-0.13.0.tar.gz
Size 37.4 kB
Tags Source
SHA-256 checksum
How to use checksums
06127482138db19055fbe879feb2b346a0aa213ff48491ec08246c32ca112673
BLAKE2b-256 checksum
How to use checksums
bf2adfe17d433e2062930857d58a37c0da928b3195e5fbb6f0c01054d091c7d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.10","id":"stonking","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / videolab-0.13.0-py3-none-any.whl

Download URL videolab-0.13.0-py3-none-any.whl
Size 38.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f8bb957d7be34f987929fcb58fdbc24955270ef60d7792e9b31172a051a3018f
BLAKE2b-256 checksum
How to use checksums
1cc8bbd55f2601e3452cbe38ab27e6a81638f41760ff6d55ba778020664759f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.10","id":"stonking","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for videolab 0.13.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.13.0 This release

2 release files No provenance

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