Skip to main content

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 .wav audio 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

  1. Audio analysis — librosa extracts RMS energy, onset strength, and 64-band mel spectrogram
  2. Palette extraction — dominant colors pulled from cover art
  3. GPU rendering — ModernGL (OpenGL 3.3) fragment shaders render each frame
  4. 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)

Source distribution for audioglow 0.1.3
File Size Uploaded
audioglow-0.1.3.tar.gz 16.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for audioglow 0.1.3
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.0

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