Every word.
Every frame.
Exact timestamp.
TraceNode is the canonical video-to-text protocol — dense, structured, timestamped deltas that give video editors, Twitch creators, and AI agents a shared language for what happened in your video.
From raw video to
structured intelligence
Four steps from upload to machine-readable trace. No manual labeling, no summary approximations — exact coordinates for every event.
Ingest any video source
Upload a file, paste a URL, or pipe a live stream. TraceNode accepts MP4, MKV, WebM, and direct RTMP/HLS feeds. Every frame is indexed from millisecond zero.
tracenode ingest \
--source stream.twitch.tv/vod/123 \
--realtime trueGenerate dense timestamped deltas
The protocol fires a node event for every meaningful change: speaker turns, scene cuts, on-screen text, audio events, silence, laughter. Each node is a precise coordinate in your video's timeline.
{
"ts": "00:04:22.180",
"type": "speaker_turn",
"from": "A",
"to": "B",
"overlap_ms": 40,
"confidence": 0.98
}Export structured trace files
The .trace file is a newline-delimited JSON stream — one node per line, sortable, diffable, and grep-able. Your editor imports it; your agent streams it; your search index ingests it.
# Pipe to your editor NLE or agent
cat my_vod.trace | \
tracenode filter \
--type highlight_candidate \
--min-score 0.85Plug into any AI workflow
Agents read the trace as structured context. No hallucinated summaries — they see exactly what was said, exactly when, with confidence scores attached. Build auto-clippers, chapter generators, and search indexes in hours.
const trace = await TraceNode.fetch(vodId);
const highlights = trace
.filter(n => n.type === "highlight_candidate")
.sort((a, b) => b.score - a.score)
.slice(0, 10);Built for the people who
live inside timelines
Whether you're cutting a highlight reel, building a clipping agent, or indexing a content library — TraceNode speaks your workflow.
Tell your editor exactly where the moment is
Export a .trace file with your project. Every scene change, every speaker turn, every chapter boundary comes with a precise timestamp your editor can jump to directly — no more scrubbing, no more "it was around the 4-minute mark."
Turn a 6-hour VOD into a structured searchable archive
TraceNode processes your full stream and generates a timeline of every highlight candidate, every emotional peak, and every keyword — ranked by score. Your clip editor ships 10 shorts without watching a second of footage.
Give your agents ground truth, not summaries
Stream the .trace file as structured context. Your agent sees exactly what was said, by whom, with confidence scores and event types attached. Build auto-clippers, chapter generators, search indexes, and Q&A bots that cite exact timestamps.
Make every second of video findable
Index .trace files directly into your search engine. Full-text search over every utterance, every on-screen text, every product mention — all linked back to the exact timestamp. No transcript approximations.
Precision that
your workflow demands
TraceNode isn't a transcription service. It's a protocol. The difference is that the protocol makes promises — and keeps them.
Millisecond precision
Timestamps accurate to the millisecond. Not approximations. Not rounding to the nearest second. The exact coordinate where every event occurred in your video.
12 event node types
Speaker turns. Scene changes. On-screen text. Silence. Laughter. Highlight candidates. Chapter boundaries. Audio events. Each type carries structured metadata, not just a label.
Deterministic output
Run the same video twice, get identical trace files. No probabilistic hallucinations, no summarization drift. The protocol is a function of the video, not a model's interpretation of it.
Streaming-native architecture
First node fires in under 200ms. Subsequent nodes stream as they're generated. Integrate into live production workflows, real-time agent pipelines, or batch processing jobs.
The .trace format is
newline-delimited JSON
One node per line. Sort it, grep it, stream it, diff it. Ingest it into any data pipeline without a custom parser. If you can read ndjson, you can read TraceNode.
{"ts":"00:00:01.840","type":"speaker_turn","speaker_id":"A","text":"welcome back everyone","confidence":0.97}
{"ts":"00:00:05.330","type":"audio_event","subtype":"background_music","level":0.12}
{"ts":"00:00:09.200","type":"scene_change","delta":0.78,"cut_type":"hard"}
{"ts":"00:00:14.880","type":"screen_share","app":"timeline_editor","confidence":0.99}
{"ts":"00:00:23.100","type":"highlight_candidate","score":0.94,"reason":"product_demo"}
{"ts":"00:00:30.000","type":"chapter_boundary","label":"demo_start","confidence":0.89}
{"ts":"00:00:35.120","type":"agent_hook","event":"clip_candidate","ts_range":[23.1,35.1],"score":0.96}Real workflows.
Real numbers.
I used to spend 45 minutes per stream just scrubbing for clips. Now my editor gets a .trace file and ships 10 shorts before I'm done with my coffee.
The agent integration is what got me. I hooked TraceNode into my LLM pipeline and my bot can now answer 'when did they first mention X' with a precise timestamp, not a hallucinated estimate.
Our editing team works across 6 time zones. The .trace file became our shared language — everyone knows exactly what 00:04:22.180 means. Game changer for async review.
Your video already has
the data. We just expose it.
Start with one video. Get a .trace file in under a minute. No setup, no training, no labeling. Just upload and see exactly what TraceNode sees inside your content.
tracenode trace --url YOUR_VIDEOFree during beta · No CC required · trace files are yours