A terminal-based MP3 music player built with Textual, pygame, and mutagen.
It lets you create and manage playlists, add songs, shuffle, and control playback - all from a beautiful Textual UI.
- 🎧 Create and manage playlists
- ➕ Add MP3 songs using a file picker
▶️ Play / ⏸ Pause / ⏭ Next song controls- 🔀 Shuffle mode
- 📊 Real-time progress bar
- 🧾 Persistent playlists (saved as
.txtfiles)
textual-music-player/
│
├── music_app.py # Main application
├── appstyles.css # Textual styling file
├── requirements.txt # Dependencies list
├── README.md # Documentation
└── LICENSE #MIT LICENSE
git clone https://github.com/kunjsinha/textual-music-player.git
cd textual-music-playerpython -m venv venv
source venv/bin/activate # macOS / Linux
# or
venv\Scripts\activate # Windowspip install -r requirements.txtpython music_app.py- Create Playlist: Type a name and click “Create Playlist.”
- Select Playlist: Click a playlist button from the left panel.
- Add Song: Click “Add Song” and pick an MP3 file.
- Play Controls: Use Play, Pause, Next, and Shuffle.
- Quit: Click “Quit” to exit the app.
- All playlists and songs are saved locally in csv and text files.
- Playlists are tracked in playlist.csv.
- Each playlist’s songs are stored in separate .txt files.
- The player uses pygame.mixer for playback and mutagen for MP3 duration.
- The app automatically updates the progress bar as the song plays.