A fun experimental project that brings the iconic Bad Apple!! video to life — entirely in your terminal — using ASCII art and synchronized music playback.
This project reads each frame of the Bad Apple!! video, converts it into ASCII characters, and plays the animation in the console while syncing it with the original soundtrack. It's a nostalgic blend of art, tech, and creativity, demonstrating how visuals can be represented using nothing but text.
- Converts video frames into ASCII in real-time or preprocessed format
- Synchronized music playback alongside ASCII animation
- Pure console-based experience — no GUI or external video players required
- Optimized for smooth rendering in terminals
- Python – Core scripting and frame processing
- OpenCV – Frame extraction and manipulation
- PIL (Pillow) – Image handling and ASCII conversion
- playsound – Audio playing
- Terminal rendering – Uses ANSI codes or
print()for frame display
After discovering ASCII animations in terminal environments, this project was built purely out of curiosity and love for creative coding. Bad Apple!! is a perfect candidate because of its high-contrast visuals and cult status in animation communities.
- Extract all frames from the video.
- Resize and convert each frame to grayscale.
- Map grayscale values to ASCII characters.
- Display frames in sequence with correct timing.
- Play the audio track in sync with the animation.
- Python 3.x
opencv-pythonpillowplaysound
python play.py