Tous les articles
8 min de lecture

Construire une archive vidéo interrogeable avec des transcriptions horodatées

Une archive vidéo devient utile quand on peut chercher ce qui a été dit, pas seulement les titres et descriptions. Les transcriptions horodatées transforment les vidéos en documents sans perdre le lien vers le moment exact.

Cela concerne :

  • webinaires ;
  • conférences ;
  • bibliothèques de formation ;
  • talks internes ;
  • interviews ;
  • démonstrations produit ;
  • catalogues YouTube publics ;
  • enregistrements de recherche utilisateur.

Le workflow est direct :

URL vidéo

Transcript avec segments

Chunks interrogeables

Index plein texte ou vectoriel

Résultat avec citation horodatée

Techtuel fournit les deux premières étapes via une API de transcription vidéo.

Pourquoi les titres ne suffisent pas

Les métadonnées vidéo sont pauvres. Un titre peut dire « Webinaire produit T3 », alors que la réponse cherchée se trouve à la douzième minute :

L’API d’export prend en charge VTT et SRT.

Sans transcription, la recherche ne peut pas trouver cette phrase. Sans horodatage, elle peut trouver la phrase mais pas renvoyer au bon moment.

Une archive vidéo utile a besoin de deux choses :

  • du texte pour la recherche ;
  • des instants pour la citation.

Transcrire la vidéo

Soumettez une URL vidéo :

curl -X POST https://api.techtuel.com/v1/transcriptions \
  -H "Authorization: Bearer $TECHTUEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source_url": "https://example.com/videos/webinaire-produit"
  }'

Quand le job est terminé, récupérez le JSON :

curl "https://api.techtuel.com/v1/transcriptions/job_7c1a?format=json" \
  -H "Authorization: Bearer $TECHTUEL_API_KEY"

Les champs utiles :

{
  "title": "Webinaire produit",
  "transcript": "Bienvenue à toutes et tous...",
  "segments": [
    { "start_seconds": 0, "text": "Bienvenue à toutes et tous" },
    { "start_seconds": 8.4, "text": "Aujourd’hui nous parlons des exports" }
  ]
}

Chaque segment possède un instant de départ et du texte. Il n’y a pas de champ end_seconds : calculez la fin à partir du segment suivant au moment de construire vos chunks.

Transformer les segments en chunks

N’indexez pas chaque segment isolément. Les segments individuels sont souvent trop courts.

Regroupez des segments adjacents :

  • 300 à 800 mots pour la recherche sémantique ;
  • chunks plus courts pour la citation exacte ;
  • start_seconds du premier segment ;
  • end_seconds déduit du segment suivant ;
  • identifiant vidéo et URL source.

Exemple de document :

{
  "video_id": "vid_123",
  "title": "Webinaire produit",
  "source_url": "https://example.com/videos/webinaire-produit",
  "start_seconds": 482.2,
  "end_seconds": 537.6,
  "content": "L’API d’export prend en charge VTT et SRT..."
}

Stocker pour la recherche

Un schéma PostgreSQL simple suffit pour porter l’archive :

CREATE TABLE video_transcript_chunks (
  id UUID PRIMARY KEY,
  video_id TEXT NOT NULL,
  title TEXT NOT NULL,
  source_url TEXT NOT NULL,
  start_seconds NUMERIC NOT NULL,
  end_seconds NUMERIC,
  content TEXT NOT NULL,
  created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
 
CREATE INDEX video_transcript_chunks_search_idx
  ON video_transcript_chunks
  USING GIN (to_tsvector('french', content));

Ajoutez des embeddings si vous avez besoin de recherche sémantique ou de RAG. Gardez tout de même la recherche plein texte : noms de produits, acronymes et champs d’API ressortent souvent mieux en lexical.

Construire des liens horodatés

Pour YouTube, les liens horodatés sont simples :

export function youtubeTimestamp(url: string, seconds: number) {
  return `${url}${url.includes('?') ? '&' : '?'}t=${Math.floor(seconds)}s`
}

Pour votre propre player, stockez start_seconds et faites un seek vidéo quand le résultat de recherche est ouvert.

Que montrer dans les résultats

Un bon résultat affiche :

  • titre de la vidéo ;
  • court extrait trouvé ;
  • horodatage ;
  • lien source ;
  • action « ouvrir à ce moment » ;
  • éventuellement speaker ou chapitre si votre système l’ajoute.

La transcription ne remplace pas la vidéo. Elle rend la vidéo navigable.

Cas d’usage

Les archives vidéo interrogeables servent à construire :

  • bases de connaissance internes ;
  • bibliothèques de recherche client ;
  • archives de conférences ;
  • recherche e-learning ;
  • enablement support ;
  • veille média ;
  • RAG sur contenus enregistrés.

Si votre archive part de YouTube, lisez YouTube transcript API : sous-titres ou transcription audio ?. Pour la version RAG détaillée, lisez Construire un pipeline RAG à partir de transcriptions vidéo.

Lire la documentation de l’API

Essayer Techtuel sans carte