[0,0]
[1920,0]
PROTOCOL STATUS: LIVE

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.

p99_latency=197ms|accuracy=98.4%|protocol=tracenode_v1
Used by early adopters across editing studios and Twitch creator workflows
tracenode — stream outputLIVE
TIMESTAMPDELTA
00:00:00.000[SCENE_START] video_id=vx8f92 resolution=1920x1080
00:00:01.840speaker_id=A confidence=0.97 text="welcome back everyone"
00:00:04.120speaker_id=A text="today we're going to talk about"
00:00:05.330[AUDIO_EVENT] type=background_music level=0.12
00:00:07.600speaker_id=A text="the new clipping workflow I've been building"
00:00:09.200[VISUAL_CHANGE] scene_delta=0.78 cut_type=hard
00:00:11.450speaker_id=A text="first let me show you what the old process looked like"
00:00:14.880[SCREEN_SHARE] app=timeline_editor confidence=0.99
00:00:16.200speaker_id=A text="this took me about 45 minutes every stream"
00:00:18.900[EMOTION_SIGNAL] valence=frustration intensity=0.6
00:00:21.440speaker_id=A text="now with tracenode it's completely automatic"
00:00:23.100[HIGHLIGHT_CANDIDATE] score=0.94 reason=product_demo
00:00:25.780speaker_id=A text="every timestamp, every word, every scene change"
00:00:28.320[SCENE_CHANGE] delta=0.91 cut_type=dissolve duration=0.24s
00:00:30.000[CHAPTER_BOUNDARY] label="demo_start" confidence=0.89
00:00:32.660speaker_id=A text="it gives my editor exact coordinates to work from"
00:00:35.120[AGENT_HOOK] event=clip_candidate ts_range=[23.1,35.1] score=0.96
00:00:37.840speaker_id=B text="how is the accuracy on technical content"
00:00:40.200[SPEAKER_CHANGE] from=A to=B overlap=0.04s
00:00:42.560speaker_id=A text="98.4 percent on the benchmark suite"
00:00:44.900[METRIC_SIGNAL] value=98.4 type=accuracy confidence=0.99
00:00:47.100speaker_id=A text="and latency under 200 milliseconds per node"
00:00:49.440[PERFORMANCE] metric=latency_ms value=183 p99=197
00:00:51.880[AGENT_HOOK] event=auto_chapter ts=00:00:30.000 confirmed
00:00:54.220speaker_id=B text="can you show me the raw protocol output"
00:00:56.600[PROTOCOL_EXPORT] format=tracenode_v1 nodes=847 size=42kb
00:00:59.000[STREAM_END] duration=59.0s total_nodes=847 status=OK
00:00:00.000[SCENE_START] video_id=vx8f92 resolution=1920x1080
00:00:01.840speaker_id=A confidence=0.97 text="welcome back everyone"
00:00:04.120speaker_id=A text="today we're going to talk about"
00:00:05.330[AUDIO_EVENT] type=background_music level=0.12
00:00:07.600speaker_id=A text="the new clipping workflow I've been building"
00:00:09.200[VISUAL_CHANGE] scene_delta=0.78 cut_type=hard
00:00:11.450speaker_id=A text="first let me show you what the old process looked like"
00:00:14.880[SCREEN_SHARE] app=timeline_editor confidence=0.99
00:00:16.200speaker_id=A text="this took me about 45 minutes every stream"
00:00:18.900[EMOTION_SIGNAL] valence=frustration intensity=0.6
00:00:21.440speaker_id=A text="now with tracenode it's completely automatic"
00:00:23.100[HIGHLIGHT_CANDIDATE] score=0.94 reason=product_demo
00:00:25.780speaker_id=A text="every timestamp, every word, every scene change"
00:00:28.320[SCENE_CHANGE] delta=0.91 cut_type=dissolve duration=0.24s
00:00:30.000[CHAPTER_BOUNDARY] label="demo_start" confidence=0.89
00:00:32.660speaker_id=A text="it gives my editor exact coordinates to work from"
00:00:35.120[AGENT_HOOK] event=clip_candidate ts_range=[23.1,35.1] score=0.96
00:00:37.840speaker_id=B text="how is the accuracy on technical content"
00:00:40.200[SPEAKER_CHANGE] from=A to=B overlap=0.04s
00:00:42.560speaker_id=A text="98.4 percent on the benchmark suite"
00:00:44.900[METRIC_SIGNAL] value=98.4 type=accuracy confidence=0.99
00:00:47.100speaker_id=A text="and latency under 200 milliseconds per node"
00:00:49.440[PERFORMANCE] metric=latency_ms value=183 p99=197
00:00:51.880[AGENT_HOOK] event=auto_chapter ts=00:00:30.000 confirmed
00:00:54.220speaker_id=B text="can you show me the raw protocol output"
00:00:56.600[PROTOCOL_EXPORT] format=tracenode_v1 nodes=847 size=42kb
00:00:59.000[STREAM_END] duration=59.0s total_nodes=847 status=OK
nodes=847 | size=42kbstatus=OK
avg_latency
183ms
p99=197ms
accuracy
98.4%
benchmark
protocols
v1.0
stable
node_types
12
event classes
// HOW IT WORKS

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.

01

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 true
02

Generate 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
}
03

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.85
04

Plug 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);
// USE CASES

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.

Video Editors

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

CHAPTER_BOUNDARY label="intro_end" ts=00:03:44.200
Twitch & Long-form Creators

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.

HIGHLIGHT_CANDIDATE score=0.96 ts_range=[1:24:08,1:24:31]
AI Agent Builders

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.

AGENT_HOOK event=clip_candidate score=0.94 ts_range=[23.1,35.1]
Search & Archive Teams

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.

SPOKEN_WORD text="revenue" speaker=A ts=00:12:33.880
// PROTOCOL PROPERTIES

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.

01

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.

±1ms accuracy | 120fps compatible
02

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.

SCENE | SPEAKER | TEXT | AUDIO | EMOTION | AGENT_HOOK | +6
03

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.

sha256 content hash per trace
04

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.

p99_latency=197ms | websocket + REST

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.

Formatndjson (newline-delimited JSON)
EncodingUTF-8
Sort keyts (ISO 8601 duration)
Compressiongzip supported
sample_output.trace
{"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}
// EARLY ADOPTER SIGNAL

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.

45 min → 3 min
C
CipherVOD
Twitch Partner · 180k followers

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.

exact timestamps, no hallucinations
M
mxsdevlab
AI infra engineer · content tools

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.

shared language for async teams
L
Lena P.
Lead Editor · documentary studio
workflow_comparison.trace
METRICWITHOUTWITH TRACENODEDELTA
avg_clips_generated1.2x8.4x+600%
editor_review_time45min4min-91%
timestamp_accuracy±8s±1ms8000x
agent_hallucination_rate18%0.3%-98%
[CTA_BLOCK]
ts=CONVERT_NOW
OPEN BETA — NO CREDIT CARD

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.

quick start
tracenode trace --url YOUR_VIDEO

Free during beta · No CC required · trace files are yours