Sync your reading progress between Audiobookshelf (Audiobooks) and KOReader/KoSync (Ebooks).
10K+
The missing link between your ears and your eyes.
Seamlessly sync your reading progress between Audiobookshelf (Audiobooks) and KOReader/KoSync (Ebooks). Start listening in the car, and pick up exactly where you left off on your Kindle or Kobo.
services:
# ---------------------------------------------------------------------------
# 1. The Bridge Service
# ---------------------------------------------------------------------------
abs-kosync:
image: 00jlich/abs-kosync-bridge:latest
container_name: abs_kosync
restart: unless-stopped
# depends_on:
# - audiobookshelf
# - kosync
# CRITICAL: Machine Learning libraries need shared memory
shm_size: '2gb'
environment:
- TZ=America/New_York
# --- Server Connections ---
- ABS_SERVER=http://audiobookshelf:80
- ABS_KEY=your_abs_api_key_here
- KOSYNC_SERVER=http://kosync:3000
- KOSYNC_USER=admin
- KOSYNC_KEY=your_kosync_password
# --- Sync Logic ---
- SYNC_PERIOD_MINS=5
# Loop Prevention: Ignore small changes caused by rounding errors
- SYNC_DELTA_ABS_SECONDS=60
- SYNC_DELTA_KOSYNC_PERCENT=1
# --- Matching Logic ---
- FUZZY_MATCH_THRESHOLD=80
- KOSYNC_HASH_METHOD=content # Use 'content' for KOReader native hashing
volumes:
# Map the EXACT same folder structure used by your KOReader device if possible,
# or just the root folder containing your EPUBs.
- ./library:/books
- ./bridge_data:/data
| Variable | Default | Description |
|---|---|---|
| ABS_SERVER | None | URL of your Audiobookshelf server (e.g., http://abs:13378) |
| ABS_KEY | None | API Key generated in ABS Settings |
| KOSYNC_SERVER | None | URL of your KoSync server (No trailing slash!) |
| KOSYNC_USER | None | Your KoSync username |
| KOSYNC_KEY | None | Your KoSync password |
| SYNC_PERIOD_MINS | 5 | How often to check for progress updates |
| SYNC_DELTA_ABS_SECONDS | 60 | Ignore audiobook changes smaller than X seconds (Loop prevention) |
| SYNC_DELTA_KOSYNC_PERCENT | 1 | Ignore ebook changes smaller than X% (Loop prevention) |
| FUZZY_MATCH_THRESHOLD | 80 | Confidence score (0-100) required for fuzzy matching |
| KOSYNC_HASH_METHOD | content | content (Recommended/KOReader default) or filename (Legacy) |
docker-compose run --rm abs-kosync python src/main.py match
1.1. Select the Audiobook from the list. 1.2. Select the Ebook from the list. 1.3. Done. The job is queued. You can close the terminal. The container logs will show the transcription progress.
docker-compose logs -f abs-kosync
Content type
Image
Digest
sha256:c95bf4436…
Size
390.8 MB
Last updated
about 18 hours ago
docker pull 00jlich/abs-kosync-bridge:sha-902a3e2