A static, read-only web visualizer for Action100M-style annotations: video plus a tree of temporal segments with multiple annotation fields. One screen: video, timeline (one row per level), nodes at current time, metadata, and transcript. All data is loaded from files you select; no backend.
The name Kriya is a Sanskrit word meaning action or deed.
What you can do
- Load content — Single video + JSON, or two folders (videos + JSON) matched by filename stem (e.g.
1.mp4 ↔ 1.json). Use the hamburger menu (≡) to browse when using folders.
- Watch and navigate — Play video; timeline shows one row per hierarchy level; click a segment to seek. “Nodes at current time” shows the path from root to each active node; Details and Path open full node JSON or path.
- Transcript — If metadata has SRT or a time-based array, the current cue is shown under the video; otherwise open the Transcript modal for plain text.
- Metadata — Title, description, and other fields via the Metadata button.
Input format
One JSON file per video. Root: video_uid, optional metadata, nodes (array of segment nodes), optional video_src.
- Metadata — Optional
title, description, duration, transcript (SRT string, or array of { start, end, text } or { time, text }).
- Nodes — Each node:
node_id, parent_id, level, start, end, plus annotation fields (e.g. gpt.summary.brief, plm_caption).
The app does not read Parquet; export one JSON per video from your dataset if needed.
Keyboard
Space = play/pause; Left/Right = seek 5 s; Escape = close modals or list drawer.