Skip to content

Latest commit

 

History

History
605 lines (401 loc) · 8.49 KB

File metadata and controls

605 lines (401 loc) · 8.49 KB

Here’s your complete production-level PRD with:

✅ Product name StreamNova ✅ Global IPTV platform scope ✅ Stream validation system ✅ Required GitHub repos from iptv-org ecosystem ✅ Implementation-ready documentation

You can directly use this for:

  • GitHub README
  • Hackathon submission
  • Project proposal
  • Portfolio documentation

📄 Product Requirements Document (PRD)

🌍 StreamNova — Global Verified IPTV Streaming Platform


1. Executive Summary

Product Name

StreamNova

Tagline

Global Live TV — Verified Streams Only.


Product Overview

StreamNova is a global IPTV streaming platform that aggregates publicly available TV channels from the iptv-org open-source ecosystem and provides users with a reliable streaming experience by automatically detecting and filtering non-working or broken streams.

The platform enables users to browse and watch verified working channels across all countries and regions.


Vision

Build the world’s most reliable public IPTV discovery platform that provides global live television with automated stream validation and high-performance delivery.


Problem Statement

Existing IPTV repositories:

  • contain many broken streams
  • lack validation systems
  • provide poor discovery experience
  • require manual testing by users
  • lack region-based browsing UI

Solution

StreamNova will:

  • ingest global IPTV data
  • validate stream health automatically
  • remove non-working streams
  • provide global browsing interface
  • deliver high-performance streaming UI

Value Proposition

  • Verified working streams only
  • Global TV coverage
  • Automated stream health detection
  • Modern streaming experience
  • Production-grade architecture

2. Product Objectives

Business Goals

  • Build portfolio-grade distributed system
  • Demonstrate streaming architecture expertise
  • Enable open-source contribution

User Goals

  • Watch global channels easily
  • Avoid broken streams
  • Discover international TV

Technical Goals

  • Automated validation engine
  • Scalable architecture
  • Low-latency streaming

Success Metrics

  • ≥ 95% stream success rate
  • < 2s video startup time
  • < 5% broken stream exposure
  • ≥ 99% system uptime

3. Target Users

Global Viewer

  • Wants international channels
  • Needs reliable streams

Developer / Learner

  • Studies streaming systems
  • Uses as reference implementation

Hackathon Judge / Reviewer

  • Evaluates architecture complexity
  • Reviews system scalability

4. Required Data Sources (Core Repositories)

StreamNova depends on the following repositories from iptv-org.


Primary IPTV Streams Repository

Required Repo

👉 https://github.com/iptv-org/iptv

Usage

  • Global channel playlists
  • Country playlists
  • Stream URLs
  • Channel metadata

Example Playlists

https://iptv-org.github.io/iptv/index.m3u
https://iptv-org.github.io/iptv/countries/us.m3u
https://iptv-org.github.io/iptv/countries/in.m3u

Channel Metadata Database

Required Repo

👉 https://github.com/iptv-org/database

Usage

  • Channel logos
  • Language metadata
  • Categories
  • Country info

Electronic Program Guide (Future Feature)

Optional Repo

👉 https://github.com/iptv-org/epg

Usage

  • TV schedule data
  • Program information

Official IPTV API (Optional)

Optional Repo

👉 https://github.com/iptv-org/api

Usage

  • Structured channel data
  • Simplified integration

5. Features & Functional Requirements


⭐ Core Features (MVP)

Global Channel Aggregation

  • Fetch full IPTV playlist
  • Parse M3U files
  • Extract metadata
  • Store global channel index

Stream Validation Engine ⭐ (Core Differentiator)

  • Check stream availability
  • Validate manifest response
  • Detect timeouts
  • Filter broken streams
  • Store health status

Global Channel Directory

  • Country-based browsing
  • Region filtering
  • Language filtering
  • Category filtering

Streaming Player

  • HLS playback using HLS.js
  • Click-to-play
  • Stream fallback

Search System

  • Channel search
  • Region search
  • Category search

UI

  • Global channel explorer
  • Responsive layout

