From 49a557e4c7118b6457c251ea2cb642ded709999c Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Mon, 24 Aug 2026 07:59:18 +0000 Subject: Mark YouTube embeds backlog item done Audit found the code already fully implements this (and further than scoped: in-app playback via a sandboxed player, not just an external hand-off) -- the backlog entry was stale. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_017GMEkHeqKz6FLkmizowBTK --- BACKLOG.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/BACKLOG.md b/BACKLOG.md index 559113c..0bab24b 100644 --- a/BACKLOG.md +++ b/BACKLOG.md @@ -35,18 +35,21 @@ relying on manual tagging carried over from another tool. logic — that's a manual research task when a feed's actually declared dead, not something to build detection for. -## YouTube embeds +## YouTube embeds (done) **Motivation:** the reader's WebView runs with JavaScript off (feed/extracted content never needs it, and it keeps articles from running arbitrary -scripts) — so a YouTube iframe embedded in an article currently just shows +scripts) — so a YouTube iframe embedded in an article used to just show as a broken/blank box instead of a playable video or thumbnail. -**Rough shape (not yet built):** detect a YouTube iframe/embed URL in the -extracted or feed-provided HTML and swap it for a tap-to-play thumbnail -(image + play button) that opens the video in the YouTube app/browser on -tap, rather than trying to make the embed actually play inline (which would -mean turning JS back on for untrusted third-party content). +**Built, and further than originally scoped:** `ReaderExtractor` detects a +YouTube iframe/embed during extraction and swaps it for a tap-to-play +thumbnail (an `hq720` still + a "▶ Watch on YouTube" caption). Tapping it +doesn't just hand off to the YouTube app/browser as originally planned — +`ReaderWebView.YouTubePlayerDialog` plays it in-app via a sandboxed +`youtube-nocookie.com` WebView (JS/DOM storage enabled only inside that one +dialog, main-frame navigation locked to YouTube's own domains), so watching +a video doesn't leave the reader. ## Bottom action strip (partially done) -- cgit v1.2.3