Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit a6fa44f737ee52e55687e02814668b46b38823f4
parent c0cd64901dde1f8cbab99c335614ce9f2e3e88cf
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Tue, 18 Aug 2026 13:16:14 -0400

the 22 judged face crops, applied to all nine covers

/browse/faces shipped last session and the judging is done: 22 of 22 corners,
19 clean, 3 recrop, 0 rejects. A judgement only reaches a cover when the cover
is rebuilt, and none had been -- 13 of the 22 crops differ from what facecrop.py
would derive, which is 10 of the 16 corners on the four accepted covers
(yoshi 4/4, metal-slug 3/4, mario-rpg 2/4, mk-fatality 1/4).

Rebuilt through the real pipeline with REUSE=1, which reuses the manifest's four
corners rather than spending four new source episodes per cover out of a pool
the unique-face rule never refills. No new crop logic was needed: cropFor()
already prefers faces[key].crop and passes --crop to facecrop.py.

bgTime was omitted so the action-score picker chose a fresh frame -- the user
has said backgrounds need not stay consistent, so a re-picked frame is the
honest output of the pipeline rather than a number copied out of the old record.

The pokemon four are the exception and DO pass a bgTime. Their corners are
identical (catch/battle/battle2 share all four videos), so the background
timestamp was the only thing telling them apart; one picker over one bed
collapsed all four onto the same image. Each now gets a different separated
peak from the same scorer -- 10.22 / 43.43 / 63.86 / 150.71 -- so four variants
stay four variants. pokemon-run also gets its own output file: it and
pokemon-battle2 both wrote thumbs/pokemon-c-battle2.jpg with DIFFERENT corners,
so whichever ran last silently won and the file matched at most one of them.

Verified: all nine are 1280x720; each of the 36 judged corner placements was
re-cut independently from its source with facecrop.py --crop and compared
against the tile actually composited into the cover (diff 0.34-0.38, JPEG
requantisation only); the unique-face rule still holds across 4 covers / 16
videos. Old covers are in thumbs/.pre-recrop/.

Two corners are flagged recrop but their box was never moved --
KyzBZ19iRaU@403.50 and nr9bGYAjVpY@550.15, both "stream UI in frame". They read
as flagged-but-unfinished; neither is on an accepted cover, so they are applied
as-is rather than given a framing nobody chose.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Diffstat:
Mumtool/song/face-verdicts.json | 401+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mumtool/song/thumb-accepted.json | 140+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
Mumtool/song/thumb-manifest.json | 317+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
3 files changed, 792 insertions(+), 66 deletions(-)

