Play the iconic "Bad Apple!!" Touhou animation as ASCII art in your terminal!
This project plays the famous "Bad Apple!!" animation as ASCII art directly in your terminal, with optional audio playback. The entire video (6500+ frames) and audio are embedded into a single binary, making it easy to distribute and run anywhere.
brew tap marsboy02/tap
brew install bad-applegit clone https://github.com/marsboy02/bad-apple.git
cd bad-apple
go build -o bad-apple
./bad-apple# Play video only (30fps default)
./bad-apple
# Play with audio
./bad-apple --audio
# Play audio only
./bad-apple --audio-only
# Loop indefinitely
./bad-apple --repeat
# Play N times
./bad-apple --times=3
# Custom frame rate
./bad-apple --fps=60
# Combine options
./bad-apple --audio --repeat --fps=30--audio: Play audio along with video--audio-only: Play audio only (no video)--repeat: Loop until interrupted (Ctrl+C)--times=N: Number of times to play (default: 1)--fps=N: Frames per second for video (default: 30)
- Runtime: macOS (uses
afplayfor audio playback) - Build: Go 1.24.5 or later
- Clone the repository
- Run
go build -o bad-apple - The binary will include all assets (frames + audio)
If you want to modify the video processing:
- Extract video frames as PNG files to
frames/directory - Install Python dependencies:
python3 -m venv venv source venv/bin/activate pip install opencv-python - Run the generator:
python scripts/generate_ascii_frames.py
- Rebuild the Go binary
- Binary Size: ~45MB (includes embedded assets)
- Frame Format: 128x40 characters, gzip-compressed
- Audio Format: WAV (38MB uncompressed)
- Total Frames: 6574 frames
- Platform: macOS only (audio playback uses
afplay)
MIT License - see LICENSE file for details
- "Bad Apple!!" - Original song by ZUN, arranged by Alstroemeria Records
- Animation from Touhou Project