Recently Written · git

subread-extension

Show your own .srt over a YouTube video, in time with it. Chrome and Firefox.

git clone https://github.com/equwal/subread-extension

Log | Files | Refs


commit bd382cb312c075a0b3576db3bfece20f52b69a76
equwal <truex@equwal.com>
2026-09-24 11:14:37 -0700

Show the 'He loved to dust his old grammars' line in the marquee tile

 store/graphics/marquee-1400x560.png | Bin 410709 -> 374680 bytes
 tools/graphics.py                   |  14 ++++++++++----
 2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/store/graphics/marquee-1400x560.png b/store/graphics/marquee-1400x560.png
index 716b6a0..cb9c9d5 100644
Binary files a/store/graphics/marquee-1400x560.png and b/store/graphics/marquee-1400x560.png differ
diff --git a/tools/graphics.py b/tools/graphics.py
index be83c4a..1e45c4a 100644
--- a/tools/graphics.py
+++ b/tools/graphics.py
@@ -37,10 +37,16 @@ def promo() -> None:
 
 def marquee() -> None:
     canvas = Image.new("RGB", (1400, 560), BG)
-    # The right side: the video area of a screenshot, with the book line on it.
-    shot = Image.open(OUT / "screenshot-1-moby-dick.png").convert("RGB").crop((230, 56, 1040, 686))
-    shot = shot.resize((round(shot.width * 480 / shot.height), 480), Image.LANCZOS)
-    canvas.paste(shot, (1400 - shot.width - 40, 40))
+    # The right side: the video area of screenshot 1. Screenshot 2 has the same frame, but its
+    # line is "He loved to dust his old grammars…" and its panel is open. Paste only the strip
+    # with that line over the line of screenshot 1.
+    box = (110, 56, 1155, 686)
+    strip = (box[0], 570, box[2], 616)
+    shot = Image.open(OUT / "screenshot-1-moby-dick.png").convert("RGB").crop(box)
+    line = Image.open(OUT / "screenshot-2-moby-dick-panel.png").convert("RGB").crop(strip)
+    shot.paste(line, (0, strip[1] - box[1]))
+    shot = shot.resize((round(shot.width * 440 / shot.height), 440), Image.LANCZOS)
+    canvas.paste(shot, (1400 - shot.width - 40, (560 - shot.height) // 2))
     draw = ImageDraw.Draw(canvas)
     i = icon(112)
     canvas.paste(i, (64, 96), i)