From f6fd9f998831330e3a8819e294cdd8d15c1a87f6 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 23 Sep 2026 23:00:31 -0700 Subject: Videos play by themselves, muted, while on screen — with an Unmute button; YouTube too. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit An inline video starts as it scrolls into view (muted, the only way a browser lets a page start one), pauses as it leaves, and a corner button turns the sound on; the native controls' own mute keeps the button honest. A YouTube box loads its player muted once in view (enablejsapi, so the same button can unmute it over the iframe API) and pauses out of view; a tap on the poster still means sound. One IntersectionObserver watches every player. Data Saver keeps tap-to-play. Tests adapted to the feed's new admission rule (a row waits for its author's face and pictures): the markdown and post-actions tests seed the poster's profile and serve their pictures locally; a picture that cannot be decoded is now a link, by design. Co-Authored-By: Claude Fable 5.1 --- src/i18n.js | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/i18n.js') diff --git a/src/i18n.js b/src/i18n.js index 3307c19..46f26f5 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -219,6 +219,8 @@ const STR = { zapTallyTitle: '{n} sats zapped', close: 'Close', playVideo: 'Play', + videoUnmute: 'Unmute', + videoMute: 'Mute', openInYouTube: 'Open on YouTube', accountsThisOne: 'signed in', worthThen: 'Worth then', -- cgit v1.2.3