Normalize YouTube Shorts links to watch URLs

This commit is contained in:
Fisto
2026-09-17 13:34:10 +02:00
parent 52049bf186
commit 8c72def863
6 changed files with 197 additions and 8 deletions
+8
View File
@@ -40,6 +40,14 @@ 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] C51 YouTube Shorts normalization. Shorts links broke the embedded player and View full
because the viewer needs `watch?v=`. Extraction now rewrites `youtube.com/shorts/<id>` (and
`m.`) to the watch form, the viewer also accepts `/shorts/<id>` defensively, and a one-time
`PRAGMA user_version` migration rewrites existing rows. The live archive had 45 shorts rows;
one collided with an already indexed watch URL and folded into it (preview fields merged,
message links moved) — the migration is idempotent and unit-tested, including the collision.
45 → 0 shorts rows, and the user's example `uAf18d7mrnU` is now
`watch?v=uAf18d7mrnU` with `embed/uAf18d7mrnU` as the play URL.
- [x] C50 Title backfill in the queue. YouTube-like rows (provider or URL matching
youtube/youtu.be) without a title are now a second work type in the backfill queue: resolved
through the provider oEmbed, stored as `title`/`title_key`, with `title_attempts` and