# Инструменты для работы с IPTV-плейлистами Проект, содержащий в себе скрипты для работы с IPTV-плейлистами. Для начала работы необходимо скачать файл [playlists.ini](https://git.axenov.dev/IPTV/playlists/raw/branch/master/playlists.ini). - [Инструменты для работы с IPTV-плейлистами](#инструменты-для-работы-с-iptv-плейлистами) - [Скачать все плейлисты](#скачать-все-плейлисты) - [Проверить каналы плейлиста](#проверить-каналы-плейлиста) - [Поиск каналов в одном плейлисте](#поиск-каналов-в-одном-плейлисте) - [Поиск каналов во всех плейлистах](#поиск-каналов-во-всех-плейлистах) - [Создать плейлист из нужных каналов](#создать-плейлист-из-нужных-каналов) - [Как создать свой собственный плейлист?](#как-создать-свой-собственный-плейлист) - [Лицензия](#лицензия) ## Скачать все плейлисты Команда: `./download-all.sh` Скачивает все плейлисты из `playlists.ini` в локальную директорию `./downloaded/`. ## Проверить каналы плейлиста Команда: `./check-pls.sh` Проверяет каждый канал в плейлисте на доступность и выводит результат проверки. Поддерживаются `*.m3u` и `*.m3u8`; как локальные файлы, так по прямым ссылкам. Коды ошибок доступны [здесь](https://everything.curl.dev/cmdline/exitcode.html#available-exit-codes). ## Поиск каналов в одном плейлисте Команда: `./find-in-pls.sh` Находит каналы по заданному регулярному выражению в одном указанном плейлисте. Поддерживаются `*.m3u` и `*.m3u8`; как локальные файлы, так по прямым ссылкам. ## Поиск каналов во всех плейлистах Команда: `./find-in-all.sh` Находит каналы по заданному регулярному выражению во всех плейлистах, скачанных через `download-all.sh`. ## Создать плейлист из нужных каналов Команда: `./make-pls.sh` Находит каналы по заданному регулярному выражению во всех плейлистах, скачанных через `download-all.sh`. Отличается от `find-in-all.sh` тем, что тот выводит результат в человекочитаемом формате, а этот -- в готовом m3u формате для сохранения в файл. Для сохранения в файл следует добавить `> myfile.m3u` или `>> myfile.m3u` в конец команды. ## Как создать свой собственный плейлист? 1. Скачать все плейлисты, указанные в `playlists.ini`: ``` $ ./download-all.sh ``` 2. Вытащить из них нужные каналы и сохранить в отдельный файл: ``` $ ./make-pls.sh "(fox|disney)" > my.m3u8 ``` Так в плейлисте `./my.m3u8` окажутся все каналы из скачанных плейлистов, в названиях которых встретились `fox` или `disney`. 3. Проверить доступность каналов в полученном плейлисте: ``` $ ./check-pls.sh my.m3u8 ``` > Результат `ОК` не означает, что канал действительно работает и отдаёт видео/аудио потоки. > Результат `ERROR` с любыми кодами ошибок гарантированно означает, что канал не работает. 4. Вручную: удалить нерабочие, мусорные и продублировавшиеся (по ссылкам) каналы. 5. Вручную: добавить плейлист в IPTV-плеер и перепроверить результат. ## Лицензия [The MIT License](LICENSE)