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.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.