You are browsing as a guest. Sign up (or log in) to start making projects!

51m 37s logged

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.openExternal IPC 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 onerror image fallbacks to ensure clean card grid renders at all times.

๐Ÿ“ Learning Points & Challenges

  • iFrame Embed Restrictions: Enlisted fallback routing via shell.openExternal after 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) using electron-builder.
0
7

Comments 0

No comments yet. Be the first!