Skip to main content
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.


Metadata

Release files for m4bmaker 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for m4bmaker 1.1.1
File Size Uploaded
m4bmaker-1.1.1.tar.gz 131.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for m4bmaker 1.1.1
File Interpreter ABI Platform
m4bmaker-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 234.0 kB

Release files / m4bmaker-1.1.1.tar.gz

Download URL m4bmaker-1.1.1.tar.gz
Size 131.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2df852ee47fda5fdc18059215f8029aa4c9c61db5a7c15a5caadc93496336de8
BLAKE2b-256 checksum
How to use checksums
78853e2dfc0168b50e40bed3a5a5e8d7631b34361ddfb1444dbe93eb2ef296d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / m4bmaker-1.1.1-py3-none-any.whl

Download URL m4bmaker-1.1.1-py3-none-any.whl
Size 102.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5fe5321b2f706d0c94ef392ed10d059b7c1ae00ddcdd35b162874b8a32345e31
BLAKE2b-256 checksum
How to use checksums
670dbd64f708e087eefd59e067eb8b910aa379b959ec2d052d4274d0b2f286ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

1.1.0

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page