Local-library audiobook playback for Huxley — pause, resume, position-persist, multi-language.
Project description
huxley-skill-audiobooks
Local-library audiobook playback for Huxley. Pause, resume, position-persist; multi-language; ffmpeg-backed.
Status: bundled with the Huxley repo as a workspace member. Installed automatically by
uv syncfrom the repo root. The on-PyPI publication path is the same as for any third-partyhuxley-skill-*package — seedocs/skills/installing.md.
What it does
search_audiobooks— "do you have anything by García Márquez" — fuzzy matches title + author against the local library scan.play_audiobook— "play One Hundred Years of Solitude" — resumes from the last persisted position, narrates a chime if the persona opted in.pause_audiobook— "pause the book" — saves position; the nextplay_audiobookresumes from there.
Streaming is via ffmpeg: the framework's turn coordinator receives an AudioStream side effect from the skill's tool result and pipes the PCM16 frames out through the WebSocket as the model talks (and after it finishes).
Configure
skills:
audiobooks:
library_path: "audiobooks/" # resolved against ctx.persona_data_dir
ffmpeg: "ffmpeg" # PATH lookup; override for non-standard installs
ffprobe: "ffprobe" # ditto; only used at library scan time
sounds_path: "sounds" # for the start-of-playback chime
sounds_enabled: true
i18n: # per-language tool descriptions
es:
search_desc: "Busca un audiolibro en la biblioteca local..."
en:
search_desc: "Search the local audiobook library..."
Library directory layout:
<library_path>/
├── Gabriel García Márquez/
│ ├── Cien años de soledad.m4b
│ └── El coronel no tiene quien le escriba.m4b
└── Jorge Isaacs/
└── María.m4b
config_schema = None — i18n maps + filesystem paths don't fit JSON Schema cleanly; v2's PWA falls back to "edit YAML directly."
Requirements
ffmpegandffprobeavailable on the host (brew install ffmpegon macOS; system package manager on Linux).- Audiobook files in M4B (preferred — preserves chapter metadata) or MP3.
Development
uv run --package huxley-skill-audiobooks pytest server/skills/audiobooks/tests
uv run ruff check server/skills/audiobooks
uv run mypy server/skills/audiobooks/src
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file huxley_skill_audiobooks-0.1.0.tar.gz.
File metadata
- Download URL: huxley_skill_audiobooks-0.1.0.tar.gz
- Upload date:
- Size: 30.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7207656b7cc26497b6d5950fff5ae07ddc34d1e28f79e3b13673afaf24fa78ff
|
|
| MD5 |
a4d448744d510c1c0ec17a61af01ba74
|
|
| BLAKE2b-256 |
88edf500687b0b2239fcaf77c1f4bbfb7023315bbaad06823332d4bffca35237
|
File details
Details for the file huxley_skill_audiobooks-0.1.0-py3-none-any.whl.
File metadata
- Download URL: huxley_skill_audiobooks-0.1.0-py3-none-any.whl
- Upload date:
- Size: 24.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb3dba98fe46861c931db32f140c951cefb1f5fa3dd420bfffbbc72057ef29b4
|
|
| MD5 |
5ecd7e4eefb55bd2bf86aaf8032da795
|
|
| BLAKE2b-256 |
d166fa81f2528c14cb510843959d197afb616744eac841cc6af86e1a7054ceee
|