Transcripts as content
A Transcribe button on every audio upload in Payload. The transcript is saved on the document as editable text and timed sentences, so your frontend, your search and your APIs read it like any other field.
PAYLOAD 3 · NEXT.JS 15+ · FROM $0.20 AN HOUR OF AUDIOJust another field
The transcript and its timed sentences live on the document, so the Local API, REST and GraphQL return them with everything else.
Progress you can see
The button shows how much audio is done and survives a reload. Stop puts the document back the way it was.
Editors stay in charge
The transcript is plain text an editor can correct. Paragraphs break where the speaker changes or pauses.
Key stays on the server
A connected API key is stored server-side and can't be read over the REST or GraphQL APIs.
One plugin, one line
Add the plugin to payload.config.ts. Every upload collection that accepts audio gets the button; pass collections to choose which. Leave out the key and an editor connects an account from Settings → VocalStack instead.
payload generate:importmap. With Postgres, also run payload migrate:create.pnpm add github:vocalstack/payload-plugin// payload.config.ts
import { vocalstackPlugin } from '@vocalstack/payload'
export default buildConfig({
plugins: [
vocalstackPlugin({
// Optional: or connect from Settings → VocalStack
apiKey: process.env.VOCALSTACK_API_KEY,
}),
],
})Fits the way you built it
Sensible defaults, and a hook for every place your setup differs.
collectionsWhich upload collections get the Transcribe button. By default, every one that accepts audio.
audioFieldsImported content that points at audio by filename or link. Each row of an array field gets its own button and transcript.
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 to skip the Payload file proxy.
accessWho may transcribe and change the connection. By default, signed-in users who can update the document.
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 upload and array row you transcribe, with speakers, punctuation and timings included.