⭐ Advanced Features

  • Real-time stream health indicator
  • Channel popularity ranking
  • Recently validated streams
  • Favorites
  • Recently watched
  • Stream uptime score
  • Dark/light theme
  • Progressive Web App

⭐ Future Features

  • User authentication
  • Watch history
  • EPG integration
  • AI recommendations
  • Mobile app
  • Community reporting system

6. Non-Functional Requirements

Performance

  • < 2s page load
  • Smooth playback
  • Lazy loading

Scalability

  • Millions of channels
  • Distributed workers

Reliability

  • Continuous validation
  • Graceful failure handling

Security

  • HTTPS
  • Stream sanitization
  • Rate limiting

Accessibility

  • Keyboard navigation
  • Screen reader support

7. Technical Architecture


Frontend

  • Next.js (App Router)
  • React Server Components
  • TypeScript
  • Tailwind CSS
  • HLS.js player

Backend (Required)

Services

1. Playlist Ingestion Service

  • Pull IPTV data
  • Parse playlists
  • Normalize channels

2. Stream Validation Service ⭐

  • Test stream URLs
  • Classify health status
  • Update database

3. Channel API Service

  • Serve validated streams

4. Validation Scheduler

  • Periodic health checks

Infrastructure

  • Frontend → Vercel
  • Backend → Node.js / Express
  • Database → MongoDB / PostgreSQL
  • Worker Queue → Redis
  • Background Jobs → BullMQ / Workers

Data Flow

iptv-org repo
   ↓
Playlist ingestion
   ↓
Stream validation workers
   ↓
Database (verified streams)
   ↓
Next.js frontend
   ↓
User playback

8. System Design

Core Components

  • Playlist Parser
  • Validation Workers
  • Channel Database
  • API Layer
  • Streaming Player
  • Health Scheduler

Stream Validation Pipeline

  1. Fetch playlist
  2. Extract stream URL
  3. Test connection
  4. Validate manifest
  5. Record status
  6. Update channel health

Stream Health States

  • Working
  • Slow
  • Geo-blocked
  • Offline
  • Unknown

9. API Design

Get Channels

GET /api/channels

Filters:

country
region
language
category
status=working

Search

GET /api/channels/search?q=

Stream Health

GET /api/stream/:id/health

Example Response

{
  "id": "cnn_us",
  "name": "CNN",
  "country": "US",
  "category": "news",
  "streamUrl": "...",
  "healthStatus": "working",
  "uptimeScore": 94
}

10. UI / UX Requirements

Homepage

  • Global search
  • Region selector
  • Featured channels

Channel Explorer

  • Country list
  • Filters
  • Health badges

Player Page

  • Video player
  • Channel info
  • Health status

Admin Dashboard (future)

  • Validation logs
  • Stream metrics

11. Data Model

Channel Schema

Channel {
  id
  name
  country
  region
  language
  category
  logo
  streamUrl
  healthStatus
  uptimeScore
  lastChecked
}

Stream Health Schema

StreamHealth {
  streamId
  responseTime
  errorType
  status
  lastValidated
}

12. Deployment Strategy

  • Next.js → Vercel
  • Backend → Render / AWS
  • Database → MongoDB Atlas
  • Queue → Redis
  • CDN caching

13. Risks & Challenges

  • Geo-blocked streams
  • Provider rate limits
  • High validation cost
  • Stream instability
  • Legal compliance

14. Legal & Compliance

  • Only public IPTV streams used
  • No copyrighted hosting
  • Clear usage disclaimer
  • Respect regional restrictions

15. Analytics & Metrics

  • Stream success rate
  • Watch duration
  • Channel popularity
  • Validation failure rate
  • User engagement

16. Development Roadmap

Phase 1 — MVP

  • Playlist ingestion
  • Basic validation
  • Streaming player
  • Channel explorer

Phase 2

  • Automated monitoring
  • Health scoring
  • Region filters

Phase 3

  • Distributed workers
  • User features
  • Admin dashboard

17. Testing Strategy

  • Playlist parsing tests
  • Stream validation tests
  • Load testing
  • Playback reliability tests
  • Cross-browser testing

18. Project Complexity

Area Complexity
Frontend Medium
Backend High
Validation engine Very High
Overall system Advanced