Skip to content
ingest-movie logo

1. Find a release that ships with SDH subtitles

ingest-movie

Locate NZBGeek releases with subtitle-rich movie files, auto-tag rage/anger/humor cues, and emit PersonaPlex-ready JSON for Horus Theory-of-Mind benchmarks.

SKILL.md

Full skill instructions

Use this skill whenever we need cinematic emotional exemplars (respect, humor, regret, anger, rage, etc.) for PersonaPlex.

It enforces a subtitle-first workflow:

  1. Search NZBGeek for scene releases that already include .srt/.sup files with stage directions.
  2. Map rage/​anger windows from the subtitle text or tags (no decoding needed yet).
  3. Clip + Transcribe targeted scenes, marry them with the subtitle cues, and emit Persona-ready JSON.

Commands

run.sh search "<title>"

  • Calls NZBGeek’s API (requires NZBD_GEEK_API_KEY) and prints size/​date/​link.
  • Use this to locate releases that explicitly mention subs, CC, or SDH.

run.sh scenes find --subtitle <file.srt> (--query "text" | --tag laugh)

  • Quick TUI view of subtitle windows that match free text or cue tags (rage, shout, laugh, etc.).
  • Pass --video movie.mkv to see ready-to-copy ffmpeg -ss ... -to ... snippets.
  • Designed for “project agent wants a specific sequence” moments.

run.sh scenes quality --subtitle <file.srt> [--strict]

  • Validates subtitle quality for PersonaPlex ingestion before processing.
  • Checks: encoding, entry count, emotion cue presence, timing consistency.
  • Use --strict to fail on warnings (for CI pipelines).

run.sh scenes analyze --subtitle <file.srt> [--verbose] [--output-json report.json]

  • Scans a subtitle file and reports ALL emotion cues found, grouped by type.
  • Shows count, tags found, and first occurrence for each emotion.
  • Use this to assess a subtitle before extracting specific emotions.

run.sh scenes extract --subtitle <file.srt> --tag rage --video movie.mkv --clip-dir ./​clips

  • Writes a PersonaPlex-ready manifest that lists each candidate scene, cue tags, inferred emotion, and clip timing.
  • Optional --clip-dir automatically runs ffmpeg to produce numbered .mkv clips plus .srt subtitle snippets per match.
  • Use this when we need every rage/​anger sequence from a film—no guessing or manual scrubbing.

run.sh transcribe movie_clip.mkv --emotion rage --scene "..."

  • Extracts mono WAV via ffmpeg, runs Whisper (default medium), and joins the output with the matching .srt.
  • Produces *_persona.json containing:
    • Stable video_id, movie title, scene notes, ISO timestamp.
    • Segment-by-segment tags (laugh, rage, whisper_candidate, etc.).
    • Rhythm metrics (WPM, pause count, duration).
  • Pipe straight into horus_lore_ingest.py emotion --input <dir> --emotion rage.

Do we still need the movie if we have subtitles?
Yes for PersonaPlex: subtitles help us find the right windows, but Whisper + rhythm features require the actual audio to model tone, pacing, and breath. Use scenes extract --subtitle-only when scouting, then transcribe once the clip is cut.

Environment

VariablePurpose
NZB_GEEK_API_KEY (or NZBD_GEEK_API_KEY)Auth for NZBGeek search
NZB_GEEK_BASE_URL (or NZBD_GEEK_BASE_URL)Override for private Usenet proxies
WHISPER_BINPath to Whisper CLI (defaults to ~/​.local/​bin/​whisper)
FFMPEG_BINPath to ffmpeg (defaults to /​usr/​bin/​ffmpeg)
AUDIO_RMS_THRESHOLDBase RMS threshold for audio intensity tags (default 0.2)
AUDIO_RMS_WINDOW_SECWindow size in seconds for RMS scanning (default 0.5)

Audio intensity tagging automatically installs numpy + soundfile via uv. If either import ever fails, the CLI logs a warning and continues without those tags so ingestion still works.

Workflow Example

# 1. Find a release that ships with SDH subtitles
cd /​home/​graham/​workspace/​experiments/​pi-mono/​.pi/​skills/​ingest-movie
./​run.sh search "There Will Be Blood"

