Transkrip video di LangChain
Muat transkrip YouTube dan TikTok sebagai Document LangChain dengan tanda waktu, atau berikan kepada agen LangChain alat MCP Transcript Dock.
Diperbarui
Singkatnya ada dua cara. Untuk pengindeksan, loader kecil mengubah transkrip menjadi objek LangChain Document, satu per segmen subtitle dengan waktu mulainya. Untuk agen, server MCP Transcript Dock terhubung ke LangChain melalui langchain-mcp-adapters, dan agen mengambil transkrip sendiri.
Loader dokumen#
Dua puluh baris, tanpa package tambahan. Setiap Document menyimpan URL video dan waktunya, sehingga hasil retrieval dapat menunjuk momen asalnya. Gabungkan segmen menjadi potongan yang lebih besar sebelum embedding, seperti dijelaskan di transkrip untuk 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")
Alat agen lewat MCP#
MultiServerMCPClient terhubung ke server jarak jauh dan mengubah alatnya menjadi alat LangChain: get_video_transcript, pencarian YouTube, daftar channel dan playlist, serta daftar profil 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())
Nama alat, argumen, dan biaya kredit ada di halaman MCP. LlamaIndex dan framework lain yang mendukung MCP terhubung dengan cara yang sama.