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:
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",
);