# 2. Extract rage windows from the downloaded subtitles
./​run.sh scenes extract \
  --subtitle "/​home/​graham/​Downloads/​media/​movies/​There Will Be Blood (2007)/​blood.en.srt" \
  --tag rage \
  --video "/​home/​graham/​Downloads/​media/​movies/​There Will Be Blood (2007)/​There.Will.Be.Blood.2007.PROPER.1080p.BluRay.x264-ELBOWDOWN.mkv" \
  --clip-dir "./​clips/​there_will_be_blood_rage" \
  --output-json "./​clips/​there_will_be_blood_rage/​scenes.json"

# 3. Transcribe one of the clips with subtitles + metadata baked in
./​run.sh transcribe ./​clips/​there_will_be_blood_rage/​clip_01.mkv \
  --subtitle ./​clips/​there_will_be_blood_rage/​clip_01.srt \
  --emotion rage \
  --movie-title "There Will Be Blood" \
  --scene "Most explosive confrontation" \
  --characters "Daniel Plainview,Eli Sunday"

Batch Processing (Automated Pipeline)

For automated Horus persona training, use the batch commands to process multiple movies at once.

run.sh batch discover [--subtitles]

Scan media directories to create an inventory of available movies.

./​run.sh batch discover --subtitles
# Shows: Title | Size | Subtitle availability (✓ SDH, ✓, ✗)

run.sh batch plan [--emotion rage,sorrow] [--include-unavailable]

Create a processing manifest from built-in emotion-movie mappings (dogpile research).

./​run.sh batch plan --emotion camaraderie
# Creates batch_manifest.json with ready/​needs_subtitle/​not_in_library status

run.sh batch run --manifest batch_manifest.json [--dry-run]

Execute batch processing: extract → clip → transcribe → persona JSON.

./​run.sh batch run --manifest batch_manifest.json --dry-run  # Preview
./​run.sh batch run --manifest batch_manifest.json            # Execute

run.sh batch status

Show status of processed emotion exemplars.

./​run.sh batch status
# Shows: Emotion | Movies | Clips | Personas

Built-in Emotion Mappings

The batch system includes curated movie-emotion mappings from dogpile research:

EmotionActor ModelMovies
rageDaniel Day-LewisThere Will Be Blood, Sicario, No Country for Old Men
angerAl Pacino / Marlon BrandoThe Godfather, Heat, Apocalypse Now
sorrowRussell Crowe / Ken WatanabeGladiator, The Last Samurai, Schindler's List
regretGeorge CarlinYouTube standup, Full Metal Jacket
camaraderieJavier Bardem / Tom HanksDune, Dune Part Two, Band of Brothers, Saving Private Ryan, Fury

Agent-Friendly Commands

These commands are designed for easy use by project agents (like Horus) with integration into dogpile for research and agent-inbox for cross-project communication.

run.sh agent recommend <emotion> [--actor MODEL] [--library PATH]

Research movies with emotional scenes for TTS training. Returns abstracts, balanced reviews, and scene recommendations for agent evaluation.

# Research rage movies with DDL intensity
./​run.sh agent recommend rage --actor "DDL" --library /​mnt/​storage12tb/​media/​movies

# Output includes:
# - Actor model and voice tone for the emotion
# - BDI patterns (Belief/​Desire/​Intention) to match
# - Dogpile research results with movie abstracts and reviews
# - Local library availability check
# - Instructions for agent to respond with APPROVED/​QUEUE/​SKIP decisions

run.sh agent quick --movie PATH --emotion EMO --scene "desc" --timestamp "HH:MM:SS-HH:MM:SS"

Single-step extraction that consolidates the 6-step manual workflow:

  1. Download subtitles (if missing)
  2. Extract video clip
  3. Extract subtitle window
  4. Run Whisper transcription
  5. Create persona JSON
  6. Update inventory
./​run.sh agent quick \
  --movie "/​mnt/​storage12tb/​media/​movies/​Troy (2004)" \
  --emotion rage \
  --scene "Achilles beach landing" \
  --timestamp "01:15:30-01:17:00" \
  --output /​path/​to/​persona/​exemplars/​rage/

