A modern streaming website built with vanilla JavaScript and Express.
If you find this project useful, consider giving it a star — it helps others discover it and keeps the project going.
A full-featured streaming UI powered by TMDB metadata and VidKing embed player, with an Android TV app — built as a learning project.
| Feature | Description |
|---|---|
| TMDB Integration | Movie & TV metadata, search, genres, trending content |
| VidKing Player | Streaming playback via embed URLs |
| Responsive UI | Hero carousel, content rows, search, detail pages, my list |
| TV-Optimized | Keyboard/gamepad navigation, immersive fullscreen |
| Android TV App | WebView wrapper with landscape lock, back-button handling |
| Rate Limiting | Per-IP sliding window (150 req/min) with in-memory cache |
| One-Click Deploy | Vercel-ready with GitHub Actions for APK builds |
K/
├── public/ # Static frontend
│ ├── index.html # App shell
│ ├── css/ # Modular stylesheets
│ ├── js/ # Vanilla JS modules
│ ├── images/ # Assets
│ └── apk/ # Built Android APK
├── api/ # TMDB proxy (Vercel serverless)
├── tv-app/ # Android TV WebView app
│ └── app/ # Android source (Gradle)
├── server.js # Express server
├── config.js # Runtime config
├── vercel.json # Vercel deployment
└── package.json
- Node.js 18 or higher
- TMDB API key — get one at themoviedb.org
git clone https://github.com/vextalor-dev/K.git
cd K
npm installCreate a config.js file in the root:
module.exports = {
TMDB_API_KEY: 'your_tmdb_api_key_here',
PORT: 3000
};npm start
# → http://localhost:3000- Push to GitHub
- Import repo in Vercel
- Add
TMDB_API_KEYin Settings → Environment Variables - Deploy —
vercel.jsonhandles everything
Works on any Node.js host (Railway, Render, Fly.io, VPS). Just set TMDB_API_KEY and run npm start.
The tv-app/ directory contains a WebView wrapper:
- Loads the hosted site in fullscreen
- Landscape lock + immersive mode
- Back-button navigation
- HTML5 video fullscreen support
- Auto-built via GitHub Actions
See tv-app/README.md for build & signing instructions.
This project is strictly for educational and personal learning purposes.
- I do not promote, endorse, or facilitate any form of copyright infringement, piracy, or unauthorized streaming.
- This is a proof-of-concept demonstrating full-stack web development, API integration, and Android TV development.
- The codebase does not host, store, or distribute any copyrighted content. All streaming is handled by third-party embed providers (VidKing) over which this project has no control.
- You are solely responsible for how you deploy and use this code.
- Provided "AS IS" under AGPL-3.0. No warranty of any kind.
By using this project, you agree to these terms.
This project is licensed under the GNU Affero General Public License v3.0 — see the LICENSE file for details.