Naar de inhoud
Transcript Dock
InloggenStart gratis

Sitemenu

Transcript Dock

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.

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.

loader.py
# pip install langchain-core requests
import requests
from langchain_core.documents import Document
 
API = "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.

agent.py
# pip install langchain-mcp-adapters langgraph langchain-anthropic
import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
 
async 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.