{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=hubert/audio-semantic-chapters@0.3.0","method":"GET","rel":"https://rote.dev/rels/bootstrap-and-run","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"inspect":{"command":"rote play inspect https://play.modiqo.ai/hubert/audio-semantic-chapters@0.3.0","effect":"read-only"},"installCliOnly":{"effect":"installs the rote CLI, nothing else","href":"https://play.modiqo.ai/install","method":"GET","rel":"https://rote.dev/rels/install-cli","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"run":{"command":"rote play run https://play.modiqo.ai/hubert/audio-semantic-chapters@0.3.0","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/hubert/audio-semantic-chapters@0.3.0 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"Splits any audio/video file into semantic chapters as tagged MP3s: transcribes with Whisper, has a model divide the transcript into at most max_chapters sections, snaps each boundary to a quiet point so transitions are smooth, then verifies every cut by re-transcribing the head of each chapter.","distribution":{"digest":"sha256:0bc1fd84bce2d0f074322b8d6b5a12e2da2ff63d0d1a8ab4ee1a2ff1a22c4424","mediaType":"application/vnd.modiqo.rote-flow","size":21140,"verifiedBy":"rote verifies the downloaded archive against this digest before it runs"},"effects":{"credentialsProvidedBy":"runner","credentialsRemainLocal":true,"declaredWrites":[],"publisherReceivesCredentials":false},"id":"https://play.modiqo.ai/hubert/audio-semantic-chapters@0.3.0","inputPolicy":{"optionalWithDefault":"show_default_and_accept_override","optionalWithoutDefault":"omit_unless_supplied","required":"ask","secrets":"collect_locally_outside_conversation"},"links":{"docs":"https://rote.dev","page":"https://play.modiqo.ai/hubert/audio-semantic-chapters@0.3.0","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/hubert/audio-semantic-chapters@0.3.0.json"},"name":"audio-semantic-chapters","owner":{"kind":"user","slug":"hubert"},"parameters":[{"description":"Path to the source audio or video file","input":{"allowCustom":true,"choices":[],"label":"Audio"},"name":"audio","required":true,"type":"string"},{"default":"16","description":"Maximum number of chapters to divide the recording into; fewer are used when the content has fewer natural divisions","input":{"allowCustom":true,"choices":[],"label":"Max chapters"},"name":"max_chapters","required":false,"type":"string"},{"description":"Directory for the MP3s; empty means a folder named after the source file, beside it","input":{"allowCustom":true,"choices":[],"label":"Out dir"},"name":"out_dir","required":false,"type":"string"},{"default":"large-v3","description":"Whisper model: tiny, base, small, medium, large-v3","input":{"allowCustom":true,"choices":[],"label":"Model"},"name":"model","required":false,"type":"string"},{"default":"auto","description":"Spoken language hint, or auto to detect","input":{"allowCustom":true,"choices":[],"label":"Language"},"name":"language","required":false,"type":"string"},{"default":"10","description":"Minimum seconds between chapter starts; closer boundaries are merged","input":{"allowCustom":true,"choices":[],"label":"Min gap"},"name":"min_gap","required":false,"type":"string"},{"default":"8","description":"Seconds re-transcribed at the head of each chapter during verification","input":{"allowCustom":true,"choices":[],"label":"Head seconds"},"name":"head_seconds","required":false,"type":"string"},{"default":"~/.cache/rote-audio-chapters","description":"Scratch root for the inlined module, WAV mixdowns, transcript and analysis; cached per source file. Supports ~.","input":{"allowCustom":true,"choices":[],"label":"Work root"},"name":"work_root","required":false,"type":"string"},{"default":"~/.local/share/rote-audio-chapters/venv","description":"Virtualenv holding the openai-whisper CLI (bin/whisper). Supports ~.","input":{"allowCustom":true,"choices":[],"label":"Whisper venv"},"name":"whisper_venv","required":false,"type":"string"},{"default":"claude","description":"Claude Code CLI used for the semantic chapter division; needs its own authenticated session and spends that account's quota","input":{"allowCustom":true,"choices":[],"label":"Claude bin"},"name":"claude_bin","required":false,"type":"string"},{"default":"false","description":"When true, create whisper_venv and pip install openai-whisper if absent instead of failing with instructions","input":{"allowCustom":true,"choices":[],"label":"Auto install whisper"},"name":"auto_install_whisper","required":false,"type":"string"},{"default":"false","description":"When true, keep the decoded WAV mixdowns in work_root. They are the bulk of the cache (~700MB per hour of audio) and take seconds to rebuild, while the transcript they sit next to takes minutes - so they are discarded after a successful run by default. Failed runs always keep them for debugging.","input":{"allowCustom":true,"choices":[],"label":"Keep intermediate"},"name":"keep_intermediate","required":false,"type":"string"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/hubert/audio-semantic-chapters@0.3.0 --json","effect":"read-only"},"step":1,"type":"inspect_local_readiness"},{"references":["/parameters"],"step":2,"type":"collect_parameters"},{"references":["/parameters","/requirements","/effects"],"step":3,"type":"review"},{"consentBoundary":"the user approves the exact play and parameter values","references":["/parameters","/requirements","/effects"],"step":4,"type":"obtain_run_consent"},{"action":{"command":"rote play run https://play.modiqo.ai/hubert/audio-semantic-chapters@0.3.0","headlessCommandTemplate":"rote play run https://play.modiqo.ai/hubert/audio-semantic-chapters@0.3.0 <name=value...> --yes"},"preservesAcquisitionBoundaries":["adapter_selection","oauth_dcr","google_discovery","static_token_setup","runtime_security_checks"],"requiresConsent":true,"step":5,"type":"run"}],"producedBy":{"roteVersion":"0.66.1"},"publishedAt":"2026-08-14T08:42:07.940731+00:00","reference":"hubert/audio-semantic-chapters@0.3.0","requirements":{"adapters":[],"browser":{"dependencies":[],"runtime":false,"signIn":false},"localTools":["python3","ffmpeg","ffprobe","claude"],"roteCli":{"minimumVersion":"0.62.0"},"sessions":false},"resolution":"pinned","schema":"rote.play.v1","stats":{"downloads":3,"installs":0},"steps":{"count":8,"names":["bootstrap","cleanup","encode","prepare","propose","snap","transcribe","verify"]},"title":"audio-semantic-chapters","type":"play","version":"0.3.0","visibility":"public"}