Convert a directory of audio files into a single .m4b audiobook with chapters, cover art, and metadata
Project description
m4Bookmaker
Convert a folder of audio files into a clean M4B audiobook — in seconds.
⭐ Watch this repo (Releases only) to get notified when a new version drops.
Drag in a folder, adjust your chapters, hit Convert. m4Bookmaker handles the rest — chapters, cover art, metadata, and even repairs broken audio files automatically.
Website · Help & Docs · Report a Bug
Development Process: This project was built using the Ho System, a structured methodology for human-AI collaborative development. The human makes every design decision. The AI implements under direction. There is verification at every step.
What it does
- Automatic chapters from filenames — track numbers and prefixes stripped
- Chapter editor — rename, reorder, merge, split, adjust timestamps inline
- Built-in audio player — scrub through source audio, seek to any chapter boundary
- Edit existing M4Bs — rename chapters and adjust timestamps without re-encoding
- Batch queue — stage multiple books and process them sequentially
- Audio repair — fixes corrupted MP3 frames, missing headers, inconsistent streams
- Automatic cover art — largest image in the directory is used
- Multiple windows — each encoding in parallel
- Full CLI — everything in the GUI is scriptable from the command line
Installation
Download
Get the signed, notarized macOS app or the Windows installer:
ffmpeg is bundled — nothing else to install.
From PyPI
Works on macOS, Windows, and Linux. Requires Python 3.11+ and ffmpeg.
pip install m4bmaker
Or with the optional GUI:
pip install m4bmaker[gui]
Install ffmpeg if you don't have it:
# macOS
brew install ffmpeg
# Ubuntu / Debian
sudo apt install ffmpeg
# Windows (winget)
winget install ffmpeg
From source
Requires Python 3.11+ and ffmpeg.
git clone https://github.com/sageframe-no-kaji/m4bmaker.git
cd m4bmaker
pip install -e .
Launch the GUI:
python -m m4bmaker.gui.app
Or use the CLI:
m4bmaker ./MyBook --title "Dune" --author "Frank Herbert"
CLI reference
m4bmaker <folder> [options]
| Flag | Description |
|---|---|
--title |
Book title |
--author |
Author name |
--narrator |
Narrator name |
--cover |
Path to cover image |
--output |
Output directory |
--bitrate |
AAC bitrate (default: matches source) |
--stereo |
Force stereo output |
--no-prompt |
Skip interactive prompts |
Supported formats
Input: mp3 · m4a · aac · flac · wav · ogg — formats can be mixed in the same folder.
Output: .m4b (AAC in MP4 container with chapter metadata)
Privacy & network activity
m4Bookmaker is fully local — it never uploads your audio files or metadata.
Update checker: On startup, the GUI makes a single outbound request to the GitHub Releases API to check whether a newer version is available:
GET https://api.github.com/repos/sageframe-no-kaji/m4bmaker/releases/latest
User-Agent: m4bmaker/<version>
This sends your IP address and the installed version number to GitHub's API. No other data is transmitted. The check runs silently in the background and fails silently if you are offline. The CLI (m4bmaker command) makes no network calls at all.
Contributing
See CONTRIBUTING.md.
License
GPL-3.0 · © 2026 Andrew T. Marcus
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See LICENSE for details.
Website · Help Docs · Report a Bug
Made by Sageframe
Project details
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 m4bmaker-1.0.3.tar.gz.
File metadata
- Download URL: m4bmaker-1.0.3.tar.gz
- Upload date:
- Size: 105.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1c600e1c6d2d94d7ac58195beeb43a53e3b6037a3fabf2f3d2ab5572c2afaf8
|
|
| MD5 |
5385bc741296cb74e59c204c2b37d677
|
|
| BLAKE2b-256 |
4de3dc330cfe786b6b450b0576ea45e7f92a1cb6216599ba0a7c07b4caff4297
|
File details
Details for the file m4bmaker-1.0.3-py3-none-any.whl.
File metadata
- Download URL: m4bmaker-1.0.3-py3-none-any.whl
- Upload date:
- Size: 84.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
765917e17785a0df7825a858562340be381f46ca4427a4332bafe22f4585004f
|
|
| MD5 |
2385d493a2aa725605244710fbabb594
|
|
| BLAKE2b-256 |
3dda3b53d96e84d112dcf9afb6758b5110e941cfa901ac566e089d26a4180509
|