Archilyzer · Source

archilyzer

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

commit cf7063defc170f96a4502f825afa97f328b6de81
parent 9a0daa6ce88dd3f26bc29ea48740b50ff768c19c
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Fri, 18 Sep 2026 17:26:53 -0400

report-video: a clip may override the burned-in title and date

The header prints the upload date of the ARCHIVED copy, which for a VOD
mirror is often years after the stream. A clip entry may now carry `date`
(the stream's own YYYY-MM-DD) and `title` (a display title); both absent
reproduces the old line byte for byte.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

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

diff --git a/umtool/report-to-video/README.md b/umtool/report-to-video/README.md @@ -221,7 +221,9 @@ thin chrome rather than overlaid by it: - **Header (`headerHeight`, 56 px).** The citation only — cleaned title · upload date · timestamp. No quote: the clip is already saying it, and burning in a - transcription of speech you can hear is noise. + transcription of speech you can hear is noise. A clip's own `title` and `date` + (`YYYY-MM-DD`) replace the record's cleaned title and upload date — for a + VOD-mirror channel that is how the header shows the *stream's* date. - **Footer (`footerHeight`, 100 px).** The timeline: one node per milestone, each with a label and a month/year stamp beneath it. Drawn once by `renderFooterAssets()`. diff --git a/umtool/report-to-video/build-video.mjs b/umtool/report-to-video/build-video.mjs @@ -533,11 +533,16 @@ async function buildClipSegment(entry, meta, render, dirs, opts, chrome, nodes, // Written for reference/diffing only — the quote is no longer drawn on screen. await writeFile(quotePath, wrap(`“${entry.quote}”`, 92), "utf8"); + // The header prints the upload date of the ARCHIVED copy, which for a VOD + // mirror is often years after the stream. A clip may carry `date` (the + // stream's own YYYY-MM-DD) and `title` (a display title) to override the + // record's; both absent reproduces the old line byte for byte. const d = meta.uploadDate; - const date = `${d.slice(0, 4)}-${d.slice(4, 6)}-${d.slice(6, 8)}`; + const date = entry.date ?? `${d.slice(0, 4)}-${d.slice(4, 6)}-${d.slice(6, 8)}`; + const title = entry.title ?? cleanTitle(meta.title); await writeFile( attribPath, - `${cleanTitle(meta.title)} · ${date} @ ${hms(entry.cite ?? entry.start)}`, + `${title} · ${date} @ ${hms(entry.cite ?? entry.start)}`, "utf8", );