Device Apps2026Project demo
Cinelas TV — Self-Hosted Media Browser
A Google TV app that brings a personal media library, film discovery, and streaming-service links into one remote-friendly interface.
- Platforms
- Google TV · Self-hosted server
- Focus
- One discovery view · Playback or provider link · Personal watchlists
Project view
Product walkthroughs
Four short demonstrations, ordered by the clearest view of the core experience.
4 videos
- 01 · Start here
Open a streaming provider
Choose a streaming provider for a title outside the local library and open its Google TV app.
- 02
Search and play owned media
Search the personal catalogue and start streaming an owned title directly from Jellyfin.
- 03
Launch into a personal home screen
Launch Cinelas TV, choose a viewer profile, and browse with the remote.
- 04
Explore details and watch a trailer
Open a title to review its key details and preview the trailer before deciding what to watch.
The story
The problem
A personal media library and streaming subscriptions are usually spread across different apps, making it harder to see all available viewing options in one place.
What it delivers
I built a remote-friendly interface that plays locally owned media through Jellyfin and shows regional streaming providers for other titles. Users can open supported provider apps or save titles to their own lists.
At a glance
One discovery view
Browse films and series independently of any one streaming service’s catalogue.
Playback or provider link
Play items from the Jellyfin library or open a supported streaming-provider app.
Personal watchlists
Save titles to personal lists organised by viewer profile.
Built with
- React
- TypeScript
- Capacitor
- Android
- .NET
- PostgreSQL
- Jellyfin
- nginx
- Docker
- Raspberry Pi
- TMDB
TV-focused client
The React and Capacitor client handles the remote-control interface, while a Raspberry Pi hosts nginx, the .NET API, PostgreSQL, and Jellyfin.
Separate discovery and playback
TMDB supplies metadata and regional provider availability. Jellyfin serves personally owned media through proxied URLs, keeping catalogue discovery separate from local playback.
Continue exploring
More projects
- Security Lab2026Web Application Security: SQL Injection & XSSFrom HTTP enumeration to database extraction and session access in a deliberately vulnerable lab.
- Security Lab2025Linux Firewall Engineering: Filtering & Access ControlStateful forwarding, client-specific access, and ICMP rate limiting, with an evidence review of scan controls.
- Security Lab2026FRA CTF: Exfiltratören — Network Traffic ForensicsTracing a suspected data leak through FTP, email, and UDP traffic in FRA’s seven-flag challenge. Three flags documented.