Back to Blog
Technical

AI Transcription: Every Video Your App Records Becomes Analyzable Data

VIDTREO AI now transcribes every recording automatically — word-level timestamps, three formats, any language. Here's what your platform can do with video once it's text, and the signed-webhook infrastructure that delivers it.

Edwin Ramirez August 3, 2026 8 min read

TL;DR

  • VIDTREO AI now transcribes every completed recording automatically — no API call, no polling, no extra vendor
  • You get the transcript in three formats: WebVTT captions, word-level JSON with timestamps, and plain text — each built for a different job
  • Language is auto-detected — your users record in Spanish, Portuguese, or English and it just works
  • Video is the richest data your platform collects and the hardest to analyze. Text isn’t. Transcription turns every recording into something you can search, score, index, and feed to your own AI
  • Delivery rides on infrastructure we already wired for you: signed webhooks, metadata echo, encrypted secrets, automatic retries

Video Is Your Blindest Data

Think about what’s inside the videos your platform records. A candidate explaining exactly why they left their last job. A student demonstrating whether they understood the assignment. A patient describing symptoms in their own words. A customer telling you precisely which feature made them churn.

All of it is there. And none of it is queryable.

You can’t SELECT from a video. You can’t full-text search an MP4. You can’t feed 400 hours of interviews to a scoring model as pixels. Video is simultaneously the highest-signal data your product collects and the only one your data stack can’t touch.

That’s the problem VIDTREO AI now solves at the platform level: every recording becomes analyzable text, automatically, the moment it completes.

The Pipeline: Recording In, Data Out

Enable AI Transcription for your environment — one toggle in the dashboard — and the pipeline runs itself:

User finishes recording
    → VIDTREO Recorder uploads the video
    → VIDTREO AI extracts the audio and transcribes it
    → Language auto-detected, word-level timestamps generated
    → Transcript stored in three formats (VTT, JSON, TXT)
    → Signed webhook delivers everything to your systems

No transcription API to integrate. No audio extraction step. No language configuration — a candidate in São Paulo records in Portuguese, a student in Madrid records in Spanish, and both come back transcribed.

Three Formats, Because Analysis Has Three Shapes

FormatContentBuilt for
WebVTTTimed caption cuesAccessibility: drop straight into a <track> element for compliant playback
JSONWord-level segments with start/end timesAnalysis: search, jump-to-moment UIs, feeding LLMs and scoring models
TXTPlain transcriptIndexing: full-text search, summaries, compliance archives

The JSON format is the one that changes what you can build. Word-level timing means every word in every video is addressable: you know what was said and exactly when. That’s the primitive behind “show me the moment the candidate mentioned Kubernetes” and “jump to where the professor explains recursion.”

What Analysis Unlocks

The pattern across every industry is the same: once video is text, your existing data tooling — and your own AI — suddenly applies to it.

Hiring: Interviews Become Structured Signal

A video interview used to be a 20-minute watch. Now it’s a document:

  • Search across hundreds of interviews for specific skills, tools, or phrases
  • Feed transcripts to your scoring model and rank candidates before anyone presses play
  • Jump to the exact moment a topic came up, with word-level timestamps
  • Evaluate global candidates fairly — transcription works in the language they speak

Education: Every Lecture Is Searchable, Every Student Is Heard

  • Accessibility compliance out of the box — WebVTT captions on every recording
  • Content search — students find the minute a concept was explained, across a whole semester
  • Submission review at scale — keyword and rubric checks on oral exams without watching every video
  • Multi-language classrooms — students record in their native language

Telehealth: Documentation Without the Admin Burden

  • Session transcripts filed to the patient record the moment the call ends
  • Draft clinical notes from the conversation instead of typing from memory
  • Timestamped, verifiable records for compliance — with access controlled by your systems

Customer Feedback: Hear Everything, at Scale

  • Enrich support tickets with what the customer actually said
  • Route and categorize by topic automatically
  • Flag churn-risk phrases the moment the video lands
  • Make every testimonial searchable for marketing and product teams

None of these require a new AI vendor on your side. They require the transcript — delivered as data, where your systems already live.

The Delivery Rail: Infrastructure You Don’t Have to Build

Analysis is only automatic if delivery is. This is where the platform infrastructure we’ve been building — webhooks, events, metadata — carries the feature.

When transcription completes, a transcriptions.transcription.completed event fires to your endpoint with everything attached:

{
  "event": "transcriptions.transcription.completed",
  "data": {
    "transcription": { "language": "en", "wordCount": 812, "duration": 294.5 },
    "video": {
      "filename": "interview-final.mp4",
      "userMetadata": { "candidateId": "cand_8231", "jobId": "job_114" }
    },
    "files": [
      { "format": "vtt",  "url": "https://...", "expiresAt": "..." },
      { "format": "json", "url": "https://...", "expiresAt": "..." },
      { "format": "txt",  "url": "https://...", "expiresAt": "..." }
    ]
  }
}

Four properties make this production-grade rather than a notification:

Your metadata comes back. Whatever JSON you attached at upload — candidate ID, course ID, ticket number — is echoed in the payload. Your handler never queries a database to figure out which record the video belongs to. One handler, zero lookup tables:

app.post('/webhooks/vidtreo', async (req) => {
  const { video, files } = req.body.data
  const { candidateId, jobId } = video.userMetadata

  await ats.advanceStage(candidateId, jobId, {
    transcriptUrl: files.find(f => f.format === 'txt').url,
  })
})

Every delivery is signed. An X-Webhook-Signature header carries an HMAC-SHA256 of the raw body, computed with your endpoint’s whsec_ secret. Secrets are encrypted at rest, shown exactly once at creation, and rotatable in one click. Verification is a few lines:

import { createHmac, timingSafeEqual } from 'node:crypto'

function isFromVidtreo(rawBody: string, signature: string, secret: string) {
  const expected = `sha256=${createHmac('sha256', secret)
    .update(rawBody)
    .digest('hex')}`

  const a = Buffer.from(signature)
  const b = Buffer.from(expected)
  return a.length === b.length && timingSafeEqual(a, b)
}

Compute over the raw body, compare in constant time — never ===.

Transcript URLs expire in 5 minutes. The file links are presigned and short-lived. A webhook payload leaked into a log doesn’t become a permanent open door to your users’ transcripts. Need the files later? GET /api/v1/videos/:videoId/transcription returns fresh URLs any time.

Failures don’t lose data. Deliveries retry automatically, exhausted events land in a dead-letter queue, and the dashboard shows full delivery history with one-click redelivery — single event, single delivery, or everything that failed in a time window. Your deploy-window outage is a 20-second redrive.

Full payload reference, header list, and verification guidance live in the webhooks documentation.

Getting Started

Three steps, no new vendor:

  1. Enable AI Transcription for your environment in the VIDTREO Dashboard — one toggle
  2. Create a webhook endpoint — HTTPS URL, store the whsec_ secret when it’s shown
  3. Build on the transcript — the payload above is everything your handler receives

Transcription is included in the same $0.01/min — recording, transcoding, storage, delivery, and AI transcription in one bill.

Your videos have been talking this whole time. Now your platform can listen.

Start Building Free → AI Transcription Docs → Webhooks Docs →

Share this article