{"adoption": {"forks": 96, "observed_at": "2026-08-28T04:05:04.285649+00:00", "stars": 1566}, "canonical_url": "https://ross.abutalabs.com/products/m4b-tool", "card": {"archived": false, "artifact_type": "cli-tool", "description": "m4b-tool is a command line utility to merge, split and chapterize audiobook files such as mp3, ogg, flac, m4a or m4b", "domain": ["media", "files"], "enriched": true, "function": ["audio-processing", "cli", "developer-tools"], "health_score": 78, "homepage": null, "language": "PHP", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["sandreas/m4b-tool"], "name": "sandreas/m4b-tool", "platform": ["windows", "cli", "cross-platform"], "pushed_at": "2026-04-18T19:34:55+00:00", "repo": "sandreas/m4b-tool", "stars": 1566, "tags": ["audiobook", "m4b", "ffmpeg-wrapper", "mp4v2", "chapters", "php", "audio", "command-line", "linux", "macos"], "topics": ["m4b", "audiobook"], "urls": [], "use_cases": ["merge multiple mp3 files into a single m4b audiobook", "split an m4b audiobook into chapters as separate files", "add or adjust chapters on an existing m4b file", "convert a folder of audio files into a chaptered audiobook", "split a flac album into tracks using a cue sheet", "batch process audiobook files from the command line"], "what_it_is": "m4b-tool is a PHP command line utility wrapping ffmpeg and mp4v2 to merge, split, and chapterize audiobook files. It supports nearly all audio formats including mp3, aac, ogg, alac, flac, m4a, and m4b.", "when_to_avoid": ["you need a GUI for audiobook conversion", "you want a actively developed modern alternative - consider the author's newer 'tone' tool", "you need stable tagged releases - the latest stable release is old and fixes land in pre-releases"], "when_to_choose": ["you need to build or manipulate m4b audiobooks with chapters from the terminal", "you want to merge many audio files into one chaptered audiobook", "you need to split an audiobook by chapters or cue sheets", "you want a scriptable ffmpeg/mp4v2 wrapper tailored to audiobooks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/m4b-tool", "repo": "sandreas/m4b-tool", "role": "main", "score": 69}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.285649+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.773304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8d98bf2707d3aae27928d78d9188ed9849085b6875ab02427ae53236c8cb1f2", "fetched_at": "2026-08-28T04:05:04.285649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sandreas/m4b-tool"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.285649+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.773304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8d98bf2707d3aae27928d78d9188ed9849085b6875ab02427ae53236c8cb1f2", "fetched_at": "2026-08-28T04:05:04.285649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sandreas/m4b-tool"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.773304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8d98bf2707d3aae27928d78d9188ed9849085b6875ab02427ae53236c8cb1f2", "fetched_at": "2026-08-28T04:05:04.285649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sandreas/m4b-tool"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.285649+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.285649+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.285649+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.773304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8d98bf2707d3aae27928d78d9188ed9849085b6875ab02427ae53236c8cb1f2", "fetched_at": "2026-08-28T04:05:04.285649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sandreas/m4b-tool"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.285649+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.285649+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.773304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8d98bf2707d3aae27928d78d9188ed9849085b6875ab02427ae53236c8cb1f2", "fetched_at": "2026-08-28T04:05:04.285649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sandreas/m4b-tool"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.285649+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.285649+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.285649+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.773304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8d98bf2707d3aae27928d78d9188ed9849085b6875ab02427ae53236c8cb1f2", "fetched_at": "2026-08-28T04:05:04.285649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sandreas/m4b-tool"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.285649+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.285649+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.773304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8d98bf2707d3aae27928d78d9188ed9849085b6875ab02427ae53236c8cb1f2", "fetched_at": "2026-08-28T04:05:04.285649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sandreas/m4b-tool"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.773304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8d98bf2707d3aae27928d78d9188ed9849085b6875ab02427ae53236c8cb1f2", "fetched_at": "2026-08-28T04:05:04.285649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sandreas/m4b-tool"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.773304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8d98bf2707d3aae27928d78d9188ed9849085b6875ab02427ae53236c8cb1f2", "fetched_at": "2026-08-28T04:05:04.285649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sandreas/m4b-tool"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.773304+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8d98bf2707d3aae27928d78d9188ed9849085b6875ab02427ae53236c8cb1f2", "fetched_at": "2026-08-28T04:05:04.285649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sandreas/m4b-tool"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 78, "longevity": 100, "rhythm": 40}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3404, "days_push": 137, "days_rel": 566, "gap_med": 20.0, "n_releases_24m": 3}, "score": 69, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}