#!/bin/ash
#180327 sfs
  if ! getent passwd acestream &> /dev/null; then
    sudo useradd -u 4035 -g video -m -s /usr/bin/nologin acestream
  fi

pidof STM-Hypervisor || /opt/noxbit/STM-Hypervisor -config=/home/live/.config/noxbit.cfg &

#FNAME="ttv.all.iproxy.m3u" 
FNAME="ttv.all.nox.m3u"
URL="http://pomoyka.win/trash/ttv-list/${FNAME}"
#FNAME="ttv.all.proxy.m3u"  ; URL="http://pomoyka.win/trash/ttv-list/${FNAME}?ip=127.0.0.1:8000"

#GNAME="/tmp/${FNAME}.gz"
mkdir -p /home/live/TV/
GNAME="${FNAME}.gz"
curl --fail -R -z "/tmp/${GNAME}" -o "/tmp/${GNAME}" -H "Accept-Encoding: gzip" "${URL}" && \
 gunzip -c "/tmp/${GNAME}"  >"/tmp/${FNAME}" 

rm  "/tmp/${FNAME}1"
for i in FAP Brazzers EvilAngel Hustler O-la-la XXX Playboy Pink Private Satisfac \
    sex Visit-X ночь ночн эгоист ;do
    cat "/tmp/${FNAME}"  |egrep -iA2 '#EXTINF:.*'$i'' |head -n-1 >>"/tmp/${FNAME}1"
done
grep -vf "/tmp/${FNAME}1" "/tmp/${FNAME}" >"/home/live/TV/${FNAME}" 
rm "/tmp/${FNAME}" "/tmp/${FNAME}1"

for s in  vlc smplayer gnome-mpv m3u-gui; do
    which $s && break
done

$s /home/live/TV/${FNAME} &
#3.1 
#wget 
#URL="http://pomoyka.win/trash/ttv-list/ttv.all.iproxy.m3u"

#3.0 
#wget http://pomoyka.win/trash/ttv-list/ttv.all.proxy.m3u?ip=127.0.0.1:8000 -O ttv.all.proxy.m3u
exit


﻿*.player.m3u/xspf - плейлист для ace_player из комплекта acestream. Для просмотра
 на компе, ноуте или на android планшете с установленным acestream.
 забивать этот лист в обычный плеер, не имеющий поддержки acestream, не имеет смысла - он не будет работать.
 кроме того некоторые не поддерживающие acestream плееры зацикливаются и начинают перекачивать лист каждые несколько секунд.
 при превышении критического порога трафика вы будете автоматически забанены. поэтому читаем дальше.

*.proxy.m3u/xspf - плейлист для aceproxy by ValdikSS. нужен для просмотра
 torrent-tv на любых устройствах, где не установлен движок acestream.
 Например, на smart-tv или на планшете, под который нет acestream engine.
 Aceproxy работает с движком acestream и преобразует потоки от него в стандартные
 потоки http video, которые могут быть просмотрены в любых плеерах на любых устройствах.
 Но это не готовое решение ! Требуется держать включенный комп с движком acestream и aceproxy.
 В плейлистах требуется заменять 192.168.2.1:82 на свой ip:port.
 Рекомендуется пользоваться автоматической заменой :
  http://pomoyka.win/trash/ttv-list/ttv.all.proxy.m3u?ip=192.168.1.55:123
 Некоторые плееры могут не понимать тип получаемого xspf файла. Лечится добавлением "&.xspf" в конец URL :
  http://pomoyka.win/trash/ttv-list/ttv.all.proxy.xspf?ip=192.168.1.55:123&.xspf
 Информация по AceProxy :
  https://github.com/ValdikSS/aceproxy
  https://github.com/AndreyPavlenko/aceproxy
  http://mytalks.ru/index.php?topic=4506.0
 Альтернативный способ использования AceProxy : AceProxy имеет plugin для torrent-tv,
 позволяющий перекодировать плейлисты класса player в плейлисты класса proxy.
 Впишите в aceproxy\plugins\config\torrenttv.py
  url = 'http://pomoyka.win/trash/ttv-list/ttv.m3u'
 Плеерам отдаете следующий адрес : 
  http://127.0.0.1:8000/torrenttv/playlist.m3u
 , где 127.0.0.1:8000 заменяете на ip:port вашего aceproxy.
 Полученный таким образом плейлист отличают от прокси листа с помойки следующие моменты :
  после названия отсутствуют в скобках категории, например (Региональные). но это легко можно поправить через шаблон #EXTINF в plugins/config/playlist.py
  присутствуют http ссылки на логотипы каналов, значит не требуется скачивать и настраивать картинки локально
 Плагин не поддерживает множественных листов. Поэтому таким способом вы не получите прокси листы
 по категориям. Некоторые плеера, которые поддерживают тэги tvg_*, могут сами разбить представление списка каналов по категориям, но не все.
 Пробуйте, оценивайте, выбирайте то, что наиболее подходит в вашей ситуации.

