Every episode, transcribed
A Transcribe button beside every audio file in the Strapi Content Manager. The transcript is saved as editable text and timed sentences, so your frontend reads it from the same REST and GraphQL APIs as the rest of your content.
STRAPI 5 · NODE 20+ · FROM $0.20 AN HOUR OF AUDIOContent like any other
Transcripts are a content type of their own, so the REST and GraphQL APIs return them with the text and the timed sentences.
Progress you can see
The side panel shows how much audio is done and survives a reload. Stop ends a job you no longer want.
Or fully automatic
Turn on autoTranscribe and every audio file uploaded to the Media Library is transcribed without a click.
Key stays on the server
A connected API key is kept in Strapi's server-side store and is never sent to the admin panel.
Install, enable, transcribe
Install the plugin from GitHub and enable it in config/plugins.ts. Leave out the key and an administrator connects an account from Settings → VocalStack instead.
npm install github:vocalstack/strapi-plugin// config/plugins.ts
export default ({ env }) => ({
vocalstack: {
enabled: true,
config: {
// Optional: or connect from Settings → VocalStack
apiKey: env('VOCALSTACK_API_KEY'),
},
},
})Fits the way you built it
Sensible defaults, and a hook for every place your setup differs.
autoTranscribeTranscribe every audio file as soon as it is uploaded to the Media Library.
spokenLanguageThe language spoken in the audio. Leave it out to detect it automatically.
fileURLThe address VocalStack fetches the audio from. Point it at your bucket or CDN.
oneClickConnectShow Connect VocalStack in Settings, so an administrator signs in instead of pasting a key.
enabledTurn the button and the routes off while keeping the transcripts you already have.
No plugin fee
You pay VocalStack only for the audio you transcribe, on the same rate as the Dashboard and the API. Billed per second, with a minimum of 5 minutes per transcription.
Every audio file you transcribe, with speakers, punctuation and timings included.