Sonata

LibreTV на Next.js: агрегатор онлайн-видео, IPTV и подписки на источники

LibreTV — бесплатная платформа для агрегированного поиска и просмотра онлайн-видео, перенесённая на Next.js 15 (App Router) с TypeScript и Tailwind CSS. Плеер построен на ArtPlayer и hls.js, интерфейс поддерживает светлую и тёмную темы, есть установка как PWA.

Поиск идёт параллельно по нескольким источникам на сервере, а одноимённые фильмы объединяются в одну карточку. В плеере есть фильтрация рекламных фрагментов, автовоспроизведение, ускорение, горячие клавиши и долгое нажатие для 3-кратной скорости на мобильных. Прогресс хранится в IndexedDB, доступны смена источника с тестом скорости и скачивание серии.

Отдельный раздел посвящён прямым трансляциям и IPTV: разбор M3U-подписок, группы и поиск каналов, HLS и HTTP-FLV, программа передач XMLTV и избранное. Источники можно проверять на работоспособность, неработающие автоматически отключаются, а списки подписываются через JSON LibreTV-SourceList или конфигурацию TVBox (Spider-сайты пропускаются). Рекомендации на главной берутся из Douban, Bangumi и рейтингов.

Важно: в продакшене сайт нужно открывать только по HTTPS (кроме localhost), иначе браузер отбросит cookie сессии и вход по паролю не сработает. Для этого используйте Nginx, Caddy, Traefik или Cloudflare. Образы доступны в GHCR и Docker Hub для двух архитектур, а настройка идёт через переменные окружения: пароль, таймауты, число страниц поиска, предустановленные источники.

Проект не содержит каналов и не хранит контент: он лишь разбирает сторонние публичные плейлисты, а за законность отвечают их источники. Доступ к внутренним адресам для прямых трансляций по умолчанию закрыт защитой от SSRF и включается отдельной переменной.

GitHub ★ 18,168

Загрузка страницы