Initial commit

This commit is contained in:
2025-03-05 00:20:33 +08:00
commit 6fd8998245
8 changed files with 377 additions and 0 deletions

80
README.md Normal file
View File

@@ -0,0 +1,80 @@
# Инструменты для работы с 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/usingcurl/returns).
## Поиск каналов в одном плейлисте
Команда: `./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)