Skip to content

Shubhamnpk/yotv

Repository files navigation

YoGuru TV (YoTV)

A modern, feature-rich IPTV streaming application built with React, TypeScript, and cutting-edge web technologies.

YoGuru TV React TypeScript Vite Tailwind CSS

🌟 Features

Core Features

  • 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

Settings & Customization

  • 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

User Experience

  • 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

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

  1. Clone the repository

    git clone https://github.com/Shubhamnpk/yotv.git
    cd yotv
  2. Install dependencies

    npm install
  3. Start development server

    npm run dev
  4. Build for production

    npm run build
  5. Preview production build

    npm run preview

πŸ› οΈ Tech Stack

Frontend Framework

  • React 18 - Modern React with concurrent features
  • TypeScript - Type-safe development
  • Vite - Fast build tool and dev server

UI & Styling

  • Tailwind CSS - Utility-first CSS framework
  • Radix UI - Accessible component primitives
  • Framer Motion - Smooth animations and transitions
  • Lucide React - Beautiful icon library

State Management

  • Zustand - Lightweight state management with persistence

Media & Streaming

  • HLS.js - HTTP Live Streaming for video playback
  • React Player - Universal media player component

Performance

  • React Virtual - Virtual scrolling for large lists
  • React Window - Efficient list rendering
  • React Intersection Observer - Lazy loading

Development Tools

  • ESLint - Code linting
  • PostCSS - CSS processing
  • Autoprefixer - CSS vendor prefixing

πŸ“ Project Structure

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

βš™οΈ Configuration

Environment Variables

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_id

Build Configuration

The project uses Vite for building. Configuration can be found in:

  • vite.config.ts - Vite configuration
  • tailwind.config.js - Tailwind CSS configuration
  • tsconfig.json - TypeScript configuration

🀝 Contributing

We welcome contributions! Please read our Contributing Guidelines before getting started.

Development Workflow

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature
  3. Make your changes and test thoroughly
  4. Run linting: npm run lint
  5. Commit your changes: git commit -m 'Add your feature'
  6. Push to your branch: git push origin feature/your-feature
  7. Create a Pull Request

Code Style

  • 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 lint before committing

πŸ“„ License

This project is licensed under the YoGuru Limited Contributor License v3 - see the LICENSE file for details.

Key License Points

  • βœ… 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

Support

πŸ™ Acknowledgments

  • 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

πŸ“Š Project Status

GitHub last commit GitHub issues GitHub pull requests


Built with ❀️ by Shubham Niraula

YoTV - Your Gateway to Global Television

About

A modern, feature-rich IPTV streaming application built with React, TypeScript, and cutting-edge web technologies.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors