A modern, feature-rich IPTV streaming application built with React, TypeScript, and cutting-edge web technologies.
- IPTV Streaming: High-quality video streaming with HLS.js support
- Advanced Search: Voice recognition, expandable search, and smart suggestions
- Channel Management: Favorites, categories, and watch history
- Multi-language Support: Support for multiple languages and countries
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Theme System: 13+ built-in themes including system theme detection
- Custom Themes: Create and manage your own color schemes
- Player Controls:
- Autoplay, loop, and mute options
- Volume control and quality settings (Auto, Low, Medium, High, Ultra)
- Subtitle support with language selection
- Interface Settings:
- Grid size options (Small, Medium, Large)
- Animation preferences
- Compact mode
- Channel logo and numbering display
- Privacy Controls:
- Analytics and crash reporting toggles
- Data sharing preferences
- Virtual Scrolling: Efficient rendering of large channel lists
- Offline Support: Persistent settings and favorites
- Keyboard Navigation: Full keyboard accessibility
- Touch Optimized: Mobile-first responsive design
- Error Boundaries: Graceful error handling and recovery
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone https://github.com/Shubhamnpk/yotv.git cd yotv -
Install dependencies
npm install
-
Start development server
npm run dev
-
Build for production
npm run build
-
Preview production build
npm run preview
- React 18 - Modern React with concurrent features
- TypeScript - Type-safe development
- Vite - Fast build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Accessible component primitives
- Framer Motion - Smooth animations and transitions
- Lucide React - Beautiful icon library
- Zustand - Lightweight state management with persistence
- HLS.js - HTTP Live Streaming for video playback
- React Player - Universal media player component
- React Virtual - Virtual scrolling for large lists
- React Window - Efficient list rendering
- React Intersection Observer - Lazy loading
- ESLint - Code linting
- PostCSS - CSS processing
- Autoprefixer - CSS vendor prefixing
yotv/
βββ src/
β βββ api.ts # API utilities
β βββ App.tsx # Main application component
β βββ main.tsx # Application entry point
β βββ types.ts # TypeScript type definitions
β βββ components/ # React components
β β βββ layout/ # Layout components
β β βββ search/ # Search functionality
β β βββ player/ # Video player components
β β βββ channels/ # Channel management
β β βββ ... # Other feature components
β βββ store/ # State management
β β βββ useStore.ts # Zustand store configuration
β βββ hooks/ # Custom React hooks
β βββ utils/ # Utility functions
β βββ data/ # Static data files
βββ public/ # Static assets
βββ dist/ # Build output
βββ package.json # Project dependencies
Create a .env.local file in the root directory:
# Firebase Configuration (optional)
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain
VITE_FIREBASE_PROJECT_ID=your_project_idThe project uses Vite for building. Configuration can be found in:
vite.config.ts- Vite configurationtailwind.config.js- Tailwind CSS configurationtsconfig.json- TypeScript configuration
We welcome contributions! Please read our Contributing Guidelines before getting started.
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes and test thoroughly
- Run linting:
npm run lint - Commit your changes:
git commit -m 'Add your feature' - Push to your branch:
git push origin feature/your-feature - Create a Pull Request
- Follow the existing TypeScript and React patterns
- Use meaningful component and variable names
- Add proper TypeScript types
- Include comments for complex logic
- Run
npm run lintbefore committing
This project is licensed under the YoGuru Limited Contributor License v3 - see the LICENSE file for details.
- β Personal Use: Free for personal and non-commercial use
- β Contributions: Welcome under the license terms
- β Attribution: Must maintain attribution to original copyright holder
- β Commercial Use: Requires explicit written permission
- β Sublicensing: Not permitted without permission
- π Bug Reports: Create an issue
- π‘ Feature Requests: Create an issue
- π¬ Discussions: GitHub Discussions
- React Community - For the amazing ecosystem
- Open Source Contributors - For their valuable contributions
- HLS.js - For reliable video streaming
- Tailwind CSS - For the utility-first approach
Built with β€οΈ by Shubham Niraula
YoTV - Your Gateway to Global Television