Основной бэкенд iptv.axenov.dev
Web-версия: https://iptv.axenov.dev FAQ: https://iptv.axenov.dev/faq
Исходный код: https://git.axenov.dev/IPTV
Проект, содержащий в себе инструменты для работы с IPTV-плейлистами:
- список автообновляемых плейлистов, которые найдены в открытых источниках;
- скрипты для поиска каналов в этом списке, создания своего плейлиста;
- веб-сервис, предоставляющий короткие ссылки на эти плейлисты и отображающий список каналов.
Плейлисты подбираются преимущественно для РФ и любых стран бывшего СНГ, но этими странами список не ограничивается.
Поддержкой этих плейлистов занимаются сервисы и ресурсы, указанные как источник. Вопросы работоспособности плейлистов адресуйте тем, кто несёт за них ответственность.
Они бесплатны для использования. Список проверяется и обновляется мной вручную. Гарантию работоспособности никто не даёт.
- Как использовать этот список?
- Формат
playlists.ini
- API
- Развёртывание проекта
- Расширенные возможности
- Как создать свой собственный плейлист?
- Использованный стек
- Лицензия
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
-- данные об ошибке при проверке плейлистаcode
-- код ошибки curlmessage
-- текст ошибки curl
Расширенные возможности
Собственный код 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