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.4
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.4.tar.gz | 5.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cvf_runtime-1.0.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.9 kB
Release files / cvf_runtime-1.0.4.tar.gz
| Download URL | cvf_runtime-1.0.4.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
381a2c2118c08741fffb846cf9329208079b0680a9d0047e9ee6ea2ddf2f02a4
|
|
BLAKE2b-256 checksum How to use checksums |
f1a1f0d08f845f37059a6faf1ffd35fde0306efd89e2d2f616c057c4377d4ce9
|
| 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.4-py3-none-any.whl
| Download URL | cvf_runtime-1.0.4-py3-none-any.whl |
|---|---|
| Size | 6.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1a275a34f6d093bc115cefcb7b3169646ca17f50e108dfec111e9e41e601c502
|
|
BLAKE2b-256 checksum How to use checksums |
0a96fd8faa675064a22bc60a28a413a248af03bc07fa736601f476b866644d24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|