StreamWave TV is a modern web application for browsing and watching live TV channels from around the world through publicly available IPTV streams.
🌐 Live Website: https://streamwavetv.online
The platform provides a fast, Netflix-style interface to explore channels by region and category, search channels instantly, and stream them directly in the browser.
- Watch live IPTV channels directly in the browser.
- Supports HLS (.m3u8) streams using Hls.js.
- Automatic playback and buffering handling.
- Automatically detects the user's region based on IP.
- Shows channels available for the detected country.
- Real-time search for channels.
- Results update dynamically as you type.
- Tracks channel popularity using Redis sorted sets.
- Displays trending channels globally and per region.
- Built using Next.js App Router.
- Optimized server rendering and caching.
- Redis used for analytics and trending logic.
- Works smoothly on desktop and mobile.
- Mobile navigation drawer and optimized video player controls.
-
HLS streaming support.
-
Playback controls including:
- Play / Pause
- Volume slider
- Fullscreen
- Timeline seek bar
- Buffering indicators
| Technology | Usage |
|---|---|
| Next.js 15 (App Router) | Fullstack React framework |
| TailwindCSS | Styling |
| Hls.js | Streaming HLS video |
| Upstash Redis | Trending analytics & deduplication |
| Axios | API requests |
| Vercel | Deployment & hosting |
streamwavetv/
├── .gitignore
├── eslint.config.mjs
├── jsconfig.json
├── LICENSE
├── next.config.mjs
├── package-lock.json
├── package.json
├── postcss.config.mjs
├── public/
│ └── robots.txt
├── README.md
└── src/
└── app/
├── api/
│ ├── increaseCount/
│ │ └── route.js
│ └── viewCount/
│ └── route.js
├── channel/
│ └── [id]/
│ └── page.js
├── favicon.ico
├── globals.css
├── layout.js
├── loading.js
├── Navbar.js
├── page.js
├── play/
│ └── [id]/
│ ├── page.js
│ └── Stream.js
├── search/
│ └── page.js
├── sitemap.js
└── utils/
├── Channel.js
├── Loader.js
└── Section.js
git clone https://github.com/SomeTroller77/streamwavetv.git
cd streamwavetvnpm installCreate a .env.local file:
UPSTASH_REDIS_REST_URL=your_upstash_url
UPSTASH_REDIS_REST_TOKEN=your_upstash_token
npm run devOpen:
http://localhost:3000
Note:- Before using the application, you will need to change the base url that was used to fetch the trending channels in src/app/page.js as per your need
This project uses public IPTV metadata from:
Used datasets include:
channels.jsonstreams.jsoncategories.jsonlogos.jsoncountries.json
StreamWave TV does not host or own any media streams.
The platform only aggregates publicly available IPTV streams and metadata.
Some streams may be:
- geo-restricted
- unavailable
- DRM protected
Streams that require DRM or encryption are intentionally not supported.
Planned features include:
- Channel program schedules (EPG)
- Better SEO indexing
- Channel popularity ranking improvements
- Improved caching strategies
- More advanced anti-spam analytics
- Channel recommendations
Created by Saksham Vitwekar
GitHub: https://github.com/SomeTroller77
If you like this project:
- ⭐ Star the repository
- 🍴 Fork it
- 🧑💻 Contribute improvements