Stats
Actions
Tags
From ai-tools
Interact with the Audiobookshelf API to manage audiobook libraries, update metadata, scan directories, and manage authors. Use when working with Audiobookshelf server instances.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ai-tools:audiobookshelfThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
All settings are loaded from the `.env` file in the workspace root.
scripts/api_client.pyscripts/dump_library_to_json.pyscripts/get_author_metadata.pyscripts/get_library_items.pyscripts/list_author_books.pyscripts/list_libraries.pyscripts/scan_audiobook_directory.pyscripts/scan_libraries.pyscripts/search_authors.pyscripts/update_audio_metadata.pyscripts/update_author_photos.pyscripts/update_book_metadata.pyscripts/update_series_metadata.pyscripts/verify_series_metadata.pyAll settings are loaded from the .env file in the workspace root.
AUDIOBOOKSHELF_HOST=http://localhost/audiobookshelf
AUDIOBOOKSHELF_USERNAME=your_username
AUDIOBOOKSHELF_PASSWORD=your_password
scripts/| Script | Purpose |
|---|---|
api_client.py | Common client setup patterns (async and sync) |
list_libraries.py | List all libraries from the server |
get_library_items.py | Get books with filtering by author/series |
search_authors.py | Search and manage authors |
update_book_metadata.py | Update book metadata via PATCH API |
scan_libraries.py | Trigger library rescans |
update_audio_metadata.py | Update local audio file metadata using mutagen |
scan_audiobook_directory.py | Scan local directories for audiobook info |
from aioaudiobookshelf import SessionConfiguration, get_admin_client_by_token
async with aiohttp.ClientSession() as session:
session_config = SessionConfiguration(session=session, url=SERVER_URL, token=API_KEY)
abs_client = await get_admin_client_by_token(session_config=session_config)
libraries = await abs_client.get_all_libraries()
headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
response = requests.patch(url, headers=headers, json=payload, timeout=10)
from mutagen.mp4 import MP4
audio = MP4(file_path)
audio.tags['\xa9ART'] = [author]
audio.save()
scripts/ for reusable patterns before creating new scriptsapi_client.py as starting point for new API scriptsupdate_audio_metadata.py patterns for local file metadata updates$WORKSPACE_PATH/temp/npx claudepluginhub hevangel/media-agent-skills --plugin ai-toolsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.