Основной бэкенд iptv.axenov.dev

Web-версия: https://iptv.axenov.dev FAQ: https://iptv.axenov.dev/faq
Исходный код: https://git.axenov.dev/IPTV

Проект, содержащий в себе инструменты для работы с IPTV-плейлистами:

  • список автообновляемых плейлистов, которые найдены в открытых источниках;
  • скрипты для поиска каналов в этом списке, создания своего плейлиста;
  • веб-сервис, предоставляющий короткие ссылки на эти плейлисты и отображающий список каналов.

Плейлисты подбираются преимущественно для РФ и любых стран бывшего СНГ, но этими странами список не ограничивается.

Поддержкой этих плейлистов занимаются сервисы и ресурсы, указанные как источник. Вопросы работоспособности плейлистов адресуйте тем, кто несёт за них ответственность.

Они бесплатны для использования. Список проверяется и обновляется мной вручную. Гарантию работоспособности никто не даёт.

API

Можно получать состояние плейлистов из этого сборника при помощи метода:

GET https://iptv.axenov.dev/<ID>/json

где ID -- один из идентификаторов, указанных в playlists.ini в квадратных скобках.

В случае успеха вернётся JSON следующего содержания:

{
    "id": "p1",
    "url": "localhost:8080/p1",
    "name": "Каналы в SD и HD качестве (smarttvnews.ru)",
    "desc": "Рабочий и актуальный IPTV плейлист M3U — на июнь 2022 года",
    "pls": "https://smarttvnews.ru/apps/iptvchannels.m3u",
    "src": "https://smarttvnews.ru/rabochiy-i-aktualnyiy-iptv-pleylist-m3u-kanalyi-v-sd-i-hd-kachestve/",
    "status": "online",
    "encoding": {
        "name": "UTF-8",
        "alert": false
    },
    "channels": [
        "Channel1",
        "Channel2",
        "ChannelX"
    ],
    "count": 3
}

где:

  • id -- идентификатор плейлиста
  • name -- название плейлиста
  • url -- короткая ссылка, которую можно использовать для добавления плейлиста в плеер
  • desc -- краткое описание
  • pls -- прямая ссылка на m3u/m3u8 плейлист
  • src -- ссылка на источник, откуда взят плейлист
  • status -- статус плейлиста ("online"|"timeout"|"offline"|"error")
  • encoding -- данные о кодировке файла плейлиста
    • name -- название кодировки ("UTF-8"|"Windows-1251")
    • alert -- признак отличия кодировки от UTF-8, названия каналов сконвертированы в UTF-8, могут быть ошибки в отображении
  • channels -- массив названий каналов
  • count -- количество каналов >= 0

Название кодировки encoding.name может определяться неточно!

В случае ошибки вернётся JSON в следующем формате:

{
    "id": "p1",
    "url": "localhost:8080/p1",
    "name": "Каналы в SD и HD качестве (smarttvnews.ru)",
    "desc": "Рабочий и актуальный IPTV плейлист M3U — на июнь 2022 года",
    "pls": "https://smarttvnews.ru/apps/iptvchannels.m3u",
    "src": "https://smarttvnews.ru/rabochiy-i-aktualnyiy-iptv-pleylist-m3u-kanalyi-v-sd-i-hd-kachestve/",
    "status": "offline",
    "error": {
        "code": 22,
        "message": "The requested URL returned error: 404 Not Found"
    }
}

где:

  • id -- идентификатор плейлиста
  • name -- название плейлиста
  • url -- короткая ссылка, которую можно использовать для добавления плейлиста в плеер
  • desc -- краткое описание
  • pls -- прямая ссылка на m3u/m3u8 плейлист
  • src -- ссылка на источник, откуда взят плейлист
  • status -- статус плейлиста ("online"|"timeout"|"offline"|"error")
  • error -- данные об ошибке при проверке плейлиста

Расширенные возможности

Собственный код html/css/js

В проекте есть директория src/views/custom. Там можно размещать собственный код, который будет вставляться на каждой странице.

Для этого, в первую очередь, нужно выполнить:

cp src/views/custom/custom.twig.example src/views/custom/custom.twig

Между тегами {% block ... %} сюда {% endblock %} следует вставить желаемый код или текст. Можно создавать новые twig-файлы рядом и подключать их внутри custom.twig. Git будет их игнорировать, хотя можно убрать директорию из .gitignore и добавлять эти файлы репозиторий.

В общем случае, это можно выполнять на том сервере, на коем установлен и работает веб-сервис.

После всех правок следует очистить кеш twig (см. далее).

Очистка кеша twig

Если в файле ./src/.env параметр TWIG_CACHE=1, то макеты страниц компилируются однажды и потом переиспользуются. Изменённые макеты не будут перекомпилироваться пока не будет очищен кеш прежних.

Для этого следует выполнить:

cd src && composer clear-views

Использованный стек

Лицензия

The MIT License

Description
Основной сервис
Readme MIT 195 KiB
Languages
PHP 53.6%
Twig 46.4%