Public
Resolve audio from URLs and inspect metadata. No transcription.
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.

Audio to Insight

Open the app

Audio files are saved in val-scoped Blob storage; processing records, transcripts, summaries and speaker paragraphs are in val-scoped SQLite.

Quick transcription

Sign in as scoot. At the top, use Transcribe now:

  • Paste a direct MP3 URL or episode webpage (saves the first verified MP3).
  • Or upload MP3, WAV, M4A, AAC, OGG or FLAC, up to 8 MiB.
  • Choose the language, then Transcribe & summarize.
  • Read the summary, search the transcript, copy it, or download a text file.

In Saved audio & transcripts, choose a language and transcribe a previous file, or open Read transcript / status.

Speechmatics

The configured SPEECHMATICS_API_KEY is read only in server code with Deno.env.get. It authenticated successfully against the US1 Batch API. No key is sent to the browser.

Uses the enhanced model, speaker diarization and Speechmatics summarization. English is the default; Spanish, French, German, Italian, Portuguese and Dutch are also available in the UI. Audio is sent to Speechmatics and uses the connected account's credits/pricing.

Jobs are asynchronous. A per-job authenticated callback retrieves and saves results even if the browser is closed. Open readers refresh pending jobs every six seconds as a fallback. Reopening a pending transcript also checks its current status.

The transcripts table stores the provider job ID, language, asset hash, status, full transcript, summary/status, and timestamped speaker paragraphs. The same audio hash plus language reuses its job, even across different saved source URLs. Failed or uncertain submissions are not automatically resubmitted, avoiding duplicate paid jobs; uncertain submissions require checking Speechmatics first.

If no speech or no summary is returned, the reader says so; it does not fabricate a substitute.

Access and limits

Public inspection remains available. Saving, uploading, transcription, history, reading transcripts, and downloading audio require a signed-in Val Town session; all signed-in users share the library and the configured Speechmatics credits. The app browser login is separate from MCP authorization.

8 MiB per file, 9 MiB app Blob budget. Existing MP3s and history are preserved. Inspection-only mode does not save data. URL discovery does not execute remote JavaScript or bypass login/DRM. URLs download MP3 only; uploads support additional formats without conversion.

API additions

Val Town sign-in required:

  • POST /api/transcribe with JSON { "url": "https://…", "language": "en" } or { "audioId": "...", "language": "en" }
  • POST /api/upload with multipart fields file and language
  • GET /api/transcripts: compact index
  • GET /api/transcripts/:id: saved text, summary and status
  • POST /api/transcripts/:id/refresh: synchronize the existing provider job

POST /api/speechmatics/callback/:id requires a unique per-job credential and verifies results by fetching them directly from Speechmatics.

Verified

The official Speechmatics welcome audio was uploaded and transcribed. Its callback saved both the full transcript and summary; duplicate submission reused the same job. Find speechmatics-welcome.wav in your private library. The previous MP3 sample and webpage records remain available for on-demand transcription.