New headphones app icon set, hardened streaming and playback, download removal controls
build / check (push) Successful in 10s
build / image (push) Successful in 31s

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
nmemmertandClaude Sonnet 5.5 committed 2026-10-19 14:11:31 -04:00
1 parent 5f88ab891b
commit 429a72f2c3
13 files changed
+375 -46

No files matched your search

+20
View File
@@ -44,3 +44,23 @@ Tap the ↓ on a book (or "Download" in the player) to save it on the device. Do
- **To open the app itself offline, serve it over HTTPS.** Browsers only allow the service worker (`sw.js`) on secure
origins. Put a reverse proxy with a certificate in front of port 8080 (and a domain name). Over plain HTTP, downloads
still play but the page can't load without a connection.
## Troubleshooting playback
Run this on the player server (or `docker exec -it audiobook-player python server.py check`):
```bash
python3 server.py check
```
It logs in to OpenAudible, lists a few books' files, and tests whether each file can stream to a phone. iPhones will
only play audio from a server that answers byte-range requests; if OpenAudible doesn't, the player server emulates
them (seeking in very large books is slower). The container's log (`docker logs audiobook-player`) notes when that happens
and records any upstream errors.
The player also recovers by itself from dropped connections and stalls (it reloads from the same spot, up to four times),
and your position is saved every few seconds, on pause, and when the page is closed or backgrounded.
## Icons
`python3 tools/make_icons.py` regenerates the app icons (needs Pillow).