Bad Apple!! Terminal Player 🍎
Flicker-free, audio-synced Bad Apple!! player for your terminal.
Features
- 3 Rendering Modes:
ascii(Default): Classic nostalgic ASCII shading (.:-=+*#%@).braille: Ultra high-resolution rendering using Unicode Braille (2x4 matrix) characters.halfblock: 2x vertical resolution using half-block characters (▀,▄) for crystal-clear silhouettes.
- Zero-Setup & Auto-Provisioning: Clones and runs immediately! Automatically installs missing dependencies (
opencv-python-headless,colorama,pygame) and downloads video/audio assets with MD5 checksum verification. - Cross-Platform Audio Engine: Backed by
pygame.mixerfor distortion-free pause/resume and zero-latency seeking, with fallback to native OS drivers on Windows (winmm.dllMCI), macOS (afplay), and Linux (ffplay/mpv/aplay). - Flicker-Free & Ghost-Free Rendering: Employs Alternate Screen Buffer (
\033[?1049h), scrollback buffer purging, and dynamic resizing for a pristine, clean display at 30 FPS. - Dynamic Sizing & Visual Scrubber: Automatically senses terminal dimensions, preserves the 4:3 aspect ratio, centers output, and displays an interactive progress bar.
Controls
| Key | Action |
|---|---|
| Space | Pause / Resume |
| M | Cycle render modes (ascii → braille → halfblock) |
| Right Arrow (→) | Seek forward 5 seconds |
| Left Arrow (←) | Seek backward 5 seconds |
| R | Restart playback |
| Q / Esc | Quit |
Installation & Quick Start
Option 1: Install via pip (Recommended)
pip install bad-apple-in-terminal
Run it directly from anywhere in your terminal:
bad-apple
# or
badapple
Option 2: Run from Source (Zero-Setup)
Just clone and run! Required dependencies and media files are automatically prepared on first launch:
git clone https://github.com/Ohualtex/bad-apple.git
cd bad-apple
python main.py
Options & Flags
# Start with a specific render mode (ascii, braille, halfblock)
bad-apple --mode braille
# Disable audio
bad-apple --no-audio
# Set specific terminal width/height
bad-apple --width 100 --height 35
macOS Tips
- Gapless Half-Block Display:
The default macOS Terminal.app adds vertical font leading (line spacing) between lines. To achieve a seamless, OLED-smooth display:- Open Terminal → Settings (
Cmd + ,) → Profiles → Text. - Click Change... under Font.
- Expand the font window downward if needed, and set the Line Spacing slider to
0.80. - Alternatively, press
Mto switch to Braille mode (which is naturally immune to line spacing), or use modern terminals like iTerm2, Ghostty, or Kitty.
- Open Terminal → Settings (
Metadata
Release files for bad-apple-in-terminal 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bad_apple_in_terminal-1.0.1.tar.gz | 18.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bad_apple_in_terminal-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.8 kB
Release files / bad_apple_in_terminal-1.0.1.tar.gz
| Download URL | bad_apple_in_terminal-1.0.1.tar.gz |
|---|---|
| Size | 18.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ad8b481befd08bcbd6fc90843b0dd205c584049480e5ba71767743e6dfe16a0c
|
|
BLAKE2b-256 checksum How to use checksums |
8582c1378ff018be1e9451994e4a55db727972cf8d1361bd1c6d6edc52716f07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / bad_apple_in_terminal-1.0.1-py3-none-any.whl
| Download URL | bad_apple_in_terminal-1.0.1-py3-none-any.whl |
|---|---|
| Size | 22.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
03a7b80eb3417805a313272162b691c699633cc75cfc8860cf7c20914e576b3e
|
|
BLAKE2b-256 checksum How to use checksums |
84e1b3e1dafdeaea6be78fc64943223c2aa6d0962acb678503c85d6fb69f9665
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|