*.iproxy.m3u/xspf - плейлист для встроенного proxy в acestream 3.1+
 аналогично *.proxy.*, но используется встроенный движок, избавляя от связки AceProxy+VLC ретранслятор.
 это предпочтительный вариант, поскольку нет лишних процессов, настройка намного проще, однако
 фича может стать в любой момент платной по прихоти разработчиков acestream.
 встроенный в acestream прокси неспособен выдавать несколько потоков одного и того же канала -
 вы не сможете смотреть 1 канал на двух TV. aceproxy на это способен.
 ace_engine слушает на порту 6878 и реализует там медиа сервер.
 для проигрывания на том же устройстве листы работают сразу, для проигрывания по сети
 с других устройств нужно заменять адрес на <ваш_ip>:6878
 этот плейлист НЕ НУЖНО загружать в веб интерфейс ace_engine как вы могли где-то прочитать ! он отдается непосредственно плееру
 если вы так этого хотите - в веб интерфейс ace_engine загружаются плейлисты со ссылками на contentid, то есть *.player.* или ttv.m3u
 но смысл в этом вижу только, если вы хотите работать через веб интерфейс встроенного в acestream медиасервера
 конечно, вы можете получить iproxy лист от перекодировщика acestream, но зачем, когда он уже тут лежит готовый ?

???.all.player/proxy/iproxy.m3u - все каналы, отсортированные по категории и алфавиту
???.???.player/proxy/iproxy.m3u - каналы отдельных категорий, отсортированные по алфавиту
???.tree.player/iproxy.m3u - промежуточный плейлист со ссылками на листы всех категорий.
 его удобно использовать, чтобы не листать огромный список каналов и чтобы не было начальной
 очень долгой подгрузки всех торрент файлов по contentid в версии player
 подходит только для проигрывания на том же устройстве, что и движок acestream
???.tree.proxy/iproxy.remote.m3u - то же самое, только для проигрывания по сети
 требуется вызывать с заменой ip через ?ip=<ip:port>
???.all.player.xspf - для ace player с разбивкой на группы
???.all.proxy.xspf - для VLC через ace proxy с разбивкой на группы
???.all.iproxy.xspf - для VLC через встроенный в acestream 3.1+ proxy с разбивкой на группы


Готовый плейлист через интернет по принципу
"включил и заработало" никто бесплатно не даст. Только покупать, поскольку
никто не будет оплачивать толстющий канал, чтобы всем халявщикам слать
отдельные потоки. Обычный канал 100 мбит будет забит после 10 подключенцев.
Если кто-то и выкладывает готовый лист, то его происхождение в большинстве
случаев хакнутое. Кто-то где-то небезопасно настроил свой роутер, и он
раздает iptv всем желающим в интернет, а другой умный товарищ высканил
этот роутер с использованием поисковика shodan. Понятное дело, владелец
обычно быстро просекает неладное, и доступ прикрывается.
Купить готовый proxy доступ можно на torrent-tv.ru.
Название услуги "TS-PROXY".

Каково качество ? Качество более всего зависит от стабильности и ширины канала
источника контента. Проще говоря от поставщика. На втором месте от количества
и качества пиров. Проще говоря чем больше народу смотрят - тем лучше.
На практике - на разных каналах по разному. Где-то вполне так ничего,
где-то не работает, где-то срывается. Надежного ТВ из этой технологии
не получить. Если нужна надежность - берите спутник или кабель DVB-C,
на худой конец iptv от провайдера.
 

Чтобы в aceplayer или vlc заработала разбивка на группы :
 1) идем в настройки (Ctrl+P)
 2) внизу слева отмечаем : показывать настройки  ( ) простые (*) все
 3) плейлист -> отображать список в виде дерева
 4) перезапускаем плеер с листом в формате xspf или *.tree.*.m3u

*** kodi ***

Как настроить ТВ в kodi с программой передач и логотипами.
Основы настройки описаны здесь : http://help.telecom.by/_files/KODI-Help.pdf
В настройках PVR IPTV Simple Client :
 Основные
  (для локального acestream) Ссылка на m3u : http://pomoyka.win/trash/ttv-list/ttv.all.iproxy.m3u
  (для доступа по сети)      Ссылка на m3u : http://pomoyka.win/trash/ttv-list/ttv.all.iproxy.m3u?ip=192.168.1.55:6878
 Установки EPG
  Ссылка : http://api.torrent-tv.ru/ttv.xmltv.xml.gz
