Skip to content

maks-mk/iptv_fastapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IPTV Плеер с FastAPI

Современный IPTV-плеер на FastAPI и HLS.js. Просмотр телеканалов из m3u-плейлистов в удобном веб-интерфейсе с поиском, фильтрацией, адаптацией под мобильные устройства и только тёмной темой.

IPTV плеер Python FastAPI HLS.js

Основные возможности

  • 📺 Воспроизведение IPTV-каналов в браузере
  • 📱 Полностью адаптивный дизайн для мобильных устройств
  • 🌑 Только тёмная тема (ночной режим)
  • 🔍 Поиск каналов по названию
  • 📂 Фильтрация по категориям
  • 🔄 Проксирование потоков для обхода CORS-ограничений
  • 🎮 Переключение качества для HD-каналов
  • 🚀 Поддержка HLS-потоков
  • 🎞️ Улучшенная буферизация и автоматическое восстановление при зависании потока
  • 📊 Логотипы каналов и информационная панель
  • 🌐 Автоматическая загрузка и обновление плейлиста с удалённого URL
  • 🕒 Кэширование плейлиста и потоков для ускорения работы
  • 🛠️ Эндпоинты для ручного обновления плейлиста и очистки кэша
  • 🔢 Отображение количества каналов и времени последнего обновления плейлиста
  • 🆕 Кнопка "Обновить" с анимацией и подсветкой изменений
  • 🆕 Удобные кнопки вызова бокового меню на мобильных устройствах
  • 🆕 Нет автовоспроизведения последнего канала при загрузке (только ручной выбор)

Структура проекта

iptv_fastapi/
│
├── main.py          # FastAPI сервер с проксированием и API
├── requirements.txt # Зависимости
├── product.md       # Инструкция по развертыванию в production
├── templates/
│   └── index.html   # HTML + JavaScript клиент
└── static/
    └── style.css    # Стили интерфейса

Установка и запуск

Требования:

  • Python 3.7+
  • Доступ к интернету (для загрузки плейлиста)

Установка:

  1. Клонируйте репозиторий:
git clone <ссылка-на-репозиторий>
cd iptv_fastapi
  1. Установите зависимости:
pip install -r requirements.txt
  1. Запустите сервер:
gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app --bind 0.0.0.0:8080

или для разработки:

uvicorn main:app --reload
  1. Откройте в браузере: http://localhost:8080

  2. Для развертывания в production среде на Ubuntu с Apache2, обратитесь к инструкции в файле product.md.

Использование

  1. Выбор канала: Найдите канал в списке слева или воспользуйтесь поиском. На мобильных используйте плавающую кнопку меню или кнопку в шапке для вызова списка каналов.
  2. Фильтр по категориям: Выберите категорию из выпадающего списка
  3. Управление плеером:
    • Кнопка "Выкл. звук" — отключает звук
    • Кнопка "Полный экран" — разворачивает плеер на весь экран (на мобильных — отдельная кнопка выхода)
    • Кнопка "Качество" — позволяет выбрать разрешение для HD-каналов
  4. Статистика:
    • В шапке отображается количество каналов и время последнего обновления плейлиста
    • Для ручного обновления используйте кнопку "Обновить" — она покажет анимацию и подсветит изменения

Работа с плейлистом

  • Плейлист загружается автоматически с URL: https://gitlab.com/iptv135435/iptvshared/raw/main/IPTV_SHARED.m3u
  • Кэшируется на 6 часов для ускорения работы.
  • Для принудительного обновления используйте кнопку "Обновить" или эндпоинт /refresh-playlist (локально)

API и сервисные эндпоинты

  • /channels — получить список каналов, категорий и время последнего обновления
  • /proxy?url=... — проксирование потоков и плейлистов (с добавлением параметра _nocache)
  • /clear-cache — очистить кэш потоков (локально)
  • /refresh-playlist — обновить плейлист вручную (локально)
  • /health — проверка работоспособности

Особенности и UX

  • Только тёмная тема (цвета интерфейса не зависят от настроек системы)
  • Мобильный интерфейс: крупные кнопки, плавающее меню, быстрый доступ к списку каналов
  • Нет автовоспроизведения: канал начинает играть только после клика
  • Кнопка "Обновить" всегда даёт обратную связь (анимация, подсветка, сообщение)
  • Быстрый выход из полноэкранного режима на мобильных (отдельная кнопка)

Лицензия

Проект распространяется под MIT-лицензией. Подробности в файле LICENSE.

Техническая поддержка

При возникновении проблем или для получения дополнительной информации, пожалуйста, создайте Issue в репозитории проекта.

About

MaksIPTV Player - fastapi

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors