cvf_runtime
Console Video File runtime — play .cvf files in the terminal.
cvf_runtime reads a .cvf file and plays it frame-by-frame
in the terminal. No keybinds, no editing, no interface.
Just playback.
Install
pip install cvf_runtime
Installs cuifw automatically (required for rendering).
Usage
Python
import cvf_runtime
cvf_runtime.execute("movie.cvf")
With parameters
cvf_runtime.execute("movie.cvf", loop=True)
cvf_runtime.execute("movie.cvf", speed=2.0)
cvf_runtime.execute("movie.cvf", fps=30)
cvf_runtime.execute("movie.cvf", start=100, end=200)
In the background
import cvf_runtime
import time
handle = cvf_runtime.execute_async("movie.cvf", loop=True)
time.sleep(5)
handle.stop()
API
cvf_runtime.execute(path, loop=False, speed=1.0, fps=None, start=0, end=None)
Play a .cvf file in the terminal. Blocks until finished.
| Argument | Type | Description |
|---|---|---|
path |
str | .cvf file |
loop |
bool | Loop forever |
speed |
float | Playback speed multiplier |
fps |
int | Override fps from file |
start |
int | First frame index |
end |
int | Last frame index (exclusive) |
Returns the number of frames shown.
cvf_runtime.execute_async(path, loop=False, speed=1.0, fps=None, start=0, end=None)
Start a .cvf player in a background Python process.
Returns a handle with:
handle.is_playing()— True if still runninghandle.stop()— graceful stophandle.kill()— force killhandle.wait()— block until done
cvf_runtime.Runtime(path, loop=False, speed=1.0, fps_override=None, start=0, end=None)
Low-level player class.
Methods:
run()— play, returns frames showninfo()— dict with metadata
Info about a file
import cvf_runtime
r = cvf_runtime.Runtime("movie.cvf")
info = r.info()
print(info["width"], "x", info["height"])
print(info["fps"])
print(info["frames"])
print(info["duration"])
print(info["color_mode"])
Requirements
- Python 3.7+
cuifw(installed automatically)- Terminal with UTF-8 support
Supported platforms
| Platform | Status |
|---|---|
| Linux | ✅ |
| macOS | ✅ |
| Windows (Terminal) | ✅ |
| Termux | ✅ |
| Pydroid 3 | ❌ (no ANSI rendering) |
Difference from cvf
cvf |
cvf_runtime |
|
|---|---|---|
| Create video | ✅ | ❌ |
| Edit video | ✅ | ❌ |
| Interactive player | ✅ | ❌ |
| Keybinds | ✅ | ❌ |
| Background play | ⚠️ | ✅ |
| Size | ~30 KB | ~6 KB |
| Purpose | Tool | Runtime |
cvf — full library for creating and editing .cvf files.
cvf_runtime — minimal runtime for playing .cvf files.
License
MIT — see LICENSE.
Author
Suleiman
Changelog
1.0.3
- Initial release
execute()— synchronous playbackexecute_async()— background playbackRuntime— low-level playerinfo()— file metadata- Grayscale and TrueColor support
Metadata
Release files for cvf-runtime 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cvf_runtime-1.0.3.tar.gz | 5.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cvf_runtime-1.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.9 kB
Release files / cvf_runtime-1.0.3.tar.gz
| Download URL | cvf_runtime-1.0.3.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7cff3c22b369560d1d37d472e7096b33923256af9daf98d2882eb3904e73dce1
|
|
BLAKE2b-256 checksum How to use checksums |
be60105adf92354f7099c83d123c9592dadf68157964d1f496dd216a4a0215ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / cvf_runtime-1.0.3-py3-none-any.whl
| Download URL | cvf_runtime-1.0.3-py3-none-any.whl |
|---|---|
| Size | 6.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d6a722cef1552899d41fbcf78cd04b9b1e8f6981cbb05a931ca32397b74c4dae
|
|
BLAKE2b-256 checksum How to use checksums |
5d02b0bc7284b7c8099ccf3d22db7761cc7cc0e582826f15270d2d2e58dff868
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|