m4b-util


Namem4b-util JSON
Version 2025.1.6 PyPI version JSON
download
home_pageNone
SummaryA collection of command line utilities for creating, editing, and generally working with m4b files.
upload_time2025-01-07 03:08:15
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT License
keywords audiobook m4b
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            m4b-util
---------
A command line utility for creating, editing, and generally working with m4b files.

## Sub-commands
This application is split into a number of subcommands which can be run from the main command. For a list of available 
commands, run `m4b-util --help`. For details on a specific sub-command, run `m4b-util <command> --help`.

### Bind
The `bind` sub-command is designed to take a folder of audio files and convert them to a single m4b, treating each 
individual file as its own chapter. It can get chapter names from the original files' metadata, original files' names,
from command line arguments, or just number them sequentially. By default, it only scans for mp3 files, but any file 
extension can be added via arguments.

### Cover
The `cover` command adds and extracts cover images.

**Example:**
```shell
$ m4b-util cover /path/to/book.m4b --extract /path/to/old/cover.png --apply-cover /path/to/new/cover.png
```

### Labels
The `labels` command converts between Audacity labels, FFMPEG metadata, and Audiobook chapter metadata. Label end times 
are ignored, as audiobooks need contiguous, non-overlapping chapters. When converting from a label file, the end time 
of each segment is set from the start time of the next segment.

**Example:**
```shell
$ m4b-util labels --from-label-file /path/to/labels.txt --to-book /path/to/existing/book.m4b --to-metadata-file /path/to/new_labels.txt
```

**Example:**
```shell
$ m4b-util bind /path/to/inputs  --title "My Book" --cover /path/to/cover.png -e m4a -e .mp4 --output-dir /path/to/output 
```

### Slide
The `slide` command moves all chapters in a file by a specified duration, keeping the start and end times the same. 
It can optionally trim audio from the start of the file, shifting all chapters an equal amount.

**Example:**
```shell
$ m4b-util slide /path/to/input.mp3 --duration 5.1 --trim-start 2.5
```

### Split 
The `split` command takes a mode and a single audio file input, scans for silence or chapters (depending on mode), 
and writes out individual files containing the audio in-between.

**Example:**
```shell
$ m4b-util split silence /path/to/input.mp3 --output-dir /path/to/output --output_pattern "chapter_{:03d}.mp3"
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "m4b-util",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "Audiobook, m4b",
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/a6/9d/19a4544670bc452da2c954f1ebd68d17a16ece93259b92498f9dab28956b/m4b_util-2025.1.6.tar.gz",
    "platform": null,
    "description": "m4b-util\n---------\nA command line utility for creating, editing, and generally working with m4b files.\n\n## Sub-commands\nThis application is split into a number of subcommands which can be run from the main command. For a list of available \ncommands, run `m4b-util --help`. For details on a specific sub-command, run `m4b-util <command> --help`.\n\n### Bind\nThe `bind` sub-command is designed to take a folder of audio files and convert them to a single m4b, treating each \nindividual file as its own chapter. It can get chapter names from the original files' metadata, original files' names,\nfrom command line arguments, or just number them sequentially. By default, it only scans for mp3 files, but any file \nextension can be added via arguments.\n\n### Cover\nThe `cover` command adds and extracts cover images.\n\n**Example:**\n```shell\n$ m4b-util cover /path/to/book.m4b --extract /path/to/old/cover.png --apply-cover /path/to/new/cover.png\n```\n\n### Labels\nThe `labels` command converts between Audacity labels, FFMPEG metadata, and Audiobook chapter metadata. Label end times \nare ignored, as audiobooks need contiguous, non-overlapping chapters. When converting from a label file, the end time \nof each segment is set from the start time of the next segment.\n\n**Example:**\n```shell\n$ m4b-util labels --from-label-file /path/to/labels.txt --to-book /path/to/existing/book.m4b --to-metadata-file /path/to/new_labels.txt\n```\n\n**Example:**\n```shell\n$ m4b-util bind /path/to/inputs  --title \"My Book\" --cover /path/to/cover.png -e m4a -e .mp4 --output-dir /path/to/output \n```\n\n### Slide\nThe `slide` command moves all chapters in a file by a specified duration, keeping the start and end times the same. \nIt can optionally trim audio from the start of the file, shifting all chapters an equal amount.\n\n**Example:**\n```shell\n$ m4b-util slide /path/to/input.mp3 --duration 5.1 --trim-start 2.5\n```\n\n### Split \nThe `split` command takes a mode and a single audio file input, scans for silence or chapters (depending on mode), \nand writes out individual files containing the audio in-between.\n\n**Example:**\n```shell\n$ m4b-util split silence /path/to/input.mp3 --output-dir /path/to/output --output_pattern \"chapter_{:03d}.mp3\"\n```\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "A collection of command line utilities for creating, editing, and generally working with m4b files.",
    "version": "2025.1.6",
    "project_urls": {
        "repository": "https://github.com/Tsubashi/m4b-util"
    },
    "split_keywords": [
        "audiobook",
        " m4b"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "73eef93688e4c515d87370a4b2f776dcdc38f60c88f6b8a1668c2595ccdf1aba",
                "md5": "ae00e37f762d2d9937ea6ccb5025d643",
                "sha256": "9413011ac851c3078d452c124eb4e176e74922dc1d948ab5fe2a5f186fddeb52"
            },
            "downloads": -1,
            "filename": "m4b_util-2025.1.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ae00e37f762d2d9937ea6ccb5025d643",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 27245,
            "upload_time": "2025-01-07T03:08:14",
            "upload_time_iso_8601": "2025-01-07T03:08:14.690355Z",
            "url": "https://files.pythonhosted.org/packages/73/ee/f93688e4c515d87370a4b2f776dcdc38f60c88f6b8a1668c2595ccdf1aba/m4b_util-2025.1.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a69d19a4544670bc452da2c954f1ebd68d17a16ece93259b92498f9dab28956b",
                "md5": "480db6b779a6f99c55018756cc8379bd",
                "sha256": "7abcd4d5290520dd4d6373b5d87e0b02c7e52c2a8755c011ace07d88037ec1be"
            },
            "downloads": -1,
            "filename": "m4b_util-2025.1.6.tar.gz",
            "has_sig": false,
            "md5_digest": "480db6b779a6f99c55018756cc8379bd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 44459,
            "upload_time": "2025-01-07T03:08:15",
            "upload_time_iso_8601": "2025-01-07T03:08:15.731194Z",
            "url": "https://files.pythonhosted.org/packages/a6/9d/19a4544670bc452da2c954f1ebd68d17a16ece93259b92498f9dab28956b/m4b_util-2025.1.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-07 03:08:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Tsubashi",
    "github_project": "m4b-util",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "m4b-util"
}
        
Elapsed time: 0.39519s