A modern, accessible, and privacy-focused web player for the Ukrainian AI-translated edition of The Telegraph's "Ukraine: The Latest."
While official versions exist on Spotify and Apple Podcasts, they often require accounts, apps, or specific devices. This project serves as an "Unlocked Open Web" alternative:
- No Login Required: Instant access for anyone, anywhere.
- No App Download: Works purely in the browser on any device (Desktop, Android, iOS).
- Enhanced Discovery: Unlike standard players, this version includes Topic Filtering and Search to help researchers and listeners find specific updates (e.g., "Трамп", "НАТО", "Starlink") instantly.
- 🔍 Smart Search & Deep Linking:
- Episode Search: Find specific episodes instantly (e.g. search "#36" for Episode 36).
- Deep Links: Share links to specific episodes (
?ep=GUID) or exact timestamps (?ep=GUID&t=120) that auto-scroll and highlight. - Topic Filters: Filter by "Frontline Updates", "Geopolitics", and more.
- ⚡ Real-time RSS: Automatically fetches the latest episodes from the Acast feed.
- 💎 Premium UI: A "Glassmorphism" design inspired by modern iOS/macOS aesthetics, featuring dynamic animations and a responsive grid layout.
- 🎧 Pro Audio Controls:
- Queue System: Robust queue management with mobile badge notifications.
- Precision Playback: Variable speeds (0.5x to 2x), "Cinema Mode", and keyboard shortcuts.
- 🌍 Privacy First: No tracking, no cookies, no accounts. LocalStorage used only for your queue and history.
- Mobile Experience: Improved header layout, touch-friendly controls, and fixed queue visibility on small screens.
- Search Logic: Added strict search (
#2finds only Episode 2) vs broad search (2finds "2nd anniversary", etc.). - Sharing: Implemented intelligent sharing that respects your current playback position.
- Frontend: HTML5, CSS3 (Modern Flexbox/Grid), Vanilla JavaScript (ES6+).
- Data Handling: Client-side XML/RSS Parsing.
- Search Engine: Custom client-side indexing of episode metadata.
- Hosting: GitHub Pages.
- The "Signed URL" Problem: To avoid expiring links found in web scrapers, I identified the permanent Acast RSS source ID to ensure the player never breaks.
- CORS & Feed Parsing: Implemented an XML-to-JSON logic to handle cross-origin requests and allow for deep metadata extraction (like episode-specific cover art).
- Client-Side Translation: Solved the challenge of translating dynamic data without a backend by implementing a secure client-side fetch to a translation endpoint.
This is an unofficial fan project and is not affiliated with or endorsed by The Telegraph. All audio content and branding are copyright © The Telegraph. This project is built for educational and portfolio purposes to demonstrate frontend development and API integration skills.