Aller au contenu
Transcript Dock
Se connecterCommencer gratuitement

Menu du site

Transcript Dock
PrésentationFonctionnement, guides et ce que vous pouvez transcrire.
Démarrage rapideEnvoyez un lien, attendez la tâche, exportez la transcription. Trois requêtes.
AuthentificationClés API, portées, Idempotency-Key et X-Request-Id.
TâchesCréer, attendre, lister, annuler et relancer les tâches.
TranscriptionsL'objet transcription et les exports txt, srt, vtt et json.
LotsJusqu'à 50 vidéos dans une seule requête.
ImportsTranscrivez vos propres fichiers audio et vidéo.
Notifications webhookRecevez un appel quand une tâche ou un lot se termine ; vérifiez la signature.
ErreursChaque code d'erreur, ce qu'il signifie et la marche à suivre.
Limites de débitEnvois, tâches en cours et lectures par forfait ; la réponse 429.
Tarifs et crédits1 crédit par transcription de sous-titres, 2 par minute de transcription par IA. Forfaits et crédits supplémentaires.
OriginesYouTube, TikTok, vos fichiers et liens directs : URL acceptées et modes.
MCPTrouvez et transcrivez des vidéos depuis Claude, Cursor, Windsurf ou votre propre agent.
Spécification OpenAPILa spécification OpenAPI 3.1 pour la génération de code et les clients typés.
Claude CodeUne seule commande ajoute Transcript Dock à Claude Code.
Application ClaudeAjoutez Transcript Dock comme connecteur personnalisé sur claude.ai, Claude Desktop ou mobile.
CursorAjoutez Transcript Dock comme serveur MCP dans Cursor.
WindsurfAjoutez Transcript Dock à Windsurf pour que Cascade puisse trouver et transcrire des vidéos.
OpenClawConnectez Transcript Dock aux agents autonomes OpenClaw.
19 résultats
Guides pratiques

Transcriptions vidéo pour RAG et pipelines LLM

Transformez des vidéos YouTube et TikTok en blocs qu'un LLM peut rechercher et citer : récupérez des segments horodatés, découpez par temps et conservez des liens vers l'instant exact.

Mis à jour le


En bref : récupérez la transcription en JSON, et non en texte brut. Le tableau segments contient un temps de début et de fin pour chaque ligne de sous-titres. Vous pouvez ainsi découper par temps et stocker le début comme métadonnée. Chaque réponse de votre modèle peut alors renvoyer vers le moment exact de la vidéo.

Pourquoi les segments horodatés valent mieux que le texte brut#

  • Citations : un bloc qui sait qu'il commence à 754 secondes devient un lien vers ce moment.
  • Frontières naturelles : les lignes de sous-titres se terminent aux pauses, donc les blocs coupent rarement une phrase en deux.
  • Provenance : source_origin indique si le texte vient du créateur, des sous-titres automatiques de la plateforme ou de la transcription par IA, et language donne sa langue.

Récupérer et découper#

Cet exemple récupère une transcription et regroupe les segments en fenêtres d'environ une minute. La structure du JSON de transcription est décrite dans la référence API.

rag_ingest.py
import requests
 
API = "https://www.transcriptdock.com"
H = {"Authorization": "Bearer td_live_YOUR_KEY"}
 
def transcript(url: str) -> dict:
job = requests.post(f"{API}/v1/jobs", headers={**H, "Idempotency-Key": f"rag-{url}"[:128]},
json={"source": {"url": url}, "mode": "captions_only"}).json()
while job["status"] not in ("succeeded", "failed", "cancelled"):
job = requests.get(f"{API}/v1/jobs/{job['id']}", params={"wait": 25}, headers=H).json()
if job["status"] != "succeeded":
raise RuntimeError(job["error"]["code"])
return requests.get(f"{API}/v1/transcripts/{job['result_id']}", headers=H).json()
 
def chunks(t: dict, seconds: float = 60.0):
"""Group caption segments into windows of about `seconds`, never splitting a segment."""
url = t["source"]["canonical_url"]
buf, start = [], None
for seg in t["segments"]:
if start is None:
start = seg["start"]
buf.append(seg["text"])
if seg["end"] - start >= seconds:
yield {"text": " ".join(buf), "start": start, "url": f"{url}&t={int(start)}s" if "youtube" in url else url}
buf, start = [], None
if buf:
yield {"text": " ".join(buf), "start": start, "url": url}
 
t = transcript("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
for c in chunks(t):
print(c["start"], c["url"], c["text"][:80]) # embed c["text"], store start and url as metadata

Beaucoup de vidéos#

  • Trouvez les vidéos avec la découverte de vidéos : recherche YouTube, chaîne, playlist ou profil TikTok.
  • Envoyez-les sous forme de lot et laissez un webhook prévenir votre module d'ingestion à la fin de chaque tâche, au lieu de faire du polling.
  • Relire et réexporter une transcription est gratuit, et envoyer un lien déjà transcrit renvoie le résultat enregistré : relancer une ingestion ne coûte donc pas deux fois.

Des agents qui récupèrent à la demande#

Tous les pipelines n'ont pas besoin d'un index. Un agent connecté au serveur MCP de Transcript Dock peut appeler get_video_transcript lorsqu'un utilisateur mentionne une vidéo, et lire le texte directement dans son contexte. Pour les frameworks, voir LangChain et n8n.