Let AI agents watch videos: local transcripts, speakers, scenes, chapters and moment search
Turn any video into LLM-ready data.

A klaket is a clapperboard β the tool that syncs sound and image on a film set. Klaket syncs video with LLMs.
LLMs read text. The web became readable with scrapers β but video, the largest store of human knowledge, is still locked away. Klaket unlocks it: give it a video URL or file, get back structured, timestamped, LLM-ready data.
pip install klaket
klaket ingest "https://youtube.com/watch?v=..." --wait
{
"transcript": [
{ "start": 14.32, "end": 19.80, "speaker": "S1", "text": "So let's deploy this with docker compose..." }
],
"scenes": [
{ "start": 190.0, "end": 342.5, "keyframes": ["scene_004_01.jpg"] }
],
"chapters": [...],
"summary": "..."
}
"model": "medium").srt / .vtt files with speaker labelsKLAKET_VLM=off by default)GET /v1/jobs/{id}/search?q=β¦ finds the exact moment# pip install klaket
from klaket import Klaket
result = Klaket().process("https://youtube.com/watch?v=...", num_speakers=2)
// npm i klaket-sdk
import { Klaket } from "klaket-sdk";
const result = await new Klaket().process("https://youtube.com/watch?v=...");
# Claude Code
claude mcp add klaket -- npx klaket-mcp # KLAKET_API_URL defaults to localhost:8484
Then: "Watch https://youtube.com/watch?v=β¦ and summarize the commands the presenter runs."
The agent gets klaket_ingest, klaket_job_status and klaket_get_result tools.
git clone https://github.com/huseyinstif/klaket.git && cd klaket
docker compose up --build
# API on :8484, dashboard on :5180
curl -X POST localhost:8484/v1/ingest \
-H "Content-Type: application/json" \
-d '{"url": "https://youtube.com/watch?v=..."}'
That's it β no API keys, no GPUs required. make help lists developer shortcuts (make up, make test, make e2e).
client βββΊ Go API βββΊ Redis queue βββΊ Python worker (ffmpeg Β· faster-whisper Β· scenedetect)
β β
dashboard ββββββββββββββββββββββ /data/jobs/<id>/result.json
apps/api β Go, job orchestrationapps/worker β Python, media pipelineapps/dashboard β React dashboardKlaket is open source (AGPL-3.0) and fully self-hostable. A hosted, pay-per-minute cloud API with managed GPUs is planned β join the waitlist (coming soon).
π§ v0.7 β pre-1.0, moving fast. Star the repo to follow along.
AGPL-3.0. SDKs and clients will be MIT.
Built by HΓΌseyin TΔ±ntaΕ β X (@1337stif) Β· LinkedIn
Source-derived launch command. Check the maintainerβs required arguments and credentials before running:
npx -y klaket-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-huseyinstif-klaket-mcp": {
"command": "npx",
"args": [
"-y",
"klaket-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the clientβs tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceklaket-mcpnpmio.github.huseyinstif/klaket-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.