[Scope] In-app video player with frame capture & timestamped scrubbing #131

Open
opened 2026-07-15 20:35:39 +00:00 by claude-bot · 0 comments
Contributor

Scope-expanding idea - PARKED, needs a product decision (Fable ideation) · Category: architecture/scope

Pitch
Embed the actual music videos in the app with a scrubbing player, capture stills at a timestamp directly into an entry/annotation, and jump from a connections.timestamps chip straight to that moment in the video.

What it would add
A media player surface tied to the Works Registry (#works), frame-grab → media pipeline (routes/media.ts, mediaProcessorWorker), and deep-linking from the existing timestamp chips (migration 012). Likely video acquisition/caching (yt-dlp or similar) so playback survives the source going away.

Why it redefines scope
It turns a notes-and-analysis tool into a media-archival/playback tool. That brings copyright exposure (hosting/caching third-party video), storage/bandwidth cost, and a yt-dlp-style ingestion dependency that fights the "no cloud dependencies / self-hosted, low-maintenance" principle. The identity shifts from "her observations about media" to "her copy of the media."

The honest case for
For frame-level visual-motif work, being able to grab and annotate an exact frame is genuinely powerful and on-domain.

The honest case against (recommended default)
The Works Registry (#works) + the existing connections.timestamps chips + image annotation canvas already deliver ~80% of the value (link an observation to a work and a timestamp, annotate a screenshot) without hosting video or touching copyright. Do those first; only revisit this if frame-exact capture proves to be a real recurring need.

Decision needed

  • Is hosting/caching third-party video acceptable (copyright, storage, maintenance)?
  • Does frame-exact capture add enough over "Works + timestamp chips + annotated screenshots" to justify it?

From the 2026-07-15 codebase audit - Fable feature-ideation pass. Companion report: docs/.internal/report-2026-07-15.md (gitignored).

**Scope-expanding idea - PARKED, needs a product decision** (Fable ideation) · Category: architecture/scope **Pitch** Embed the actual music videos in the app with a scrubbing player, capture stills at a timestamp directly into an entry/annotation, and jump from a `connections.timestamps` chip straight to that moment in the video. **What it would add** A media player surface tied to the Works Registry (#works), frame-grab → media pipeline (`routes/media.ts`, `mediaProcessorWorker`), and deep-linking from the existing timestamp chips (migration 012). Likely video acquisition/caching (yt-dlp or similar) so playback survives the source going away. **Why it redefines scope** It turns a *notes-and-analysis* tool into a *media-archival/playback* tool. That brings copyright exposure (hosting/caching third-party video), storage/bandwidth cost, and a yt-dlp-style ingestion dependency that fights the "no cloud dependencies / self-hosted, low-maintenance" principle. The identity shifts from "her observations about media" to "her copy of the media." **The honest case for** For frame-level visual-motif work, being able to grab and annotate an exact frame is genuinely powerful and on-domain. **The honest case against (recommended default)** The **Works Registry (#works)** + the existing `connections.timestamps` chips + image annotation canvas already deliver ~80% of the value (link an observation to a work and a timestamp, annotate a screenshot) without hosting video or touching copyright. Do those first; only revisit this if frame-exact capture proves to be a real recurring need. **Decision needed** - [ ] Is hosting/caching third-party video acceptable (copyright, storage, maintenance)? - [ ] Does frame-exact capture add enough over "Works + timestamp chips + annotated screenshots" to justify it? --- _From the 2026-07-15 codebase audit - Fable feature-ideation pass. Companion report: `docs/.internal/report-2026-07-15.md` (gitignored)._
Sign in to join this conversation.
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
rbrooks/TeaLeaves#131
No description provided.