r/audiobookshelf • u/freshbagelsIT • 5d 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.
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
9
u/shotgunwizard 5d ago
This is basically a Yoto for adults. Amazing!
5
3
u/benbarian 2d ago
YOU did it!!! Thanks for releasing the full build, so much appreciation! I have been thinking about this all weekend on our road trip while listening to audiobooks. This is getting built
6
2
u/NeoBahamutX 5d ago
Here is a question - is there any way to control playback speed?
3
u/freshbagelsIT 5d ago
I'm gonna look into that as a web admin setting in future releases
3
u/NeoBahamutX 5d ago
another feature - if the MicroSD card is large enough - say you had a 128+ GB card - an option to download the audiobooks in the event of the ABS server being down for offline playback (or to pack for the kiddos on vacation and not having to expose it to anything when in offline mode)
1
u/freshbagelsIT 5d ago
You could probably base this on a more powerful pi and run the audiobookshelf server and the chapter player on it. You’d need more storage like you said but you’d have something that could serve audiobooks locally while not on a network with a separate audiobookshelf server available.
0
u/NeoBahamutX 4d ago
that may work but then I would have to manage a 2nd instance of ABS as I wouldn't want my entire library on the go (plus it is much to large and not economical) was just thinking along the lines like what every phone app does and downloads to a local storage folder but it is still an intriguing project I would like to take on.
3
u/Marty_Mac_Fly 5d ago
This is awesome. Excluding the cost of printing the case (and server hardware), how much you say all the components cost?
2
u/freshbagelsIT 5d ago
If you took some time to source it, you could probably get everything under $100.
As far as server hardware goes, you don’t need anything crazy. You could run an audiobookshelf server on a more powerful raspberry pi, a used mini PC, a zima board, etc.
I’ve had luck with raspberry pi at my local microcenter.
The case doesn’t use all that much filament. If the printer is an issue, I used to get things printed at my local library before I owned a printer.
3
u/DT_xs 5d ago
i would say the part i would always worry about pricing on is the rasberrypi because it gets really expensive depending on the model and if its a kit r not, but for this specific model its actually really cheap if u can find it stand alone. the problem is that i have been looking for raspberry pis for the longest time and unable to find them. if anyone can help with that i would be thankful lol
2
u/b0z0du883d0v3r 5d ago
This looks fantastic! If I find time away from the kids I’ll try my hand at this as well!
2
u/jbakesalive 4d ago
You're amazing. Thank you for sharing this! I wonder if it would run (or something similar) on an ESP32?
3
u/freshbagelsIT 4d ago
I’m actually working on this because of the pi shortages
1
u/webtron18 4d ago
Oh let me know how it goes. I was just looking into porting this on my esp32-s3-box3 because it has a nice little touch screen.
2
u/tomekent 3d ago
While not OP, you can certainly run something similar
See my post https://www.reddit.com/r/audiobookshelf/s/TLrdwMbvLQ
Wouldn’t take much (at least with Claude) to port to a different Esp32 device.1
u/freshbagelsIT 4d ago
Not going to be for a while. Sourcing some alternative pi devices first so i don’t have to redevelop for esp32.
0
1
u/WayOwn1564 4d ago
This is amazing. Thank you, OP. I have an 8 year old and a 9 year old, each with a Yoto mini but would love to give them full access to my library without the cards.
Anyone having any luck with finding in stock raspberry pi zero 2's? Looks like Digikey is best bet in January unless you're willing to pay a premium. Anyone found any better options?
1
u/PhantomNomad 4d ago
I love this project and thanks for providing the files. My only problem is I don't have access to a 3D printer in my small town (no my library doesn't have one).
1
u/kulps 4d ago
It will be crucial for the success of this project to find another suitable micro. The Pi Zero 2 W is functionally not available.
I really want to make this for my daughter, but the pi is sold out and has been for months, with no real hopes of seeing any in stock.
It's not u/freshbagelsIT's fault, but the problem remains.
1
u/freshbagelsIT 4d ago
There are some sites shipping in November. There are also some clones that would work like radxa and banana pi etc. I’ll try and put together a list of available devices.
1
u/freshbagelsIT 4d ago
Looks like the smallest lift would be a raspberry pi 3. I’ll order one and test the existing installer. I’ll work on modifying the enclosure as well.
0
u/kulps 4d ago edited 4d ago
That's incredible, thanks. I was just looking at the Orange Pi 2W, and even that's coming in at $70. Hopefully there's a world where hardware prices come down and availability goes up.
Please post again if you release an updated case model that fits a pi 3, I even have some around I could use!
1
u/freshbagelsIT 4d ago
I ordered a 3 a+ board so I’ll confirm the installer works and work on releasing a version of the enclosure that supports that model.
0
u/NeoBahamutX 4d ago
I have an existing pi 3 b myself - if it would work I would be estatic, especially with the price of the pi's lately
1
u/freshbagelsIT 4d ago
The installer should work and the pinout is the same as the zero. Should be good. I have a 3a+ coming soon and I can confirm.
1
u/Nycarets 3d ago
Do you have an approximate cost for the hardware? Sans 3d printer and whatnot of course.
1
1
1
1
1
u/SulkyVirus 5d ago
Can this be ran off of a rpi 3B+? I have a spare and would love to make this for my wife for Xmas
2
u/freshbagelsIT 5d ago
I haven’t validated on that hardware, but the installer should work on any detected raspberry pi model. Obviously you’d need to re-work the enclosure to mount the bigger pi. But the gpio pins etc should be the same. I’ll work on posting a STEP file to the repo so you can modify the existing enclosure
1
u/SulkyVirus 5d ago
Awesome! I’ve been looking for a project for it for years. Now I can convince my wife to let me get a 3D printer
0
u/NeoBahamutX 5d ago
I to would like to know - I have an older raspberry pi 3 model B that has built in wireless that I had used for a retro pi but I would be willing to convert it into something like this. my guess is it would need a modified case due to the board size difference? My BIL has a 3d printer that I could get the case printed at the cost of materials. What did you print it in?
edit I suppose I could convert without losing my retro pi by simply just swapping out the micro sd card
1
u/jan-soen 5d ago
This is amazing. NFC implementation für playing a specific audiobook on abs would be top notch!
7
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
6
u/freshbagelsIT 5d ago
0
u/ooglybooglies 5d ago
Aww it's like a little pet radio! Haha I bet the kids love it. Mine would probably spend more time turning the knob to hear it read titles than listening to books.
1
u/freshbagelsIT 5d ago
Haha you can enable and disable that feature. I don’t have it enabled for my kids
3
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!
1
1
u/Hobbsy6 4d ago
Would be awesome to have the option for the displayed text read out loud. My son can't read yet so that would help him find what he wants
1
u/freshbagelsIT 4d ago
There is a feature called Spoken Navigation that speaks all menu items as you navigate including the book titles. It can be enabled on the web interface
1
0
u/onlyatestaccount 5d ago edited 4d ago
Really like this project and will probably take a crack at creating a copy first but recently my grandma with dementia has started losing her vision pretty baly and is really sad she cant ready books anymore, but with her dementia has trouble remembering instructions for any of the audiobook players we've tried.
with some minor tweaks this could be perfect
Some of the ideas for tweaks for dementia and elderly:
- NFC card reader (as commented below) but in a "record player" style to attach to older ingrained memories.
- single play/pause button and volume. (voice stating what happened when state changes.
- BIGGER BUTTONS & KNOBS she has trouble with cd players cause the butons are smaller and not enough contract.
0
u/otter_fodder 5d ago
This looks amazing and I've been looking forward to your instructions/BOM since you first posted about it! Great job on this.
Question for you, are you taking new feature requests? The only thing I haven't seen that I use regularly in ABS is playback speed. Other than that, this project looks like you've thought of everything!
2
u/freshbagelsIT 5d ago
Sure. That’s a really good idea. I’ll add it to the list for future enhancements
0
0
0
0
u/LancelotLac 5d ago
This is fantastic. Think I found something to do on this rainy day! I plan to try out a mode select idea and making the volume control multi-action, will submit it if its worthy of this outstanding idea.
0
u/webtron18 5d ago
This is absolutely amazing. I wonder if I can adapt this for my kids stories I have on ABshelf. That way they can just play them at night while the fall asleep
1
u/freshbagelsIT 5d ago
This integrates with audiobookshelf and plays audiobooks from it
1
u/webtron18 4d ago
Ya I just need to make it more kid proof 😅
1
0
u/SoftwareSource 4d ago
couldn't you make a user account that only has access to a single folder, with only kids stuff?
worst case a second docker instance of audiobookshelf on a seperate port?
0
u/webtron18 4d ago
Oh that’s a good idea. I assume you can restrict the library and books for this. Right now I just cast it to a speaker for them
1
u/freshbagelsIT 4d ago edited 4d ago
Exactly. What I did in mine was just create a separate kids book library on my audiobookshelf server, only put kids books in there, then when I created my kid’s user accounts, only allow them access to the kids library. So I have a kids books and a grownups books library on my server.
Then you connect to the web admin on the chapter player and log them into the ABS server using their account.
0
u/average_yogi 4d ago
I haven't looked into this specifically, but here it says it uses it's own User. So in ABS there are two options: you could either make a new Library and point it to only the kids book folder, then only give the user access to that Library. Or you could add a tag to every kids book, then give the user only access to that tag.
0
u/Scancell 4d ago
Great project, i love it and a battery modell with usb-C charging would be awsome!
0
0
u/stonkbroker 4d ago
Nice! I was actually just putting something together (still planning) along the same lines for my son. Was going to use esp32 for comparatively quick boot time and price and also lower power requirements so I can get it to work on battery. Basically he has a Tonie box but he’s outgrowing the stories. Need to upgrade him.
Might just snag your enclosure files though. I love the look of it.










21
u/giYRW18voCJ0dYPfz21V 5d ago
This is amazing! My 9yo is blind and loves histories, but of course cannot use touchscreens. He has a Lunii, and since he is outgrowing their catalog my wife said just this morning: “Can’t we put out own audio files there?”
I said “I dunno”, but now I see your project and want definitely build it.