{"_id":"@aaxyat/audiobook-bridge","_rev":"3-d9d9077760a7247a85f89368893d0aed","name":"@aaxyat/audiobook-bridge","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@aaxyat/audiobook-bridge","version":"0.1.0","keywords":["audiobook","audiobookstudio","ffmpeg","ffprobe","waveform","silencedetect","m4b","chapters","audio-editor"],"author":{"name":"aaxyat"},"license":"MIT","_id":"@aaxyat/audiobook-bridge@0.1.0","maintainers":[{"name":"aaxyat","email":"npm@ayushb.com"}],"bin":{"audiobook-bridge":"dist/cli.js"},"dist":{"shasum":"7de1d742ff33c88625295f0b3d67a3a2554ff87c","tarball":"https://registry.npmjs.org/@aaxyat/audiobook-bridge/-/audiobook-bridge-0.1.0.tgz","fileCount":27,"integrity":"sha512-/HBEOX/zp3lzeaIKqpR5Ce81wmQql2rYBI4UesdXwHeijz+mNktydpdvQCb4GjIEs4pyRfinIc9pw/Y431jc1w==","signatures":[{"sig":"MEUCID6z3Aq6yMiZ4hRgYlE9BfGwZIdLKxHrddxE8PXFBxm8AiEA4IYpkLrUaBe+SNCHswfGThEubvTro9Q2vrIA8fnnDoQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57958},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/cli.ts","lint":"eslint src tests","test":"vitest run","build":"tsc","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"aaxyat","email":"npm@ayushb.com"},"_npmVersion":"11.17.0","description":"Optional native processing bridge for AudiobookStudio (FFmpeg, FFprobe, waveform, silence detection, M4B export)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","@types/ws":"^8.5.14","typescript":"^5.7.3","@types/node":"^22.13.4"},"_npmOperationalInternal":{"tmp":"tmp/audiobook-bridge_0.1.0_1786807036210_0.568594589336717","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aaxyat/audiobook-bridge","version":"0.1.1","keywords":["audiobook","audiobookstudio","ffmpeg","ffprobe","waveform","silencedetect","m4b","chapters","audio-editor"],"author":{"name":"aaxyat"},"license":"MIT","_id":"@aaxyat/audiobook-bridge@0.1.1","maintainers":[{"name":"aaxyat","email":"npm@ayushb.com"}],"bin":{"audiobook-bridge":"dist/cli.js"},"dist":{"shasum":"a53cae0d4bf2e084ef048d86ace1fdbd3c293c2c","tarball":"https://registry.npmjs.org/@aaxyat/audiobook-bridge/-/audiobook-bridge-0.1.1.tgz","fileCount":27,"integrity":"sha512-WPS9bYfUC8bY1QDlEoZHfVyRdGd9JCp2IxsfRQzGfBGhivIjN/WLloCqRpyfPhyxiERncqc9LEZfp1TgSXVLzQ==","signatures":[{"sig":"MEYCIQDcFErEPH4c/ey0/fVGTT0k1bOSLhLyy5cQ/rpyeyQZmgIhAJ9nCUw+z5FhiJ82O00KczVMP3PBAs9MxcUibqKzVarQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57958},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/cli.ts","lint":"eslint src tests","test":"vitest run","build":"tsc","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"aaxyat","email":"npm@ayushb.com"},"_npmVersion":"11.17.0","description":"Optional native processing bridge for AudiobookStudio (FFmpeg, FFprobe, waveform, silence detection, M4B export)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","@types/ws":"^8.5.14","typescript":"^5.7.3","@types/node":"^22.13.4"},"_npmOperationalInternal":{"tmp":"tmp/audiobook-bridge_0.1.1_1786807102803_0.22655322490157226","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@aaxyat/audiobook-bridge","version":"0.1.2","description":"Optional native processing bridge for AudiobookStudio (FFmpeg, FFprobe, waveform, silence detection, M4B export)","type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"audiobook-bridge":"dist/cli.js"},"engines":{"node":">=18.0.0"},"scripts":{"build":"tsc","lint":"eslint src tests","test":"vitest run","typecheck":"tsc --noEmit","start":"node dist/cli.js","dev":"tsx src/cli.ts"},"keywords":["audiobook","audiobookstudio","ffmpeg","ffprobe","waveform","silencedetect","m4b","chapters","audio-editor"],"author":{"name":"aaxyat"},"license":"MIT","publishConfig":{"access":"public"},"dependencies":{"ws":"^8.18.0"},"devDependencies":{"@types/node":"^22.13.4","@types/ws":"^8.5.14","typescript":"^5.7.3","vitest":"^3.0.5"},"_id":"@aaxyat/audiobook-bridge@0.1.2","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-BmQig3OfzcAaD+Mp/NHw4DqjSqhJl2Io73kluQOopBrgg6ymqrgRKtzKX8BrwakQ+c/edTnS/y1nJmoh2m+2CA==","shasum":"69958372a4fb767c2e98dbfc2ac5ea0ff2410ed3","tarball":"https://registry.npmjs.org/@aaxyat/audiobook-bridge/-/audiobook-bridge-0.1.2.tgz","fileCount":27,"unpackedSize":59990,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEXnijQZwFHlUu2f1jX+a0Hbn1keBSIlUjNlOgfA5CCgAiBfmY0qYqnhaTbFA0Ss3NGhl4RdG0hHwCmDeP+/eiK3HQ=="}]},"_npmUser":{"name":"aaxyat","email":"npm@ayushb.com"},"directories":{},"maintainers":[{"name":"aaxyat","email":"npm@ayushb.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/audiobook-bridge_0.1.2_1786809710782_0.7793453601638571"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-15T15:17:16.020Z","modified":"2026-08-15T16:01:51.086Z","0.1.0":"2026-08-15T15:17:16.371Z","0.1.1":"2026-08-15T15:18:22.942Z","0.1.2":"2026-08-15T16:01:50.924Z"},"author":{"name":"aaxyat"},"license":"MIT","keywords":["audiobook","audiobookstudio","ffmpeg","ffprobe","waveform","silencedetect","m4b","chapters","audio-editor"],"description":"Optional native processing bridge for AudiobookStudio (FFmpeg, FFprobe, waveform, silence detection, M4B export)","maintainers":[{"name":"aaxyat","email":"npm@ayushb.com"}],"readme":"# @aaxyat/audiobook-bridge\n\nOptional native processing bridge for **AudiobookStudio** (FFmpeg, FFprobe, multiresolution waveform generation, native silence detection, transition analysis, and M4B chapter export).\n\n## Quick Start\n\nRun directly via `npx` with zero prior installation:\n\n```bash\nnpx @aaxyat/audiobook-bridge\n```\n\nOr with custom port and token options:\n\n```bash\nnpx @aaxyat/audiobook-bridge --port 8765 --token my-secure-token\n```\n\n## Features\n\n- **Zero Install**: Runs immediately via `npx` with Node.js >= 18.\n- **FFmpeg & FFprobe Integration**: Auto-detects local system FFmpeg / FFprobe installations and hardware acceleration codecs (CUDA, QSV, VAAPI, VideoToolbox).\n- **Secure by Default**:\n  - Binds to `127.0.0.1` (localhost only).\n  - Short-lived token authentication.\n  - Strict operation whitelist (`probe`, `waveform`, `silence`, `transitionDetection`, `analyze`, `transcribe`, `export`, `cancel`, `status`).\n  - No arbitrary command execution.\n- **Cancellable Job System**: Real-time progress updates, elapsed time, ETA tracking, and graceful child process cleanup.\n- **High-Performance Audio Processing**:\n  - Fast native audio metadata probing via FFprobe.\n  - Multiresolution peak/RMS waveform extraction.\n  - Native silence interval detection using FFmpeg `silencedetect`.\n  - M4B export with chapter markers, metadata tags, and cover art.\n\n## Protocol\n\nUses a versioned localhost WebSocket protocol.\n\n### Handshake\n\n```json\n// Client -> Bridge\n{\n  \"type\": \"handshake\",\n  \"protocolVersion\": 1,\n  \"clientVersion\": \"1.0.0\",\n  \"token\": \"optional-auth-token\"\n}\n\n// Bridge -> Client\n{\n  \"type\": \"handshake_response\",\n  \"protocolVersion\": 1,\n  \"bridgeVersion\": \"0.1.0\",\n  \"capabilities\": {\n    \"ffmpeg\": true,\n    \"ffprobe\": true,\n    \"waveform\": true,\n    \"silence\": true,\n    \"transitionDetection\": true,\n    \"speechRecognition\": false,\n    \"m4bExport\": true,\n    \"hardwareAcceleration\": true\n  }\n}\n```\n\n## License\n\nMIT © 2026 aaxyat\n","readmeFilename":"README.md"}