Skip to main content

twat-video

twat-video is the video domain package for the twat plugin ecosystem. It builds reusable, testable ffmpeg command wrappers and delegates AI video generation to twat_genai when such provider engines are available.

Font-organizer preservation

This repository used to package font_organizer. The canonical copy now exists in plugins/repos/twat_font as twat_font, with the same organizer/core modules and CLI surface. The old source tree is left in this repo only as historical material; the build now packages src/twat_video.

Requirements

Install ffmpeg and ffprobe for real media processing. Tests exercise command construction with dry_run=True and do not require media binaries.

Python API

from twat_video import crop_scale, import_audio, split_segment

crop_scale("input.mp4", "square.mp4", crop="1080:1080:420:0", scale="720:720")
split_segment("input.mp4", "clip.mp4", start=12.5, duration=4.0)
import_audio("silent.mp4", "voice.wav", "dubbed.mp4")

Implemented deterministic helpers:

  • ffmpeg boundary: run_command, run_ffmpeg, probe_video.
  • video geometry/timing: crop_scale, change_fps, split_segment, reverse_video.
  • composition: merge_by_gap, ken_burns.
  • audio/subtitle operations: import_audio, extract_subtitles, repair_srt_text, add_reverb.
  • visual effect: add_grain.

CLI

python -m twat_video --help
python -m twat_video crop-scale in.mp4 out.mp4 --crop 1080:1080:420:0 --scale 720:720 --dry-run
python -m twat_video fps in.mp4 out.mp4 24 --dry-run
python -m twat_video split in.mp4 clip.mp4 --start 1.5 --duration 3 --dry-run
python -m twat_video import-audio silent.mp4 voice.wav dubbed.mp4 --dry-run
python -m twat_video ken-burns still.png out.mp4 --duration 5 --dry-run

AI video boundary

generate_video() is a narrow adapter. It imports twat_genai and calls a future twat_genai.generate_video provider API if present; it does not embed SkyReels, WAN, Chutes, or other provider clients.

Reference scripts

Reusable patterns from vidcropscale.py, vidfps, vidframedrop.py, vidsplit.py, vidreverse, vidmergebygap.py, vidkenburns.py, vidgrainer.py, vidreverb.py, vidimportaudio, mkv2srt.py, and srtmultifix.py are represented as package APIs.

Watermark removal, menu-bar automation, JSON presets, batch shell wrappers, and local renaming/upload workflows remain in reference/bin-img-vid/ because they are workstation-specific one-offs or policy-sensitive scripts rather than reusable package behavior.

Release files for twat-video 2.7.6

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

Source distribution (sdist)

Source distribution for twat-video 2.7.6
File Size Uploaded
twat_video-2.7.6.tar.gz 88.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for twat-video 2.7.6
File Interpreter ABI Platform
twat_video-2.7.6-py3-none-any.whl Python 3 none any Details

Total release size: 98.7 kB

Release files / twat_video-2.7.6.tar.gz

Download URL twat_video-2.7.6.tar.gz
Size 88.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a9cd4231cb42a86ded8e14793a8226f0d8fb9fec2d9dfbbe379e92538e59b29d
BLAKE2b-256 checksum
How to use checksums
8c35f6a79cb2a01b57eb9255c98dfb28f3654c774c8df935826f74e74ae26bf7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / twat_video-2.7.6-py3-none-any.whl

Download URL twat_video-2.7.6-py3-none-any.whl
Size 10.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7dd98d24bb6335bc41b4ec8cfd0e6c9adf82e46a6b58436c647ee1fa7d5bae48
BLAKE2b-256 checksum
How to use checksums
7bfcce2a7b5d5425c138b0162db27b2554a63d6d518767f61ba6db3b84eac19d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

2.7.6 This release

2 release files

2.7.5

2 release files

2.6.2

2 release files

2.6.1

2 release files

2.6.0

2 release files

2.5.3

2 release files

2.5.2

2 release files

2.5.1

2 release files

2.5.0

2 release files

2.1.9

2 release files

2.1.8

2 release files

2.1.7

2 release files

2.1.6

2 release files

2.1.3

2 release files

2.1.1

2 release files

2.0.2

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.16

2 release files

1.7.15

2 release files

1.7.14

2 release files

0.1.0

2 release files

0.0.1

2 release 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