diff --git a/umtool/song/face-verdicts.json b/umtool/song/face-verdicts.json @@ -14,6 +14,407 @@ "w": 300, "h": 300 } + }, + "eFU1WRc9lYM@78.14": { + "key": "eFU1WRc9lYM@78.14", + "video": "eFU1WRc9lYM", + "verdict": "clean", + "frameAt": 78.54, + "at": "2026-08-18T15:46:27.208Z", + "crop": { + "x": 213, + "y": 0, + "w": 720, + "h": 720 + }, + "auto": { + "x": 213, + "y": 0, + "w": 720, + "h": 720 + } + }, + "U8hsc6aSGdk@82.04": { + "key": "U8hsc6aSGdk@82.04", + "video": "U8hsc6aSGdk", + "verdict": "clean", + "frameAt": 81.24, + "at": "2026-08-18T15:46:30.647Z", + "crop": { + "x": 980, + "y": 109, + "w": 273, + "h": 273 + }, + "auto": { + "x": 980, + "y": 109, + "w": 273, + "h": 273 + } + }, + "rATxtI8FhxE@63.93": { + "key": "rATxtI8FhxE@63.93", + "video": "rATxtI8FhxE", + "verdict": "clean", + "frameAt": 63.93, + "at": "2026-08-18T15:42:28.795Z", + "crop": { + "x": 376, + "y": 81, + "w": 456, + "h": 456 + }, + "auto": { + "x": 383, + "y": 43, + "w": 451, + "h": 451 + } + }, + "knmVtqTW0MQ@253.89": { + "key": "knmVtqTW0MQ@253.89", + "video": "knmVtqTW0MQ", + "verdict": "clean", + "frameAt": 253.89, + "at": "2026-08-18T15:42:46.799Z", + "crop": { + "x": 939, + "y": 101, + "w": 331, + "h": 331 + }, + "auto": { + "x": 948, + "y": 101, + "w": 331, + "h": 331 + } + }, + "xEYsJorlvkw@679.86": { + "key": "xEYsJorlvkw@679.86", + "video": "xEYsJorlvkw", + "verdict": "clean", + "frameAt": 679.46, + "at": "2026-08-18T15:42:52.433Z", + "crop": { + "x": 961, + "y": 54, + "w": 304, + "h": 304 + }, + "auto": { + "x": 961, + "y": 54, + "w": 304, + "h": 304 + } + }, + "Dr1sWSSUspY@159.25": { + "key": "Dr1sWSSUspY@159.25", + "video": "Dr1sWSSUspY", + "verdict": "clean", + "frameAt": 160.05, + "at": "2026-08-18T15:43:18.236Z", + "crop": { + "x": 67, + "y": 17, + "w": 177, + "h": 177 + }, + "auto": { + "x": 69, + "y": 13, + "w": 183, + "h": 183 + } + }, + "TYPV_Ej1ND4@445.93": { + "key": "TYPV_Ej1ND4@445.93", + "video": "TYPV_Ej1ND4", + "verdict": "clean", + "frameAt": 445.93, + "at": "2026-08-18T15:43:38.252Z", + "crop": { + "x": 939, + "y": 110, + "w": 309, + "h": 309 + }, + "auto": { + "x": 963, + "y": 111, + "w": 316, + "h": 316 + } + }, + "UjzBIdbk2zY@583.17": { + "key": "UjzBIdbk2zY@583.17", + "video": "UjzBIdbk2zY", + "verdict": "clean", + "frameAt": 582.37, + "at": "2026-08-18T15:44:03.877Z", + "crop": { + "x": 937, + "y": 128, + "w": 312, + "h": 312 + }, + "auto": { + "x": 939, + "y": 108, + "w": 337, + "h": 337 + } + }, + "4RFFlS0oMEM@697.77": { + "key": "4RFFlS0oMEM@697.77", + "video": "4RFFlS0oMEM", + "verdict": "clean", + "frameAt": 697.77, + "at": "2026-08-18T15:44:10.147Z", + "crop": { + "x": 959, + "y": 129, + "w": 281, + "h": 281 + }, + "auto": { + "x": 959, + "y": 129, + "w": 281, + "h": 281 + } + }, + "KyzBZ19iRaU@403.50": { + "key": "KyzBZ19iRaU@403.50", + "video": "KyzBZ19iRaU", + "verdict": "recrop", + "frameAt": 403.1, + "at": "2026-08-18T15:44:22.041Z", + "code": 1, + "crop": { + "x": 35, + "y": 19, + "w": 199, + "h": 199 + }, + "auto": { + "x": 35, + "y": 19, + "w": 199, + "h": 199 + } + }, + "9nKl6HY2y4Y@134.26": { + "key": "9nKl6HY2y4Y@134.26", + "video": "9nKl6HY2y4Y", + "verdict": "clean", + "frameAt": 135.06, + "at": "2026-08-18T15:44:37.833Z", + "crop": { + "x": 74, + "y": 22, + "w": 172, + "h": 172 + }, + "auto": { + "x": 74, + "y": 18, + "w": 172, + "h": 172 + } + }, + "nr9bGYAjVpY@550.15": { + "key": "nr9bGYAjVpY@550.15", + "video": "nr9bGYAjVpY", + "verdict": "recrop", + "frameAt": 550.95, + "at": "2026-08-18T15:44:43.265Z", + "code": 1, + "crop": { + "x": 60, + "y": 28, + "w": 185, + "h": 185 + }, + "auto": { + "x": 60, + "y": 28, + "w": 185, + "h": 185 + } + }, + "bpQk0X2Ela4@615.83": { + "key": "bpQk0X2Ela4@615.83", + "video": "bpQk0X2Ela4", + "verdict": "clean", + "frameAt": 616.63, + "at": "2026-08-18T15:45:12.621Z", + "crop": { + "x": 67, + "y": 23, + "w": 172, + "h": 172 + }, + "auto": { + "x": 39, + "y": 28, + "w": 189, + "h": 189 + } + }, + "us3ktDhlC7w@131.23": { + "key": "us3ktDhlC7w@131.23", + "video": "us3ktDhlC7w", + "verdict": "clean", + "frameAt": 131.63, + "at": "2026-08-18T15:45:23.153Z", + "crop": { + "x": 927, + "y": 111, + "w": 296, + "h": 296 + }, + "auto": { + "x": 927, + "y": 111, + "w": 296, + "h": 296 + } + }, + "Z2Q87gaouqs@73.49": { + "key": "Z2Q87gaouqs@73.49", + "video": "Z2Q87gaouqs", + "verdict": "clean", + "frameAt": 73.49, + "at": "2026-08-18T15:45:31.800Z", + "crop": { + "x": 932, + "y": 98, + "w": 320, + "h": 320 + }, + "auto": { + "x": 936, + "y": 98, + "w": 320, + "h": 320 + } + }, + "acPLSEVKyqI@22.86": { + "key": "acPLSEVKyqI@22.86", + "video": "acPLSEVKyqI", + "verdict": "clean", + "frameAt": 22.86, + "at": "2026-08-18T15:45:35.040Z", + "crop": { + "x": 183, + "y": 33, + "w": 656, + "h": 656 + }, + "auto": { + "x": 183, + "y": 33, + "w": 656, + "h": 656 + } + }, + "f5sLSteRRTQ@1147.37": { + "key": "f5sLSteRRTQ@1147.37", + "video": "f5sLSteRRTQ", + "verdict": "clean", + "frameAt": 1146.57, + "at": "2026-08-18T15:45:37.711Z", + "crop": { + "x": 956, + "y": 120, + "w": 293, + "h": 293 + }, + "auto": { + "x": 956, + "y": 120, + "w": 293, + "h": 293 + } + }, + "e0d6EzTEt7Y@12.19": { + "key": "e0d6EzTEt7Y@12.19", + "video": "e0d6EzTEt7Y", + "verdict": "clean", + "frameAt": 12.59, + "at": "2026-08-18T15:45:55.264Z", + "crop": { + "x": 462, + "y": 81, + "w": 337, + "h": 337 + }, + "auto": { + "x": 377, + "y": 0, + "w": 533, + "h": 533 + } + }, + "lraibG7Iu5w@9.99": { + "key": "lraibG7Iu5w@9.99", + "video": "lraibG7Iu5w", + "verdict": "clean", + "frameAt": 9.59, + "at": "2026-08-18T15:46:05.823Z", + "crop": { + "x": 193, + "y": 63, + "w": 528, + "h": 528 + }, + "auto": { + "x": 95, + "y": 0, + "w": 720, + "h": 720 + } + }, + "Y7-19Q9gmfg@292.78": { + "key": "Y7-19Q9gmfg@292.78", + "video": "Y7-19Q9gmfg", + "verdict": "clean", + "frameAt": 291.98, + "at": "2026-08-18T15:46:12.953Z", + "crop": { + "x": 957, + "y": 117, + "w": 290, + "h": 290 + }, + "auto": { + "x": 966, + "y": 126, + "w": 290, + "h": 290 + } + }, + "g-OStFPhrlk@56.00": { + "key": "g-OStFPhrlk@56.00", + "video": "g-OStFPhrlk", + "verdict": "clean", + "frameAt": 56.4, + "at": "2026-08-18T15:46:23.823Z", + "crop": { + "x": 455, + "y": 34, + "w": 489, + "h": 489 + }, + "auto": { + "x": 365, + "y": 0, + "w": 642, + "h": 642 + } } } } \ No newline at end of file diff --git a/umtool/song/thumb-accepted.json b/umtool/song/thumb-accepted.json @@ -3,105 +3,205 @@ "thumbs": { "yoshi": { "out": "/home/user/reports/quartering-uh-song/thumbs/yoshi-c.jpg", - "bgAt": 98, + "bg": "/home/user/.claude/jobs/efbe67a7/tmp/song/intro/yoshi-bg.mp4", + "bgAt": 16.79, "corners": [ { "video": "e0d6EzTEt7Y", "srcStart": 12.19, - "frameAt": 12.59 + "frameAt": 12.59, + "crop": { + "x": 462, + "y": 81, + "w": 337, + "h": 337 + } }, { "video": "lraibG7Iu5w", "srcStart": 9.99, - "frameAt": 9.59 + "frameAt": 9.59, + "crop": { + "x": 193, + "y": 63, + "w": 528, + "h": 528 + } }, { "video": "Y7-19Q9gmfg", "srcStart": 292.78, - "frameAt": 291.98 + "frameAt": 291.98, + "crop": { + "x": 957, + "y": 117, + "w": 290, + "h": 290 + } }, { "video": "g-OStFPhrlk", "srcStart": 56, - "frameAt": 56.4 + "frameAt": 56.4, + "crop": { + "x": 455, + "y": 34, + "w": 489, + "h": 489 + } } ] }, "mario-rpg": { "out": "/home/user/reports/quartering-uh-song/thumbs/rpg-c.jpg", - "bgAt": 50, + "bg": "/home/user/.claude/jobs/efbe67a7/tmp/song/intro/smrpg-bg.mp4", + "bgAt": 63.36, "corners": [ { "video": "eFU1WRc9lYM", "srcStart": 78.14, - "frameAt": 78.54 + "frameAt": 78.54, + "crop": { + "x": 213, + "y": 0, + "w": 720, + "h": 720 + } }, { "video": "U8hsc6aSGdk", "srcStart": 82.04, - "frameAt": 81.24 + "frameAt": 81.24, + "crop": { + "x": 980, + "y": 109, + "w": 273, + "h": 273 + } }, { "video": "fUSzqEViwBw", "srcStart": 113, - "frameAt": 113 + "frameAt": 113, + "crop": { + "x": 980, + "y": 112, + "w": 300, + "h": 300 + } }, { "video": "rATxtI8FhxE", "srcStart": 63.93, - "frameAt": 63.93 + "frameAt": 63.93, + "crop": { + "x": 376, + "y": 81, + "w": 456, + "h": 456 + } } ] }, "metal-slug": { "out": "/home/user/reports/quartering-uh-song/thumbs/ms2-c.jpg", - "bgAt": 75, + "bg": "/home/user/.claude/jobs/efbe67a7/tmp/song/intro/ms2-play-bg.mp4", + "bgAt": 82.3, "corners": [ { "video": "knmVtqTW0MQ", "srcStart": 253.89, - "frameAt": 253.89 + "frameAt": 253.89, + "crop": { + "x": 939, + "y": 101, + "w": 331, + "h": 331 + } }, { "video": "xEYsJorlvkw", "srcStart": 679.86, - "frameAt": 679.46 + "frameAt": 679.46, + "crop": { + "x": 961, + "y": 54, + "w": 304, + "h": 304 + } }, { "video": "Dr1sWSSUspY", "srcStart": 159.25, - "frameAt": 160.05 + "frameAt": 160.05, + "crop": { + "x": 67, + "y": 17, + "w": 177, + "h": 177 + } }, { "video": "TYPV_Ej1ND4", "srcStart": 445.93, - "frameAt": 445.93 + "frameAt": 445.93, + "crop": { + "x": 939, + "y": 110, + "w": 309, + "h": 309 + } } ] }, "mortal-kombat-fatality": { "out": "/home/user/reports/quartering-uh-song/thumbs/mk-c-fight.jpg", - "bgAt": 98, + "bg": "/home/user/.claude/jobs/efbe67a7/tmp/song/intro/mk-bg-fatal3.mp4", + "bgAt": 53.66, "corners": [ { "video": "us3ktDhlC7w", "srcStart": 131.23, - "frameAt": 131.63 + "frameAt": 131.63, + "crop": { + "x": 927, + "y": 111, + "w": 296, + "h": 296 + } }, { "video": "Z2Q87gaouqs", "srcStart": 73.49, - "frameAt": 73.49 + "frameAt": 73.49, + "crop": { + "x": 932, + "y": 98, + "w": 320, + "h": 320 + } }, { "video": "acPLSEVKyqI", "srcStart": 22.86, - "frameAt": 22.86 + "frameAt": 22.86, + "crop": { + "x": 183, + "y": 33, + "w": 656, + "h": 656 + } }, { "video": "f5sLSteRRTQ", "srcStart": 1147.37, - "frameAt": 1146.57 + "frameAt": 1146.57, + "crop": { + "x": 956, + "y": 120, + "w": 293, + "h": 293 + } } ] } diff --git a/umtool/song/thumb-manifest.json b/umtool/song/thumb-manifest.json @@ -3,235 +3,460 @@ "thumbs": { "mortal-kombat": { "out": "/home/user/reports/quartering-uh-song/thumbs/mortal-kombat.jpg", - "bgAt": 740.8, + "bg": "/home/user/.claude/jobs/efbe67a7/tmp/song/intro/mk-bg.mp4", + "bgAt": 134.4, "corners": [ { "video": "UjzBIdbk2zY", "srcStart": 583.17, - "frameAt": 582.37 + "frameAt": 582.37, + "crop": { + "x": 937, + "y": 128, + "w": 312, + "h": 312 + } }, { "video": "4RFFlS0oMEM", "srcStart": 697.77, - "frameAt": 697.77 + "frameAt": 697.77, + "crop": { + "x": 959, + "y": 129, + "w": 281, + "h": 281 + } }, { "video": "KyzBZ19iRaU", "srcStart": 403.5, - "frameAt": 403.1 + "frameAt": 403.1, + "crop": { + "x": 35, + "y": 19, + "w": 199, + "h": 199 + } }, { "video": "9nKl6HY2y4Y", "srcStart": 134.26, - "frameAt": 135.06 + "frameAt": 135.06, + "crop": { + "x": 74, + "y": 22, + "w": 172, + "h": 172 + } } ] }, "mortal-kombat-fatality": { "out": "/home/user/reports/quartering-uh-song/thumbs/mk-c-fight.jpg", - "bgAt": 98, + "bg": "/home/user/.claude/jobs/efbe67a7/tmp/song/intro/mk-bg-fatal3.mp4", + "bgAt": 53.66, "corners": [ { "video": "us3ktDhlC7w", "srcStart": 131.23, - "frameAt": 131.63 + "frameAt": 131.63, + "crop": { + "x": 927, + "y": 111, + "w": 296, + "h": 296 + } }, { "video": "Z2Q87gaouqs", "srcStart": 73.49, - "frameAt": 73.49 + "frameAt": 73.49, + "crop": { + "x": 932, + "y": 98, + "w": 320, + "h": 320 + } }, { "video": "acPLSEVKyqI", "srcStart": 22.86, - "frameAt": 22.86 + "frameAt": 22.86, + "crop": { + "x": 183, + "y": 33, + "w": 656, + "h": 656 + } }, { "video": "f5sLSteRRTQ", "srcStart": 1147.37, - "frameAt": 1146.57 + "frameAt": 1146.57, + "crop": { + "x": 956, + "y": 120, + "w": 293, + "h": 293 + } } ] }, "yoshi": { "out": "/home/user/reports/quartering-uh-song/thumbs/yoshi-c.jpg", - "bgAt": 98, + "bg": "/home/user/.claude/jobs/efbe67a7/tmp/song/intro/yoshi-bg.mp4", + "bgAt": 16.79, "corners": [ { "video": "e0d6EzTEt7Y", "srcStart": 12.19, - "frameAt": 12.59 + "frameAt": 12.59, + "crop": { + "x": 462, + "y": 81, + "w": 337, + "h": 337 + } }, { "video": "lraibG7Iu5w", "srcStart": 9.99, - "frameAt": 9.59 + "frameAt": 9.59, + "crop": { + "x": 193, + "y": 63, + "w": 528, + "h": 528 + } }, { "video": "Y7-19Q9gmfg", "srcStart": 292.78, - "frameAt": 291.98 + "frameAt": 291.98, + "crop": { + "x": 957, + "y": 117, + "w": 290, + "h": 290 + } }, { "video": "g-OStFPhrlk", "srcStart": 56, - "frameAt": 56.4 + "frameAt": 56.4, + "crop": { + "x": 455, + "y": 34, + "w": 489, + "h": 489 + } } ] }, "mario-rpg": { "out": "/home/user/reports/quartering-uh-song/thumbs/rpg-c.jpg", - "bgAt": 50, + "bg": "/home/user/.claude/jobs/efbe67a7/tmp/song/intro/smrpg-bg.mp4", + "bgAt": 63.36, "corners": [ { "video": "eFU1WRc9lYM", "srcStart": 78.14, - "frameAt": 78.54 + "frameAt": 78.54, + "crop": { + "x": 213, + "y": 0, + "w": 720, + "h": 720 + } }, { "video": "U8hsc6aSGdk", "srcStart": 82.04, - "frameAt": 81.24 + "frameAt": 81.24, + "crop": { + "x": 980, + "y": 109, + "w": 273, + "h": 273 + } }, { "video": "fUSzqEViwBw", "srcStart": 113, - "frameAt": 113 + "frameAt": 113, + "crop": { + "x": 980, + "y": 112, + "w": 300, + "h": 300 + } }, { "video": "rATxtI8FhxE", "srcStart": 63.93, - "frameAt": 63.93 + "frameAt": 63.93, + "crop": { + "x": 376, + "y": 81, + "w": 456, + "h": 456 + } } ] }, "metal-slug": { "out": "/home/user/reports/quartering-uh-song/thumbs/ms2-c.jpg", - "bgAt": 75, + "bg": "/home/user/.claude/jobs/efbe67a7/tmp/song/intro/ms2-play-bg.mp4", + "bgAt": 82.3, "corners": [ { "video": "knmVtqTW0MQ", "srcStart": 253.89, - "frameAt": 253.89 + "frameAt": 253.89, + "crop": { + "x": 939, + "y": 101, + "w": 331, + "h": 331 + } }, { "video": "xEYsJorlvkw", "srcStart": 679.86, - "frameAt": 679.46 + "frameAt": 679.46, + "crop": { + "x": 961, + "y": 54, + "w": 304, + "h": 304 + } }, { "video": "Dr1sWSSUspY", "srcStart": 159.25, - "frameAt": 160.05 + "frameAt": 160.05, + "crop": { + "x": 67, + "y": 17, + "w": 177, + "h": 177 + } }, { "video": "TYPV_Ej1ND4", "srcStart": 445.93, - "frameAt": 445.93 + "frameAt": 445.93, + "crop": { + "x": 939, + "y": 110, + "w": 309, + "h": 309 + } } ] }, "pokemon-catch": { "out": "/home/user/reports/quartering-uh-song/thumbs/pokemon-a-catch.jpg", - "bgAt": 96.8, + "bg": "/home/user/.claude/jobs/efbe67a7/tmp/song/intro/pkmn-bg-full.mkv", + "bgAt": 10.22, "corners": [ { "video": "nr9bGYAjVpY", "srcStart": 550.15, - "frameAt": 550.95 + "frameAt": 550.95, + "crop": { + "x": 60, + "y": 28, + "w": 185, + "h": 185 + } }, { "video": "bpQk0X2Ela4", "srcStart": 615.83, - "frameAt": 616.63 + "frameAt": 616.63, + "crop": { + "x": 67, + "y": 23, + "w": 172, + "h": 172 + } }, { "video": "UjzBIdbk2zY", "srcStart": 583.17, - "frameAt": 582.37 + "frameAt": 582.37, + "crop": { + "x": 937, + "y": 128, + "w": 312, + "h": 312 + } }, { "video": "KyzBZ19iRaU", "srcStart": 403.5, - "frameAt": 403.1 + "frameAt": 403.1, + "crop": { + "x": 35, + "y": 19, + "w": 199, + "h": 199 + } } ] }, "pokemon-battle": { "out": "/home/user/reports/quartering-uh-song/thumbs/pokemon-b-battle.jpg", - "bgAt": 26, + "bg": "/home/user/.claude/jobs/efbe67a7/tmp/song/intro/pkmn-bg-full.mkv", + "bgAt": 43.43, "corners": [ { "video": "nr9bGYAjVpY", "srcStart": 550.15, - "frameAt": 550.95 + "frameAt": 550.95, + "crop": { + "x": 60, + "y": 28, + "w": 185, + "h": 185 + } }, { "video": "bpQk0X2Ela4", "srcStart": 615.83, - "frameAt": 616.63 + "frameAt": 616.63, + "crop": { + "x": 67, + "y": 23, + "w": 172, + "h": 172 + } }, { "video": "UjzBIdbk2zY", "srcStart": 583.17, - "frameAt": 582.37 + "frameAt": 582.37, + "crop": { + "x": 937, + "y": 128, + "w": 312, + "h": 312 + } }, { "video": "KyzBZ19iRaU", "srcStart": 403.5, - "frameAt": 403.1 + "frameAt": 403.1, + "crop": { + "x": 35, + "y": 19, + "w": 199, + "h": 199 + } } ] }, "pokemon-run": { - "out": "/home/user/reports/quartering-uh-song/thumbs/pokemon-c-battle2.jpg", - "bgAt": 45, + "out": "/home/user/reports/quartering-uh-song/thumbs/pokemon-d-run.jpg", + "bg": "/home/user/.claude/jobs/efbe67a7/tmp/song/intro/pkmn-bg-full.mkv", + "bgAt": 150.71, "corners": [ { "video": "nr9bGYAjVpY", "srcStart": 550.15, - "frameAt": 550.95 + "frameAt": 550.95, + "crop": { + "x": 60, + "y": 28, + "w": 185, + "h": 185 + } }, { "video": "bpQk0X2Ela4", "srcStart": 615.83, - "frameAt": 616.63 + "frameAt": 616.63, + "crop": { + "x": 67, + "y": 23, + "w": 172, + "h": 172 + } }, { "video": "e0d6EzTEt7Y", "srcStart": 12.19, - "frameAt": 12.59 + "frameAt": 12.59, + "crop": { + "x": 462, + "y": 81, + "w": 337, + "h": 337 + } }, { "video": "acPLSEVKyqI", "srcStart": 22.86, - "frameAt": 22.86 + "frameAt": 22.86, + "crop": { + "x": 183, + "y": 33, + "w": 656, + "h": 656 + } } ] }, "pokemon-battle2": { "out": "/home/user/reports/quartering-uh-song/thumbs/pokemon-c-battle2.jpg", - "bgAt": 45, + "bg": "/home/user/.claude/jobs/efbe67a7/tmp/song/intro/pkmn-bg-full.mkv", + "bgAt": 63.86, "corners": [ { "video": "nr9bGYAjVpY", "srcStart": 550.15, - "frameAt": 550.95 + "frameAt": 550.95, + "crop": { + "x": 60, + "y": 28, + "w": 185, + "h": 185 + } }, { "video": "bpQk0X2Ela4", "srcStart": 615.83, - "frameAt": 616.63 + "frameAt": 616.63, + "crop": { + "x": 67, + "y": 23, + "w": 172, + "h": 172 + } }, { "video": "UjzBIdbk2zY", "srcStart": 583.17, - "frameAt": 582.37 + "frameAt": 582.37, + "crop": { + "x": 937, + "y": 128, + "w": 312, + "h": 312 + } }, { "video": "KyzBZ19iRaU", "srcStart": 403.5, - "frameAt": 403.1 + "frameAt": 403.1, + "crop": { + "x": 35, + "y": 19, + "w": 199, + "h": 199 + } } ] }