From 347deec6465a42f24154457fb05227418ee83385 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sat, 3 Oct 2026 13:38:13 -0700 Subject: Videos: know what a clip costs before fetching it; vertical clips only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - What a clip costs is learned up front: the post's imeta (size, dim, image) when it says, else one 64 KB ranged request — the total from Content-Range, whether ranges are served, whether the MP4's index (moov) comes before its data, and the picture size from the track header. Up to three at a time; remembered across sessions. It also replaces the player-based shape probe the feed ran on every clip. - Clips over 25 MB (8 MB on 2G/3G, 3 MB with data saver), above 1080p, index-last files over 8 MB from servers without ranges, or clips that couldn't be measured wait for a tap: a cover saying what they cost ("50 MB", "4K"). Settings → Nostr → Videos: Autoplay large videos. - The pager loads only the clip on screen in full; the next gets its opening if within budget; everything else holds nothing. Sizes are asked three slides ahead. - Feed clips fetch nothing until they're about to play (preload none), with the post's still as a poster. - Video grid tiles show a first frame only for small clips that start quickly; others show their cost. - Videos lists only clips known to stand taller than wide; one of unknown shape is measured and joins when it qualifies; choosing Videos with none known yet opens the pager on the first that turns up. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01ULQZS9MQa6iAsXnrJUD9Du --- src/i18n.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/i18n.js') diff --git a/src/i18n.js b/src/i18n.js index 932b552..e4d2429 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -257,6 +257,10 @@ const STR = { close: 'Close', playVideo: 'Play', videoUnmute: 'Unmute', + videoTapToPlay: "Tap to play", + videoLargeTitle: "Videos", + videoLargeToggle: "Autoplay large videos", + videoLargeHelp: "Videos over {mb} MB or above 1080p wait for a tap, so the feed doesn’t eat your data. The limit is lower on a slow or data-saving connection.", videoMute: 'Mute', openInYouTube: 'Open on YouTube', accountsThisOne: 'signed in', @@ -303,7 +307,7 @@ const STR = { mediaImages: "Images", mediaVideos: "Videos", mediaNoImages: "No pictures in this feed yet.", - mediaNoVideos: "No videos in this feed yet.", + mediaNoVideos: "No vertical videos in this feed yet.", feedRelays: 'Relays', feedRelaysFormHelp: 'Read this feed from these relays only. Leave empty for the usual ones.', feedAllToggle: 'Every post on these relays (a firehose)', -- cgit v1.2.3