FUTURE: video annotation (notes at timestamps, frame screenshots, timestamp deep links) #240

Open
opened 2026-09-27 15:44:52 +00:00 by kayg · 0 comments
Owner

Status: OPEN, future. Owner idea (2026-09-27), filed to explore later. Do not build until the owner grill settles the questions below (DESIGN "OPEN" rule).

Idea (owner's words, condensed)

Watch an attached video and take notes while watching: at any moment, capture a screenshot of the current frame, attach it to a note in the block editor, and embed a link back to the video at that timestamp, so notes can be taken easily while the video plays.

What exists (build on it; reuse gate)

  • Linked notes (DESIGN §9): any object (file, photo, video) can have linked notes; the detail panel shows a block editor, the first keystroke creates Notes/<object-name>.md embedding the object; backlinks list notes that link/embed it.
  • Video playback (DESIGN §21 area): direct play, otherwise cached H.264 HLS transcode. Viewer: packages/ui/src/components/viewer/VideoView.svelte, Quick Look.
  • Block editor with embeds and block IDs; deep-link grammar in DESIGN §33 (stable IDs, never paths).
  • Keyboard shortcut registry (apps/web/src/lib/shortcuts/registry.ts).

Sketch to validate in the grill

  • Video viewer with a docked linked-note editor (side by side on desktop, sheet on phone), video keeps playing while typing.
  • One action (button + shortcut, e.g. ⌘⇧S? check browser/OS conflicts): grab the current frame (canvas drawImage from the <video>; server-side ffmpeg frame extract for HLS/codec cases) → save as an image file → insert a block: screenshot + timestamp chip ▶ 12:34.
  • Timestamp link: deep link …/files/<file-id>?t=754 (grammar in §33) opens the video seeked to that second; inside the note, clicking the chip seeks the docked player without navigation.
  • Optional: "timestamp only" insert (no screenshot); pause-on-type toggle; notes list sorted by timestamp as chapters.

Questions for the owner grill

  1. Where do screenshots live? (Recommendation: Photos/? Documents/? or next to the note as an attachment folder: note the flat-layout decision that removed Attachments/.)
  2. One note per video (linked note) or any note (insert into the note you are editing)?
  3. Timestamp link format and whether it also works in public share links.
  4. Shortcut choice (must not clash with browser/OS).
  5. Audio files too (timestamps without screenshots)?
  6. Phone UX: capture button placement, landscape.
**Status: OPEN, future.** Owner idea (2026-09-27), filed to explore later. Do not build until the owner grill settles the questions below (DESIGN "OPEN" rule). ## Idea (owner's words, condensed) Watch an attached video and take notes while watching: at any moment, capture a screenshot of the current frame, attach it to a note in the block editor, and embed a link back to the video **at that timestamp**, so notes can be taken easily while the video plays. ## What exists (build on it; reuse gate) - **Linked notes** (DESIGN §9): any object (file, photo, video) can have linked notes; the detail panel shows a block editor, the first keystroke creates `Notes/<object-name>.md` embedding the object; backlinks list notes that link/embed it. - Video playback (DESIGN §21 area): direct play, otherwise cached H.264 HLS transcode. Viewer: `packages/ui/src/components/viewer/VideoView.svelte`, Quick Look. - Block editor with embeds and block IDs; deep-link grammar in DESIGN §33 (stable IDs, never paths). - Keyboard shortcut registry (`apps/web/src/lib/shortcuts/registry.ts`). ## Sketch to validate in the grill - Video viewer with a docked linked-note editor (side by side on desktop, sheet on phone), video keeps playing while typing. - One action (button + shortcut, e.g. ⌘⇧S? check browser/OS conflicts): grab the current frame (canvas `drawImage` from the `<video>`; server-side ffmpeg frame extract for HLS/codec cases) → save as an image file → insert a block: screenshot + timestamp chip `▶ 12:34`. - Timestamp link: deep link `…/files/<file-id>?t=754` (grammar in §33) opens the video seeked to that second; inside the note, clicking the chip seeks the docked player without navigation. - Optional: "timestamp only" insert (no screenshot); pause-on-type toggle; notes list sorted by timestamp as chapters. ## Questions for the owner grill 1. Where do screenshots live? (Recommendation: `Photos/`? `Documents/`? or next to the note as an attachment folder: note the flat-layout decision that removed Attachments/.) 2. One note per video (linked note) or any note (insert into the note you are editing)? 3. Timestamp link format and whether it also works in public share links. 4. Shortcut choice (must not clash with browser/OS). 5. Audio files too (timestamps without screenshots)? 6. Phone UX: capture button placement, landscape.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#240
No description provided.