Skip to main content

Convert a directory of audio files into a single .m4b audiobook with chapters, cover art, and metadata

Project description

m4Bookmaker icon

m4Bookmaker

Convert a folder of audio files into a clean M4B audiobook — in seconds.

PyPI License: GPL-3.0 macOS Windows Linux Python 3.11+

Watch this repo (Releases only) to get notified when a new version drops.

Website · Help & Docs · Report a Bug

Drag in a folder, adjust your chapters, hit Convert. m4Bookmaker handles the rest — chapters, cover art, metadata, and even repairs broken audio files automatically.

m4Bookmaker — main window

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
m4Bookmaker — chapter editor

Installation

Download

Get the signed, notarized macOS app or the Windows installer:

m4bookmaker.sageframe.net

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.


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

m4bmaker-1.0.4.tar.gz (105.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

m4bmaker-1.0.4-py3-none-any.whl (84.7 kB view details)

Uploaded Python 3

File details

Details for the file m4bmaker-1.0.4.tar.gz.

File metadata

  • Download URL: m4bmaker-1.0.4.tar.gz
  • Upload date:
  • Size: 105.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for m4bmaker-1.0.4.tar.gz
Algorithm Hash digest
SHA256 d91375e525b780247130f2420e6abc91a14c2d9f2ffeada33608cb9f851d0147
MD5 ddc3382f50c6cffe08a222890df42ff0
BLAKE2b-256 b8c347a9d02441a14a94e51d3dd712887c6b9793f3f72b9de04585f5830dd85c

See more details on using hashes here.

File details

Details for the file m4bmaker-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: m4bmaker-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 84.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for m4bmaker-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5a646b546465ba214807c49a1275e7ef61a2a78e8be1683e6941afa5ea83029f
MD5 ddcb2947c4f316b0eba5fc3af56fe92c
BLAKE2b-256 d28f10662ba6efd2760198e07400ca1139744862dad0fef81331f6e31ed64c66

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page