StreamLink — Devlog #1
🚀 Project Overview
StreamLink is a lightweight, cross-platform desktop application built to streamline how users discover movies and TV shows, manage personal watchlists, and launch streaming options or official trailers instantly.
🛠️ Tech Stack
- Desktop Core: Electron.js / Node.js
- Frontend: HTML5, Modern CSS3 (CSS Grid/Flexbox), Vanilla JavaScript
-
APIs & Services:
- OMDb API — Movie/TV metadata & poster retrieval
- JustWatch — External streaming provider routing
- YouTube — Official trailer query integration
✨ Key Features Built
1. Dynamic Search & Multi-Page Fetching
- Built a asynchronous fetch pipeline integrated with OMDb API.
- Implemented request debouncing on search input to optimize network calls and avoid rate limits.
2. Format Filtering
- Added client-side category filtering allowing users to isolate Movies Only or TV Series Only in real time.
3. Persistent Local Watchlist
- Implemented a client-side bookmarking engine using
localStorage. - Users can star/unstar titles from any view, with data persisting across application restarts without requiring external database authentication.
4. Fast External Routing
- Integrated Electron’s
shell.openExternalIPC module to launch streaming platforms and trailer searches directly in the user’s default browser. - Bypasses
<iframe>and embed restrictions (such as YouTube Error 153) while delivering instant playback.
5. UI Resilience & Fallbacks
- Handled broken image URLs with custom
onerrorimage fallbacks to ensure clean card grid renders at all times.
📝 Learning Points & Challenges
-
iFrame Embed Restrictions: Enlisted fallback routing via
shell.openExternalafter encountering YouTube embed blocks (Error 153) and public API latency inside Electron windows. - Electron Window Handling: Configured custom User-Agent headers and tuned node integration preferences for secure local data operations.
🎯 Next Steps
- Add genre-based tagging and sorting options.
- Implement local cache for poster images to reduce startup fetch times.
-
Build a packaged production executable (
.exe) usingelectron-builder.