BGPVR Ръководство за оператора
Ръководство за оператора

Публичен плейлист Pro

Нужен е лиценз Pro или по-висок.

Агрегатор за публични IPTV списъци (iptv-org и подобни): изтегля M3U списъци от трети страни, филтрира ги по държава, проверява потоците за работоспособност и сервира обединения резултат като един M3U без автентикация на /api/public/playlist.m3u. Напълно отделен от Канали и от Стриймове — нищо оттук никога не се предлага на абонатите като част от пакет.

На тази страница
  1. Включване на модула и намиране на изгледа
  2. Добавяне на източници
  3. Проверка на потоците
  4. Публикуване и филтриране на плейлиста
  5. Поддържане на списъка подреден
  6. Внимание

Включване на модула и намиране на изгледа

Модули → Помощни инструменти → отметнете „Агрегатор на публични плейлисти“ → Запази. Подпанелът показва Публичен M3U адрес с бутон Копирай и връзка „Управление на източници →“. Елементът Публичен плейлист в лявата навигация остава скрит, докато тази настройка не е 1, и то само за ролята admin.

Добавяне на източници

Горната лента → „Добави източник“ → Наименование, URL на източника, по желание Филтър по държава (кодове, разделени със запетая, напр. BG,UK; празно означава импорт на всичко). Ако поставите URL на GitHub папка, се появява бутон „Прегледай“, който изброява .m3u файловете в това дърво, за да ги добавите наведнъж. Горната лента → „Качи M3U“ вместо това регистрира локален файл като източник (опресняването не прави нищо при качени източници). Изтеглянето върви във фонов режим — колоните Канали и Последно извлечен на реда се попълват няколко секунди по-късно.

Проверка на потоците

За отделен източник: бутонът с пулс на реда („Тест на потоци“) показва лента на напредъка готови/общо в реално време. За всички наведнъж: горната лента → „Провери всички“ ги обработва един по един на сървъра. Резултатите се показват като брой Активни / Неработещи / Геоблокирани за всеки източник, както и като допълнителни статистически карти в горната част. HTTP 451, а също и 403 с гео-ключова дума в тялото, се класифицират като геоблокирани, а не като неработещи.

Публикуване и филтриране на плейлиста

Копирайте Публичния адрес от картата в горната част на изгледа. Филтри чрез параметри в заявката: ?country=BG,UK, ?group=…, ?logo=1, ?epg=1, ?alive=1, ?source=<id>, ?q=…, ?limit=… (по подразбиране 2000, максимум 5000). След като веднъж е изпълнена проверка, „Копирай (само активни)“ ви дава адреса с добавено alive=1. Изходът е групиран по име на държава с емоджи флаг и се компресира с gzip, когато клиентът го поиска.

Поддържане на списъка подреден

Иконата молив отваря вграден редактор на реда за Наименование / URL / Филтър по държава. Превключвателят Активен веднага премахва каналите на източника от публичния M3U и от статистиките, без да изтрива каквото и да било. Иконата с кръгова стрелка изтегля наново само един източник; горната лента → „Опресни всички“ изтегля наново всичко; „Извлечи лога“ попълва лога само за каналите, които нямат такива. Всички източници се изтеглят наново и автоматично веднъж дневно в 03:00 местно сървърно време.

Внимание

  • /api/public/playlist.m3u умишлено е без автентикация — всеки, който разполага с адреса, получава списъка. Докато public_playlist_enabled е 0, връща 404, така че изключването на модула е аварийният стоп.
  • ?alive=1 филтрира по (stream_status='ok' OR 'unknown'), а всеки канал стартира със стойност 'unknown'. Затова, преди да сте пуснали проверка, той сервира всичко; реалното му значение е „не е известно като неработещ“.
  • Потвърждението за изтриване гласи „Изтриване на този източник и всичките му канали?“, но външните ключове на SQLite не са включени за тези връзки, така че ON DELETE CASCADE не се задейства: редовете на каналите остават в базата. Те спират да се сервират и спират да се броят (всяка заявка прави join към таблицата с източниците), но в действителност не се премахват.
  • Проверките на потоците се изпълняват от сървъра. Гео-ограничените потоци (напр. само за UK) се показват като неработещи или геоблокирани, въпреки че работят за зрители в правилния регион — изгледът предупреждава за това в банер. За разлика от Health Check при релетата, тази проверка никога не изтрива нищо: тя само маркира статус.
  • Всяка крайна точка /api/admin/public-playlist/* е admin_required, така че служителските профили с делегирани права изобщо не могат да използват този изглед.
  • Опресняванията са условни (If-Modified-Since / If-None-Match); източник, който отговори с 304, остава непроменен и се обновява само времевата му отметка Последно извлечен. Качените източници нямат URL и се пропускат изцяло от Опресни всички.
  • Публичният адрес, показан в картата, идва от настройката public_site_url; ако тя не е зададена, се използва относителен път (а в самия изглед — origin-ът на браузъра), което не е адресът, който искате да раздавате. Първо я задайте в Настройки.
  • Повторното изтегляне на източник заменя изцяло каналите на този източник, така че всяко състояние на ниво канал — включително логата, добавени чрез „Извлечи лога“, и резултатите от проверката активен/неработещ — се губи при следващото опресняване.