A vaporwave music + image + video (+art soon, I promise) generator bodged together using code from various sources. Runs on Python 3. VHSVideo option is really really slow.
vaporwave generator 旺育栄 2.7
usage: vaporwave-generator [-h] [-M | -P | -V] [-v] [-i INPUT] [-o OUTPUT]
[-d DATE] [-t TIME]
| V A P O R W A V E || G E N E R A T O R |
options:
-h, --help show this help message and exit
-M, --music generate v a p o r w a v e music
-P, --picture generate VHS Style image
-V, --video VHS Style Video
-v, --version show program version
-i INPUT, --input INPUT
-o OUTPUT, --output OUTPUT
Output for specifying output video
-d DATE, --date DATE Custom Date in yyyy/mm/dd format. e.g 2020/5/14
-t TIME, --time TIME Custom Time in HH:MM format. e.g 11:23
Music mode downloads audio with yt-dlp, then uses Python audio processing to slow it down, detect beats, rearrange beat sections, and add reverb. Image mode adds saturation, VHS row glitches, noise, timestamp text, and a pause overlay. Video mode extracts frames with OpenCV, applies the image effect to each frame, rebuilds the video, and merges the original audio back with ffmpeg.
Install system tools:
sudo apt install ffmpegbrew install ffmpeg uvInstall Python dependencies:
uv syncThe old get-beats Linux binary, aubio, noah, and Sox are no longer required. Music transformations now run through the Python code in src/VaporSong.py.
uv run vaporwave-generator --helpuv run vaporwave-generator -M -i "<YOUTUBE_URL>"
uv run vaporwave-generator -M -i "Song Title"uv run vaporwave-generator -P -i "image.jpg"
uv run vaporwave-generator -P -i "image.jpg" -d 2020/5/14 -t 11:23The image output is written to out.jpg.
uv run vaporwave-generator -V -i "video.mp4" -o "output.mp4"Video styling is slow because it applies the full image pipeline to every extracted frame.
Run tests with:
uv run --extra dev pytestSample Album:
https://www.bandlab.com/programming_psychic/albums/844f21a0-fa65-ea11-a94c-0003ffd19c0f
See in.mp4 and out.mp4 in the assets folder.
- Replace
get-beatsbinary with Python beat detection - Replace Sox music transforms with Python audio processing
- Move Python dependency management to
uv - Clean up CLI argument handling
- Add VHS picture styler
- Add video generator
- Add custom date to VHS styler
- Add artwork generator
@WJLiddy His repo Macintech forms the base code for the music generator.
@felipecustodio Using his repo virtualdreamsbot YouTube downloader code.
@Ragex04 His repo VHS_BingImages forms the base code for the VHS image styler.