Если хотите логотипы каналов, то нужно скачать http://logo.fight-show.ru/logos/logo.zip, распаковать куда-нибудь, затем в том же диалоге
 Логотипы каналов
  Расположение : локальный путь
  Путь : туда, куда вы положили логотипы
После чего жмем OK для сохранения и перезапускаем kodi.
Появляется раздел ТВ. В листе присутствуют тэги tvg-name, по которым ищется канал в xmltv.xml,
tvg-logo, по которому ищется картинка, и group-title для фильтрации по группам.
Программа есть не для всех каналов, для многих каналов она устаревшая, поэтому не отображается.
Если вам не нравится порядок сортировки по группе,названию, то в левой боковой панели есть функция
выбора сортировки. Можно сделать по алфавиту. Там же можно фильтровать группы.

Альтернативный способ использования в kodi.
Если вам не нравится простыня из 700 каналов, фильтр неудобен, и вам не настолько нужна программа
передач, то можно отказаться от PVR и использовать плейлист ttv.tree.iproxy.m3u/ttv.tree.iproxy.remote.m3u.
Положите его в $KODI_DIR/userdata/playlists/video.
KODI_DIR на windows располагается в %APPDATA%/Kodi, на linux в $HOME/.kodi.
Здесь подробнее : http://kodi.wiki/view/userdata
К сожалению, при таком способе всплывает баг, когда рандомно некоторые каналы называются как куски текста из EXTINF или ссылки http.
Если нужный вам канал попал на глюк - выйдите наверх и снова войдите в категорию.

*** Для разрабов ***

Самый простой способ использовать помойку - через файлы json. Что это такое объяснять излишне.
Не надо ничего парсить. Просто загружайте массив. Тем самым оградите себя от возможной смены формата m3u.
И совсем самым последним и неблагодарным делом будет парсить HTML. Не надо этих глупостей.
"url" может содержать либо ContentID, либо http ссылку на acelive.
В большинстве случаев это будет ContentID, но http иногда тоже может появиться.
Если хотите лист со ссылками на acelive - загружайте acelive.tar.xz, хостите на своем серваке acelive,
делайте из json m3u со ссылками на свой сервак.
Я не делаю такой лист, потому что ace_player начнет сразу подтаскивать все acelive, 750 раз дергая мой сервер, а мне это не надо.
Так что просьба не делать лист для ace_player со ссылками acelive на помойку.
Однако, прокси не подтягивает все acelive сразу, а только 1 acelive при проигрывании канала, поэтому прокси листы с acelive проблем не создают.
Обратите внимание на BOM (UTF-8 byte order mark : EF BB BF) в начале json файлов. Из-за этого могут возникать ошибки при подсовывании файла парсеру json.
Если это случается - отсекайте первые 3 байта.
Обязательно ознакомьтесь с разделом, посвященному лимиту трафика, иначе при слишком частой долбежке вас забанят.

*** Трэш поиск ***

Поиск acestream - еще то глюкало. Наблюдаются хаотичные выпады и повторы. Как будто идет обращение к несинхронизированным БД и отсутствует понятие snapshot.
Фильтрую выдачу по коду уровня доступности канала - выбираю только зеленый статус. Это означает, что канал некоторое
время работает стабильно. Таким образом отсеиваю много трэша, но другая сторона - не очень оперативное попадание обновленных ContentID
в список для источников, которые регулярно пересоздают раздачи и меняют ContentID. Из двух зол выбрано меньшее на мой взгляд
(лучше пусть будет меньше неработающего трэша).
Чтобы исключить случайные выпады каналов держу expiration timer. Если какое-то время поиски не возвращают канал,
то он сносится из списка. Если в поиске обновляется infohash для того же name, то выдираю новый acelive и contentid.
Из as.json пытаемся выудить что-то полезное. На данный момент это каналы, предположительно транслируемые самим acestream - ace.json
И псевдо-acelive со ссылками на HLS - direct.m3u
Чтобы как-то сортировать весь трэш в acelive.json введены поля :
 source - источник откуда был скачан этот acelive
 provkey - поле provider_key или creator из декодированного acelive. для известных provider_key выполняется подстановка на читаемое значение
 tracker - не все заполняют provkey, потому еще одним способом какой-то классификации мусора является первый трэкер из списка. для hls раздач добавляется префикс "hls"
