fix+feat: RSS feed repairs, HLS native playback, summarization cache fix, embed improvements#452
Merged
fix+feat: RSS feed repairs, HLS native playback, summarization cache fix, embed improvements#452
Conversation
…ript - Replace 16 dead feeds (404/403/timeout) with working alternatives (Google News proxies or corrected direct RSS endpoints) - Replace 6 empty feeds with correct RSS paths (VnExpress, Tuoi Tre, Live Science, Greater Good, News24, ScienceDaily) - Replace 3 stale feeds (CNN World, TVN24, Layoffs.fyi) with active sources - Remove Disrupt Africa (inactive since Jan 2024) - Add scripts/validate-rss-feeds.mjs to check all 420 feeds - Add test:feeds npm script
Direct HLS feeds bypass YouTube's expiring tokenized URLs and iframe cookie issues on WKWebView. 10 channels (Sky, DW, France24, Euronews, Al Arabiya, Al Jazeera, CBS News, TRT World, Sky News Arabia, Al Hadath) now play via native <video> on desktop with automatic YouTube fallback when CDN feeds are down (5-min cooldown). Also: - Fix euronews handle typo (@euabortnews → @euronews) - Fix TRT World handle (@taborrtworld → @trtworld) - Add fallbackVideoId to CBS News, Sky News Arabia, TRT World - Extract hlsManifestUrl from YouTube API for non-mapped channels - Add sidecar /api/youtube-embed endpoint (auth-exempt for iframes) - Switch webcam/embed iframes from cloud to local sidecar origin - CSP: allow frame-src http://127.0.0.1:* for sidecar embeds - Remove legacy WEBKIT_FORCE_SANDBOX env var (deprecated in WebKitGTK) - Add 37 tests covering HLS map integrity, decision tree ordering, cooldown logic, race safety, service layer, sidecar endpoint, and CSP
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
… key collision When breaking news appeared across multiple panels (World, US, Europe, Middle East), all panels generated identical cache keys because geoContext was always undefined. The first panel's summary was served to all others.
…nnel fallbacks - Sidecar YouTube embed: use mute param (not hardcoded), add play overlay for WKWebView autoplay fallback, add postMessage bridge for play/pause/ mute/unmute commands matching the cloud embed handler - Webcam iframes: only set allowFullscreen on web to prevent grid-breaking fullscreen on desktop click - Optional channels: add fallbackVideoId + useFallbackOnly for livenow-fox, abc-news, nbc-news, wion so they play instead of showing "not currently live" - Tests: 9 new assertions covering mute param, postMessage bridge, play overlay, yt-ready message, and optional channel fallback coverage (46 total)
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
facusturla
pushed a commit
to facusturla/worldmonitor
that referenced
this pull request
Feb 27, 2026
…fix, embed improvements (koala73#452) * fix(feeds): replace 25 dead/stale RSS URLs and add feed validation script - Replace 16 dead feeds (404/403/timeout) with working alternatives (Google News proxies or corrected direct RSS endpoints) - Replace 6 empty feeds with correct RSS paths (VnExpress, Tuoi Tre, Live Science, Greater Good, News24, ScienceDaily) - Replace 3 stale feeds (CNN World, TVN24, Layoffs.fyi) with active sources - Remove Disrupt Africa (inactive since Jan 2024) - Add scripts/validate-rss-feeds.mjs to check all 420 feeds - Add test:feeds npm script * feat(live-news): use stable CDN HLS feeds for desktop native playback Direct HLS feeds bypass YouTube's expiring tokenized URLs and iframe cookie issues on WKWebView. 10 channels (Sky, DW, France24, Euronews, Al Arabiya, Al Jazeera, CBS News, TRT World, Sky News Arabia, Al Hadath) now play via native <video> on desktop with automatic YouTube fallback when CDN feeds are down (5-min cooldown). Also: - Fix euronews handle typo (@euabortnews → @euronews) - Fix TRT World handle (@taborrtworld → @trtworld) - Add fallbackVideoId to CBS News, Sky News Arabia, TRT World - Extract hlsManifestUrl from YouTube API for non-mapped channels - Add sidecar /api/youtube-embed endpoint (auth-exempt for iframes) - Switch webcam/embed iframes from cloud to local sidecar origin - CSP: allow frame-src http://127.0.0.1:* for sidecar embeds - Remove legacy WEBKIT_FORCE_SANDBOX env var (deprecated in WebKitGTK) - Add 37 tests covering HLS map integrity, decision tree ordering, cooldown logic, race safety, service layer, sidecar endpoint, and CSP * fix(summarization): pass panelId as geoContext to prevent Redis cache key collision When breaking news appeared across multiple panels (World, US, Europe, Middle East), all panels generated identical cache keys because geoContext was always undefined. The first panel's summary was served to all others. * fix(desktop): sidecar embed autoplay, webcam fullscreen, optional channel fallbacks - Sidecar YouTube embed: use mute param (not hardcoded), add play overlay for WKWebView autoplay fallback, add postMessage bridge for play/pause/ mute/unmute commands matching the cloud embed handler - Webcam iframes: only set allowFullscreen on web to prevent grid-breaking fullscreen on desktop click - Optional channels: add fallbackVideoId + useFallbackOnly for livenow-fox, abc-news, nbc-news, wion so they play instead of showing "not currently live" - Tests: 9 new assertions covering mute param, postMessage bridge, play overlay, yt-ready message, and optional channel fallback coverage (46 total)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Commits
855438dcfix(feeds): replace 25 dead/stale RSS URLs and add feed validation scriptce5448c9feat(live-news): use stable CDN HLS feeds for desktop native playbackb2935c20fix(summarization): pass panelId as geoContext to prevent Redis cache key collision964e2150fix(desktop): sidecar embed autoplay, webcam fullscreen, optional channel fallbacksTest plan
npx tsc --noEmitpasses