Videotranscripties in LangChain
Laad YouTube- en TikTok-transcripties als LangChain-Document-objecten met tijdstempels, of geef een LangChain-agent de MCP-tools van Transcript Dock.
Bijgewerkt
Kort gezegd zijn er twee manieren. Voor indexering zet een kleine loader een transcriptie om in objecten van het type Document uit LangChain, één per ondertitelsegment met de starttijd. Voor agents koppelt de Transcript Dock MCP-server via langchain-mcp-adapters aan LangChain, en dan haalt de agent de transcripties zelf op.
Een documentloader#
Twintig regels, geen extra pakket. Elk Document houdt de video-URL en de timing bij, zodat zoekresultaten het moment kunnen aanwijzen waar ze vandaan komen. Groepeer segmenten in grotere stukken voordat je ze embedt, zoals getoond in transcripties voor 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")
Agenttools via MCP#
MultiServerMCPClient verbindt met de externe server en zet de tools om in LangChain-tools: get_video_transcript, YouTube-zoeken, een overzicht van kanalen en afspeellijsten, en een overzicht van TikTok-profielen.
# 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())
Tool-namen, argumenten en creditkosten staan op de MCP-pagina. LlamaIndex en andere frameworks die MCP spreken, verbinden op dezelfde manier.