Archilyzer · Source

archilyzer

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

commit 16f7d67465cf187c03c9fd9fd041e21204b02b84
parent b5026830894cf6ec9e302c0fdce422870f8f1816
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Sun,  4 Oct 2026 17:16:38 -0400

report-to-video: a src clip's log line ends at the file's end; the audio tier's notes say "many", not "every"

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Diffstat:
Mumtool/report-to-video/README.md | 4++--
Mumtool/report-to-video/build-video.mjs | 3++-
Mumtool/report-to-video/sources.mjs | 4++--
3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/umtool/report-to-video/README.md b/umtool/report-to-video/README.md @@ -171,7 +171,7 @@ order, and the first place holding the clip's **padded** span (its extent plus `--skip-fetch`, or a record with no page (`webpageUrl`) to fetch from. Being last, it never beats a picture already on disk. Without the rule a cut - would quietly lose its pictures to it: every transcribed video keeps an + would quietly lose its pictures to it: many transcribed videos keep an `audio.mp3`. Under `--no-network` an audio-only clip is satisfied — listed up front as playing from audio only, not as a miss. @@ -191,7 +191,7 @@ three-hour container. A raw-cache window is measured whole, as before, so no cached cut moves. umtool's bench lists tiers 2 and 3 through the same module (`clipWindowDirs`), with a container's span from its cue doc rather than an ffprobe, so what the bench calls fetched is what the build cuts from. (Not the -audio tier: the bench would call nearly every transcribed video fetched.) +audio tier: the bench would call every video that kept its sound fetched.) **A source with no picture plays under a poster.** Whatever a clip is cut from — the audio tier, a `src` that is an mp3 (below), a window with no video diff --git a/umtool/report-to-video/build-video.mjs b/umtool/report-to-video/build-video.mjs @@ -773,7 +773,8 @@ async function fetchClip(entry, meta, render, local, opts) { const file = LOCAL.file(entry); const duration = entry.srcDuration ?? (await probeMedia(file)).duration; EMIT("fetch", { - id: entry.id, video: clipLabel(entry), from, to, cached: true, source: "src", + id: entry.id, video: clipLabel(entry), from, to: Number.isFinite(duration) ? Math.min(to, duration) : to, + cached: true, source: "src", reuse: path.basename(file), local: file, window: [0, duration], }); return { diff --git a/umtool/report-to-video/sources.mjs b/umtool/report-to-video/sources.mjs @@ -22,7 +22,7 @@ // platform carries none), or a build that could not fetch one anyway // (`--no-network`, `--skip-fetch`, a record with no page to fetch from). Being // last, it never beats a picture already on disk; asked before the network, it -// is what plays a podcast. Every transcribed video keeps an `audio.mp3`, so +// is what plays a podcast. Many transcribed videos keep an `audio.mp3`, so // without the rule a cut would quietly lose its pictures to it. // // A window qualifies only if it holds the REQUESTED span whole -- the clip plus @@ -400,7 +400,7 @@ export async function resolveLocalSource(want, config = {}) { * `probe` decides a whole container's span. The bench passes a cheap one (the * cue doc's duration) and is asked only for a video that has a container. * - * Not the audio tier: nearly every transcribed video keeps its sound, and a + * Not the audio tier: many transcribed videos keep their sound, and a * bench that called each of those "fetched" would never offer a fetch. */ export async function corpusWindowsOf({ video, slug, channelsDir, probe = ffprobeSource }) {