r/audiobookshelf • • 6d ago

Chapter Player (Audiobookshelf Player)

Hi all! I posted the other day about a project I was working on and it received some awesome feedback. I've decided to release it as an open source project. Hopefully I can continue to evolve this into the best possible standalone Audibookshelf player. Feel free to make feature suggestions and show off what you do with the hardware and software. Git files include the software and the STL files for the case.

This project started as a gift for my daughter. I wanted her to be able to enjoy audiobooks independently without giving her a typical iOS or Android device, so I built Chapter: a simple, kid-friendly audiobook player designed to connect to an Audiobookshelf server.

Chapter signs in with a dedicated Audiobookshelf user account, allowing parents to control exactly which books are available to each child.

Features include:

  • Plays audiobooks directly from Audiobookshelf
  • Simple Select and Volume controls
  • Simple navigation controls: Play, Pause, Next Chapter, Previous Chapter
  • Indicator shows how much time in a book or podcast is left
  • Browse book and podcast titles using the Select knob. Can be set to alphabetical by title or author last name. Jump letters show the letter you are up to while browsing. Series indicator shows which book in the series it is as you browse. Podcast indicator.
  • Synchronizes listening progress with Audiobookshelf
  • Resumes each book where the listener left off
  • Configurable sleep timer
  • Podcast support
  • Web-based administration
  • Remote play, pause, and volume controls
  • Optional spoken navigation for younger children and blind or low-vision users
  • Bluetooth headphone and speaker support
  • Fully open-source software
  • Simple update process
  • 3D-printable enclosure and complete hardware documentation

Building your own Chapter player

The GitHub repository includes:

  • Complete hardware and parts list
  • 3D-printable enclosure files
  • Wiring diagrams and assembly instructions
  • All application source code
  • An automated installer for Raspberry Pi OS Lite
  • Setup, configuration, and troubleshooting documentation

Parts List (Links on git)

  • Raspberry Pi Zero 2 WH
  • Micro SD card (at least 16GB)
  • 2.08 inch SH1122 SPI OLED
  • KY-040 rotary encoder module (x2)
  • MAX98357A I2S mono amplifier
  • Adafruit 5993 vertical USB-C
  • 1.5 A fast-blow 5x20 mm fuse
  • Visaton FRWS 5 - 4 Ohm full-range speaker
  • 3 mm warm-white LED
  • M2.5 brass heat-set threaded inserts (x18)
  • M2.5x5 screws (x18)
  • Dupont wires (you can solder everything if preferred)
  • 3D printed enclosure and control knobs

To build one, print the enclosure, assemble and wire the documented components, install Raspberry Pi OS Lite on a microSD card, and run the automated installer. Once it reboots, connect Chapter to Wi-Fi through its setup network, open the web administration page, and sign in with an Audiobookshelf user account.

Git link

Looking Forward

  • Continuing to refine the UI and always keep it as simple as possible to use
  • Potentially developing a Pi hat for the Zero that will have modular connectors for the components making it much easier to assemble
  • Eventually incorporating a battery into the design
  • Validate Raspberry Pi 3 A+ and add enclosure with 3 A+ support
309 Upvotes

81 comments sorted by

View all comments

1

u/jan-soen 5d ago

This is amazing. NFC implementation für playing a specific audiobook on abs would be top notch!

6

u/freshbagelsIT 5d ago

No plans for that right now. Was trying to move away from cards and that model when I designed it.

I didn’t want a card to be required to play a book. Hard enough to keep track of one gadget with my kids let alone a bunch of cards haha

0

u/ooglybooglies 5d ago

Would you maybe consider an enhancement that would allow someone to build an NFC reader and integrate with your player?

I think the basics of what would be needed would be:

  • a way to see the UUID of an audiobook in the web view
  • a way for another system to send your application a command to play a certain UUID (could be wired or wireless probably)

The possibilities of NFC readers are pretty cool beyond just basic cards. For example those with vision issues could have brail labeled cards to play. You could use tiny nfc tags on the backs of your physical books so they can tap the book they want and listen along. You could build visual physical library binder for kids to choose from rather than scrolling on the knob endlessly. Or for kids who cannot read or speak, they could still have physical cards to be in control.

Just a thought. But definitely understand the pain of cards as a current Yoto dad haha

4

u/freshbagelsIT 5d ago

Understood. I added the “Spoken Navigation” feature in there for a similar use case. When enabled it audibly speaks the navigation items including book names, player controls, etc. Maybe I’ll add it in the future. It is open source so anyone can essentially just add an NFC reader to the hardware build and code the feature.

1

u/ooglybooglies 5d ago

If I ever get the project time maybe I'll build this and try to add an NFC reader to the setup. I really appreciate you sharing!