Skip to content
M-Rajabi-dev

M-Rajabi-dev/AudioShelf

Live in production

An accessible, open-source desktop audiobook player for Windows, specifically optimized for blind and visually impaired screen reader users.

Audioshelf is an accessible, open-source desktop audiobook player for Windows. Designed for a seamless and user-friendly listening experience.

4 2PythonPush 19d agoListed 3d agoGPL-3.0

m-rajabi-dev.github.io/AudioShelf/

a11yaccessibilityaudiobookaudiobook-playeraudioshelfblinddesktop-appfoss
  • Python99.0%
  • NSIS1.0%
View on GitHub

Report a problem

1 Review

AudioShelf stands out because it is not just another media player; it is clearly designed around audiobook behavior. The README focuses on the right user problems: per-book progress, smart resume, bookmarks, metadata stored alongside books, A-B loop, speed control with pitch correction, a 10-band equalizer, sleep timer, portable mode, installer and Winget options, and keyboard-first operation. The accessibility angle is especially strong. The project explicitly targets NVDA and JAWS, uses accessible_output2, includes an nvda_controller.py, and documents hotkeys like play/pause, rewind/forward, speed adjustment, quick bookmark, sleep timer, last book, and search. The source organization also looks healthier than a single-file script: there are folders for frames, dialogs, playback, locale, and database layers, with AudioShelf.py handling startup, logging, crash handling, portable-mode data paths, IPC, and context-menu actions. If I were using this, the key difference from VLC or a generic player would be that it remembers “books” as first-class objects, not just files. The improvements I’d suggest are mostly around contributor confidence: add screenshots or a short GIF of the actual player, document supported audio formats, and add tests around metadata persistence, portable mode, and progress/bookmark serialization. Since this is accessibility-first, a short manual testing checklist for screen readers would be valuable.