Refuse non-media streams and gate video framing

This commit is contained in:
Fisto
2026-09-16 14:04:57 +02:00
parent c100bc269c
commit d522681553
5 changed files with 28 additions and 6 deletions
+6
View File
@@ -40,6 +40,12 @@ mobile draft at 390px.
- [x] C11 preview caching: Discord-hosted image/GIF previews (WebP 320px, hash-addressed, 5 MiB
cap, one attempt) run after every walk in both modes. Live run `...-20260916090722`:
`previewed: 2`; thumbs served over `/api/media/<scrape>/<item>/thumb` (200).
- [x] C27 Non-media stream guard. Rows awaiting backfill fell back to first-frame `<video>` with
a provider page URL (YouTube embed, redirectors), and the stream route piped the HTML through
(`text/html` errors). Now only real video files (mp4/webm/m4v) are framed, the stream route
returns `415` for non-media upstreams, the viewer's still-frame is gated the same way, and
"Open in new tab" prefers `play_url`. Live: YouTube item → 415 JSON; backfill reached
184/271 previews during the run.
- [x] C26 YouTube preview root cause. Dedupe picked the newest row per URL; a paused scrape
(`gernal_chut`, stopped mid-walk) had no previews yet and hid an older scrape that did. Fixes:
dedupe prefers the richer row (downloaded > preview > newer), paused walks still run the