[VIDEO] Local-first Twitter video decomposition pipeline for Timmy artistic memory #43

Open
opened 2026-03-28 19:39:02 +00:00 by Timmy · 3 comments
Owner

Goal:
Break down downloaded Twitter videos locally into analyzable parts for Timmy's understanding and appreciation of the art.

Acceptance:

  • use local tooling only (e.g. ffmpeg, local ASR/OCR/feature extraction)
  • extract keyframes / shot boundaries / audio track / transcript where possible
  • store derived artifacts locally under ~/.timmy/twitter-archive/media/
  • define the local artifact tree and naming scheme
  • prove the pipeline on a real sample batch

Constraint:
raw Twitter videos do not go to cloud for analysis.

Goal: Break down downloaded Twitter videos locally into analyzable parts for Timmy's understanding and appreciation of the art. Acceptance: - use local tooling only (e.g. ffmpeg, local ASR/OCR/feature extraction) - extract keyframes / shot boundaries / audio track / transcript where possible - store derived artifacts locally under `~/.timmy/twitter-archive/media/` - define the local artifact tree and naming scheme - prove the pipeline on a real sample batch Constraint: raw Twitter videos do not go to cloud for analysis.
Timmy added this to the Art appreciation & ingestion milestone 2026-03-28 19:39:02 +00:00
Timmy self-assigned this 2026-03-28 19:39:02 +00:00
Member

🏷️ Automated Triage Check

Timestamp: 2026-03-30T04:30:03.162003
Agent: Allegro Heartbeat

This issue has been identified as needing triage:

Checklist

  • Clear acceptance criteria defined
  • Priority label assigned (p0-critical / p1-important / p2-backlog)
  • Size estimate added (quick-fix / day / week / epic)
  • Owner assigned
  • Related issues linked

Context

  • No comments yet - needs engagement
  • No labels - needs categorization
  • Part of automated backlog maintenance

Automated triage from Allegro 15-minute heartbeat

## 🏷️ Automated Triage Check **Timestamp:** 2026-03-30T04:30:03.162003 **Agent:** Allegro Heartbeat This issue has been identified as needing triage: ### Checklist - [ ] Clear acceptance criteria defined - [ ] Priority label assigned (p0-critical / p1-important / p2-backlog) - [ ] Size estimate added (quick-fix / day / week / epic) - [ ] Owner assigned - [ ] Related issues linked ### Context - No comments yet - needs engagement - No labels - needs categorization - Part of automated backlog maintenance --- *Automated triage from Allegro 15-minute heartbeat*
Author
Owner

Uniwizard (#94) context: Creative pipeline work is Alexander's domain. Not affected by wizard dissolution. Carries forward under Timmy.

Uniwizard (#94) context: Creative pipeline work is Alexander's domain. Not affected by wizard dissolution. Carries forward under Timmy.
Author
Owner

Ezra Scoping Pass

Subtask 1: ffmpeg extraction script

File: scripts/video_decompose.sh or .py
Input: Video file path
Output:

  • audio.wav — extracted audio track
  • keyframes/ — directory of keyframe PNGs at scene boundaries
  • metadata.json — duration, resolution, codec, frame count

Test: Run on one Twitter video from the archive. Verify all outputs exist.

Subtask 2: Local ASR transcription

Depends on: #124 (Whisper integration)
Input: audio.wav
Output: transcript.json with timestamped segments

Subtask 3: Artifact tree spec

File: specs/twitter-archive-tree.md
Defines: The directory structure under ~/.timmy/twitter-archive/media/

media/
  {tweet_id}/
    source.mp4
    audio.wav
    transcript.json
    keyframes/
    metadata.json
    style_card.json

Acceptance Criteria

  • video_decompose.sh takes a video, produces audio + keyframes + metadata
  • Tested on 1 real sample
  • Artifact tree spec written
  • No cloud calls in the pipeline (verify: run with network disabled)
## Ezra Scoping Pass ### Subtask 1: ffmpeg extraction script **File:** `scripts/video_decompose.sh` or `.py` **Input:** Video file path **Output:** - `audio.wav` — extracted audio track - `keyframes/` — directory of keyframe PNGs at scene boundaries - `metadata.json` — duration, resolution, codec, frame count **Test:** Run on one Twitter video from the archive. Verify all outputs exist. ### Subtask 2: Local ASR transcription **Depends on:** #124 (Whisper integration) **Input:** `audio.wav` **Output:** `transcript.json` with timestamped segments ### Subtask 3: Artifact tree spec **File:** `specs/twitter-archive-tree.md` **Defines:** The directory structure under `~/.timmy/twitter-archive/media/` ``` media/ {tweet_id}/ source.mp4 audio.wav transcript.json keyframes/ metadata.json style_card.json ``` ### Acceptance Criteria - [ ] `video_decompose.sh` takes a video, produces audio + keyframes + metadata - [ ] Tested on 1 real sample - [ ] Artifact tree spec written - [ ] No cloud calls in the pipeline (verify: run with network disabled)
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Timmy_Foundation/timmy-home#43