Transcriptions vidéo dans LangChain
Chargez les transcriptions YouTube et TikTok comme Documents LangChain avec horodatage, ou donnez à un agent LangChain les outils MCP de Transcript Dock.
Mis à jour le
En bref, il y a deux façons. Pour l'indexation, un petit loader transforme une transcription en objets Document de LangChain, un par segment de sous-titres, avec son heure de début. Pour les agents, le serveur MCP de Transcript Dock se branche sur LangChain via langchain-mcp-adapters, et l'agent récupère lui-même les transcriptions.
Un loader de documents#
Une vingtaine de lignes, sans package supplémentaire. Chaque Document conserve l'URL de la vidéo et son timing, afin que les résultats de recherche puissent citer le moment exact d'où ils viennent. Regroupez les segments en blocs plus grands avant l'embedding, comme le montre la page transcriptions pour le RAG.
# pip install langchain-core requestsimport requestsfrom langchain_core.documents import DocumentAPI = "https://www.transcriptdock.com"H = {"Authorization": "Bearer td_live_YOUR_KEY"}def load_video(url: str, mode: str = "captions_only") -> list[Document]:"""One Document per caption segment, with the video URL and start time as metadata."""job = requests.post(f"{API}/v1/jobs", headers={**H, "Idempotency-Key": f"lc-{url}"[:128]},json={"source": {"url": url}, "mode": mode}).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"])t = requests.get(f"{API}/v1/transcripts/{job['result_id']}", headers=H).json()meta = {"source": t["source"]["canonical_url"], "title": t["source"]["title"], "language": t["language"]}return [Document(page_content=s["text"], metadata={**meta, "start": s["start"], "end": s["end"]})for s in t["segments"]]docs = load_video("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
Des outils d'agent via MCP#
MultiServerMCPClient se connecte au serveur distant et transforme ses outils en outils LangChain : get_video_transcript, la recherche YouTube, la liste des chaînes et des playlists, et la liste des profils TikTok.
# pip install langchain-mcp-adapters langgraph langchain-anthropicimport asynciofrom langchain_mcp_adapters.client import MultiServerMCPClientfrom langgraph.prebuilt import create_react_agentasync def main():client = MultiServerMCPClient({"transcriptdock": {"url": "https://www.transcriptdock.com/mcp","transport": "streamable_http","headers": {"Authorization": "Bearer td_live_YOUR_KEY"},}})tools = await client.get_tools()agent = create_react_agent("anthropic:claude-sonnet-5-5", tools)out = await agent.ainvoke({"messages": "Summarize https://www.youtube.com/watch?v=dQw4w9WgXcQ"})print(out["messages"][-1].content)asyncio.run(main())
Les noms des outils, leurs arguments et leurs coûts en crédits sont indiqués sur la page MCP. LlamaIndex et les autres frameworks compatibles avec MCP se connectent de la même façon.