run.sh agent discover <library_path> [--emotion EMO] [--query TEXT]

Discover emotion-matching scenes in local media library by scanning subtitles.

./​run.sh agent discover /​mnt/​storage12tb/​media/​movies --emotion rage
# Outputs matching scenes with timestamps, ready for extraction

run.sh agent inventory [--emotion EMO] [--json]

Show inventory of processed clips across all sessions.

./​run.sh agent inventory
# Shows: Total clips, movies processed, clips per emotion, threshold status

run.sh agent request --to PROJECT --emotion EMO --desc "description"

Send clip extraction request to another project via agent-inbox.

./​run.sh agent request --to ingest-movie --emotion rage --desc "Need betrayal fury scenes" --count 5

run.sh agent recommend-book [--movie TITLE] [--emotion EMO] [--library PATH]

Recommend books to read before processing a movie for emotion extraction.

# Find source material for a specific movie
./​run.sh agent recommend-book --movie "Dune"

# Find thematically related books for an emotion
./​run.sh agent recommend-book --emotion rage --library ~/​library/​books

# Combined: find books related to movie AND emotion
./​run.sh agent recommend-book --movie "There Will Be Blood" --emotion rage

Why read before watching?

  • Understand character motivations and internal monologue
  • Note what was changed in the adaptation
  • Provide richer context for emotion extraction
  • Ground persona training in textual detail

See /​consume_common/​WORKFLOW.md for the complete book-before-movie pipeline.

Radarr Integration (Automated Acquisition)

Automatically acquire movies from curated emotion mappings using Radarr.

Horus TTS Preset

All downloads enforce:

  • 1080p maximum - No 4K (1080p sufficient for TTS voice extraction)
  • 15GB maximum file size - Prevents storage bloat
  • English audio required - For TTS training
  • SDH subtitles preferred - For emotion tagging

Radarr Configuration

Configure in Radarr UI before using:

  1. Settings > Profiles > Quality Profiles - Add "Horus TTS" profile:

    • Enable ONLY: Bluray-1080p, WEB 1080p, HDTV-1080p
    • Set Bluray-1080p Max Size: 15000 MB (15GB)
    • Disable all 4K qualities
  2. Settings > Custom Formats - Add "SDH Subtitles":

    • Condition: Release Title contains "SDH" OR "CC" OR "Subs"
    • Score: +100
  3. Settings > Profiles > "Horus TTS" - Set custom format scores:

    • SDH Subtitles = +100

run.sh acquire radarr [--preset horus_standard] [--emotion rage,sorrow]

Add missing movies to Radarr with enforced constraints.

# Use the recommended preset (1080p, 15GB max, English, SDH subs)
./​run.sh acquire radarr --preset horus_standard

# Preview what would be added
./​run.sh acquire radarr --preset horus_standard --dry-run

# Add only specific emotions
./​run.sh acquire radarr --preset horus_standard --emotion rage,anger

Dogpile Integration

Use /​dogpile with the movie_scenes preset for comprehensive movie research:

cd /​home/​graham/​workspace/​experiments/​pi-mono/​.pi/​skills/​dogpile
./​run.sh search "war movies betrayal scenes DDL intensity" --preset movie_scenes

The movie_scenes preset searches:

  • IMDB, Rotten Tomatoes, Metacritic for reviews
  • Letterboxd for community ratings
  • Sublikescript, IMSDB for scripts
  • OpenSubtitles for availability

Cross-Project Workflow (Horus Example)

Horus Agent                              ingest-movie Skill
     |                                          |
     |-- /​dogpile "rage movies" ------------------>
     |<-- Movie recommendations with reviews ------|
     |                                          |
     |-- "APPROVED: Troy - Achilles scene" ------->
     |                                          |
     |                  ./​run.sh agent quick    |
     |                  --movie Troy            |
     |                  --emotion rage          |
     |                  --timestamp 01:15-01:17 |
     |                                          |
     |<-- Persona JSON created, inventory updated -|
     |                                          |
     |-- Import to ArangoDB knowledge graph ------>

Sanity

./​sanity.sh   # Verifies Typer CLI + scenes helpers load

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View