audioglow
GPU-accelerated audio-reactive music video generator. Turns your tracks into visual content with OpenGL shaders — album covers react to beats, bass, and frequencies in real time.
Installation
pip install audioglow
Requirements: ffmpeg must be installed and available in PATH.
Quick Start
Python API
from audioglow import render_video
# Minimal — just tracks, output, and video type:
result = render_video(
tracks=["tracks/my_song/"],
output="output.mp4",
video_type="cover_audio_reactive",
)
# Custom settings:
result = render_video(
tracks=["tracks/song1/", "tracks/song2/"],
output="mix.mp4",
video_type="cover_audio_reactive",
fps=60,
resolution=(1920, 1080),
bloom_strength=2.0,
bitrate="16M",
crossfade_ms=3000,
)
# result.video_path — Path to the rendered .mp4
# result.timestamps — track start times:
# [{"title": "song1", "start_ms": 0}, {"title": "song2", "start_ms": 187000}]
Each track directory must contain:
- One
.wavaudio file - One cover image (
.png,.jpg, or.jpeg)
CLI
# Single config
audioglow --config config.json --tracks-dir ./tracks --output ./out
# Batch — all configs in configs/
audioglow --all --output ./out
Video Types
| Type | Description |
|---|---|
cover_audio_reactive |
Album cover with reactive zoom, shake, bloom on blurred background |
cover_overlay_green |
Cover + green-screen video converted to palette-colored particles |
cover_overlay_spectrum |
Cover + audio frequency spectrum wave visualization |
cover_combo |
All effects combined: particles + spectrum + cover |
Overlay types (cover_overlay_green, cover_combo) require overlay_path pointing to a green-screen video file.
Parameters
| Parameter | Default | Description |
|---|---|---|
resolution |
(1920, 1080) |
Video resolution |
fps |
30 |
Frames per second |
cover_size |
800 |
Cover art size (px) |
zoom_strength |
0.3 |
Bass-reactive zoom intensity |
shake_strength |
4.0 / 0.5* |
Beat-reactive camera shake |
bloom_strength |
1.5 / 3.0* |
Glow intensity on beats |
blur_sigma |
40 / 35* |
Background blur radius |
bitrate |
"12M" |
Video bitrate |
crossfade_ms |
4000 |
Crossfade between tracks (ms) |
overlay_path |
None |
Path to overlay video (required for overlay types) |
config_file |
None |
JSON config file (overrides type defaults, kwargs override both) |
tracks_count |
all | Max tracks to use |
*cover_combo type uses different defaults optimized for layered effects.
Config Priority
Type Defaults → JSON config file → kwargs
(lowest) (highest)
JSON Config Example
{
"video_type": "cover_audio_reactive",
"resolution": [1920, 1080],
"fps": 30,
"zoom_strength": 0.3,
"shake_strength": 4.0,
"bloom_strength": 1.5,
"blur_sigma": 40,
"bitrate": "12M",
"tracks_count": 2,
"crossfade_ms": 4000
}
How It Works
- Audio analysis — librosa extracts RMS energy, onset strength, and 64-band mel spectrogram
- Palette extraction — dominant colors pulled from cover art
- GPU rendering — ModernGL (OpenGL 3.3) fragment shaders render each frame
- Encoding — ffmpeg encodes frames with hardware-accelerated H.264 (VideoToolbox / NVENC / VAAPI / QSV, fallback to libx264)
License
MIT
Metadata
Release files for audioglow 0.1.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 | |
|---|---|---|---|
| audioglow-0.1.3.tar.gz | 16.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| audioglow-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.1 kB
Release files / audioglow-0.1.3.tar.gz
| Download URL | audioglow-0.1.3.tar.gz |
|---|---|
| Size | 16.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8797ec2ddd9695d1b8b95e76a4acbee04f0b9fd1ee6265a2d5b0599007d6537d
|
|
BLAKE2b-256 checksum How to use checksums |
26da00aa7ce54878d4b802ced93ae93087cb05983744b11212cee45c411eb275
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 7, 2026.
Transparency logRelease files / audioglow-0.1.3-py3-none-any.whl
| Download URL | audioglow-0.1.3-py3-none-any.whl |
|---|---|
| Size | 22.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
53dc2e82fc68f05aab969a2ddedf14609d915b49c03536a3f80915dfb34f0960
|
|
BLAKE2b-256 checksum How to use checksums |
134cb6bbc8f4db5f48ebf924afdc3f05699bed6ab711eb74a1308f33e507a8c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 7, 2026.
Transparency log