Lewati ke konten
Transcript Dock
MasukMulai gratis

Menu situs

Transcript Dock

Transkrip video di LangChain

Muat transkrip YouTube dan TikTok sebagai Document LangChain dengan tanda waktu, atau berikan kepada agen LangChain alat MCP Transcript Dock.

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.

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")

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.

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())

Nama alat, argumen, dan biaya kredit ada di halaman MCP. LlamaIndex dan framework lain yang mendukung MCP terhubung dengan cara yang sama.