diff --git a/README.md b/README.md index c9fa33b..8713bef 100644 --- a/README.md +++ b/README.md @@ -239,7 +239,6 @@ $ sudo systemctl restart apache2 ``` - ## Расширенные возможности ### Собственный код html/css/js @@ -276,7 +275,7 @@ cd src && composer clear-views Команда: `./tools/download-all.sh` -Скачивает все плейлисты из [`playlists.ini`](playlists.ini) в локальную директорию `./downloaded/`. +Скачивает все плейлисты из [`playlists.ini`](playlists.ini) в локальную директорию `./tools/downloaded/`. ### Проверить каналы плейлиста @@ -288,37 +287,6 @@ cd src && composer clear-views Коды ошибок доступны [здесь](https://everything.curl.dev/usingcurl/returns). -Пример: - -``` -$ ./tools/check-pls.sh my.m3u8 -Playlist: my.m3u8 - -Note 1: operation may take some time. -Note 2: press CTRL+C to skip current channel or CTRL+Z to kill process. -Note 3: results may be inaccurate, you should use proper IPTV software to re-check. -Note 4: error codes listed here - https://everything.curl.dev/usingcurl/returns --------------------- -[1] Канал Disney... - - OK: "http://ott-cdn.ucom.am/s60/04.m3u8" -[2] Канал Disney... - - ERROR 28 (-): "http://92.243.113.179:8080/Disney_Channel/index.m3u8?token=nts_tv" -[3] Disney канал ... - - OK: "http://ott-cdn.ucom.am/s60/index.m3u8 " -[4] Канал Disney... - - OK: "http://ott-cdn.ucom.am/s60/04.m3u8" -[5] Fox_Life_HD... - - ERROR 6 (-): "http://live-ng-01.more.tv/hls/Fox_Life_HD/index_1.m3u8" -[6] FOX_HD... - - ERROR 22 (404): "http://live-ng-01.more.tv/hls/FOX_HD/index_1.m3u8" -... --------------------- -Playlist: my.m3u8 -Check stats -- Success: 995/999 -- Failed: 4/999 -``` - ### Поиск каналов в одном плейлисте Команда: `./tools/find-in-pls.sh` @@ -327,62 +295,12 @@ Check stats Поддерживаются `*.m3u` и `*.m3u8`; как локальные файлы, так по прямым ссылкам. -Пример: - -``` -$ ./tools/find-in-pls.sh disney a.m3u8 --------------------- -Playlist: a.m3u8 -Channel to find: disney --------------------- - -267 FOUND: #EXTINF:-1 group-title="Disney" tvg-id="disney",Disney (1) - http://zabava-htlive.cdn.ngenix.net/hls/CH_DISNEY/bw2000000/variant.m3u8?version=2 - -270 FOUND: #EXTINF:-1 group-title="Disney" tvg-id="disney",Disney (2) - https://okkotv-live.cdnvideo.ru/channel/Disney.m3u8 --------------------- -Playlist: a.m3u8 -Channel found: disney -Found: 2 -``` - ### Поиск каналов во всех плейлистах Команда: `./tools/find-in-all.sh` Находит каналы по заданному регулярному выражению во всех плейлистах, скачанных через `download-all.sh`. -Пример: - -``` -$ ./tools/find-in-all.sh (disney|СТС) -... --------------------- -Playlist: ./downloaded/kids.m3u.1 -Channel to find: (disney|СТС) --------------------- - -35 FOUND: #EXTINF:-1 tvg-name="СТС Kids HD" group-title="Детские", СТС Kids HD - https://okkotv-live.cdnvideo.ru/channel/CTC_Kids_HD.m3u8 - -59 FOUND: #EXTINF:-1 tvg-name="Disney канал" group-title="Детские", Disney канал - http://zabava-htlive.cdn.ngenix.net/hls/CH_DISNEY/bw2000000/variant.m3u8?version=2 - -83 FOUND: #EXTINF:-1 tvg-name="Канал Disney (okko tv)" group-title="Детские", Канал Disney (okko tv) - https://okkotv-live.cdnvideo.ru/channel/Disney.m3u8 --------------------- -Playlist: ./downloaded/kids.m3u.1 -Channel found: (disney|СТС) -Found: 3 --------------------- -Playlist: ./downloaded/kz-all.m3u -Channel to find: (disney|СТС) --------------------- -Nothing found -... -``` - ### Создать плейлист из нужных каналов Команда: `./tools/make-pls.sh` @@ -392,27 +310,9 @@ Nothing found Отличается от `find-in-all.sh` тем, что тот выводит результат в человекочитаемом формате, а этот -- в готовом m3u формате для сохранения в файл. -Пример: - -``` -./tools/make-pls.sh "(fox|disney)" -#EXTM3U -# Autogenerated at 09.06.2022 -# https://github.com/anthonyaxenov/iptv - -#EXTINF:-1,Канал Disney -http://ott-cdn.ucom.am/s60/04.m3u8 - -#EXTINF:-1,Канал Disney -http://92.243.113.179:8080/Disney_Channel/index.m3u8?token=nts_tv - -#EXTINF:-1 ,Fox HD -http://live02-cdn.tv.ti.ru:80/dtv/id376_NBN_SG--Fox_HD/04/plst.m3u8 -... -``` +Для сохранения в файл следует добавить `> myfile.m3u` или `>> myfile.m3u` в конец команды. - ## Как создать свой собственный плейлист? 1. Скачать все плейлисты, указанные в [`playlists.ini`](playlists.ini): diff --git a/tools/check-pls.sh b/tools/check-pls.sh index c4bb3f0..5df055a 100755 --- a/tools/check-pls.sh +++ b/tools/check-pls.sh @@ -49,7 +49,7 @@ awk ' if ($0 ~ /^#EXTINF:.+,/) { total_count++ channel_name = substr($0, index($0, ",") + 1, length($0)) - print "[" total_count "] " channel_name "..." + print "\n[" total_count "] " channel_name } if ($0 ~ /^http(s)?:\/\/.*/) { url = sprintf("%c%s%c", 34, $0, 34) # 34 is " @@ -60,10 +60,10 @@ awk ' http_code = "-" } if (code == 0 || code == 63) { - print "\t- \033[32mOK:\033[0m " url + print "\033[32mOK:\033[0m " url success_count++ } else { - print "\t- \033[91mERROR\033[0m " code " (" http_code "): " url + print "\033[91mERROR\033[0m " code " (" http_code "): " url fail_count++ } } diff --git a/tools/find-in-pls.sh b/tools/find-in-pls.sh index 38ba69c..adfcdea 100755 --- a/tools/find-in-pls.sh +++ b/tools/find-in-pls.sh @@ -42,7 +42,7 @@ if [[ "$playlist" =~ $regex_url ]]; then if [ $? -eq 0 ]; then is_downloaded=1 playlist="$download_dir/$(ls -1 "$download_dir")" - cd - + cd - > /dev/null else echo "ERROR: cannot download playlist: $playlist" exit 1 @@ -74,8 +74,8 @@ if [ $found_count -eq 0 ]; then echo -e "\033[91mNothing found\033[0m" else echo "--------------------" - echo -e "\033[20m\033[97mPlaylist:\033[0m $playlist_url" echo -e "\033[20m\033[97mChannel:\033[0m $channel" + echo -e "\033[20m\033[97mPlaylist:\033[0m $playlist_url" echo -e "\033[20m\033[97mFound:\033[0m\033[32m $found_count\033[0m" fi