Bad Apple!! Terminal Player 🍎
Flicker-free, audio-synced Bad Apple!! player for your terminal.
Features
- 3 Rendering Modes:
halfblock(Default): 2x vertical resolution using half-block characters (▀,▄) for crystal-clear silhouettes.braille: Ultra high-resolution rendering using Unicode Braille (2x4 matrix) characters.ascii: Classic nostalgic ASCII shading (.:-=+*#%@).
- 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 (halfblock → ascii → braille) |
| 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 (halfblock, ascii, braille)
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.0
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.0.tar.gz | 17.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bad_apple_in_terminal-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.8 kB
Release files / bad_apple_in_terminal-1.0.0.tar.gz
| Download URL | bad_apple_in_terminal-1.0.0.tar.gz |
|---|---|
| Size | 17.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
840418c14a0245e0742d178ab07b347d0af00c50135a7b12dbefd440c5fe40c5
|
|
BLAKE2b-256 checksum How to use checksums |
3b9cc4d1c90316bfc20bf823c0bcf15b2595cf7f8afeb6a69166f3de479605da
|
| 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.0-py3-none-any.whl
| Download URL | bad_apple_in_terminal-1.0.0-py3-none-any.whl |
|---|---|
| Size | 21.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c5e1a2d4333b56132a17c8d5b163e5d54b15cba1fee111c065f44b8e9258d710
|
|
BLAKE2b-256 checksum How to use checksums |
36d99ef8cc6ff212abf080b5c13a44d6114ff45061316ee76c6e9c00d52bcd3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|