Перейти к содержанию

Рекомендуемые сообщения

Опубликовано (изменено)

 

Есть огромная надежда что в скором времени стартанет и заработает сборка noxbit для MIPSel -> http://mytalks.ru/index.php?topic=6459.0

Описываю полный процес автоматизации использования noxbit движка на обычном бытовом роутере с Entware3x на борту... Кое что сам наваял, кое-что раньше успел создать Alex(c) для малинки и я "маленько" адаптировал  :D

opkg install crone lighttpd lighttpd-mod-alias lighttpd-mod-compress curl

1) crone - используем для выполнения скрипта "заливки" плейлиста из своего рабочего кабинета раз в сутки, чаще просто нету смысла, например каждые 5.00 утра (в contab - 01 5 * * * root /opt/bin/run-parts /opt/etc/cron.daily) ... В  crone.daily  создаем файлик noxbit_ttv права 755 !
 

#!/opt/bin/sh
prefix="/opt"
PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin

M3U_DIR="$prefix/home/ttv-list"
NOX_M3U="$M3U_DIR/NoxLive-TTV.m3u"

NOX_DIR="$prefix/tmp"
NOX_FILE="$NOX_DIR/ttv-m3u/noxbit.m3u"
NOX_FILE_GZ="$NOX_FILE.gz"

## Ссылка из вашего личного кабинета на "Скачать в виде полноценного статичного файла" 
## В настройках плейлиста ОБЯЗАТЕЛЬНО поставить гапочку напротив "Категории каналов тегами #EXTGRP в m3u"  
NOX_LIST_URL="http://asproxy.net/n/blablablabla"

## IP Вашего роутера или устройства на котором установлен noxbit 
URL_IP="192.168.1.1" 

STAT_OLD=

if [ -z "$NOX_LIST_URL" ]; then
  echo "Error! Unknown playlist address Noxbit."
  exit
fi

mkdir -p $NOX_DIR/ttv-m3u

if [ -f "$NOX_FILE_GZ" ]; then
  STAT_OLD=`stat $NOX_FILE_GZ | grep 'Modify:'`
fi

curl -s --connect-timeout 5 --max-time 20 -R -z "$NOX_FILE_GZ"-o "$NOX_FILE_GZ" -H "Accept-Encoding: gzip" "$NOX_LIST_URL"

if [ ! -f "$NOX_FILE_GZ" ]; then
  echo "Error! Could not load Noxbit playlist."
  exit
fi

STAT_NEW=`stat $NOX_FILE_GZ | grep 'Modify:'`
if [ "$STAT_OLD" == "$STAT_NEW" ]; then
  echo "Done! You already actual playlist."
  exit
fi

gunzip -c "$NOX_FILE_GZ" > "$NOX_FILE"
mkdir -p $M3U_DIR

echo '#EXTM3U url-tvg="http://1ttvapi.top/ttv.xmltv.xml.gz"' > $NOX_M3U
cat $NOX_FILE |
  while read -r LINE ; do
    echo $LINE | grep '^#EXTINF' > /dev/null 2>&1
    if [ $? -eq 0 ]; then
      CH_LOGO=`echo $LINE | awk '{print $2}' | sed 's/,.*//; s/tvg-logo=//; s/[ \t]*$//'`
      CH_NAME=`echo $LINE | awk -F\\, '{print $2}' | sed 's/(на модерации)//; s/^[ \t]*//; s/[ \t]*$//'`
      CH_CAT=
      CH_CID=
      continue
    fi

    echo $LINE | grep '^#EXTGRP' > /dev/null 2>&1
    if [ $? -eq 0 ]; then
      CH_CAT=`echo $LINE | awk -F\\: '{print $2}' | sed 's/^[ \t]*//; s/[ \t]*$//'`
      CH_CID=
      continue
    fi

    echo $LINE | grep '^http' > /dev/null 2>&1
    if [ $? -eq 0 ]; then
      CH_CID=`echo $LINE | awk -F\\= '{print $2}' | sed 's/^[ \t]*//; s/[ \t]*$//'`
    fi

    if [ -n "$CH_LOGO" -a -n "$CH_NAME" -a -n "$CH_CAT" -a -n "$CH_CID" ]; then
      echo "#EXTINF:-1 group-title=\"$CH_CAT\" tvg-name=\"$CH_NAME\" tvg-logo=$CH_LOGO,$CH_NAME" >> $NOX_M3U
      echo "http://${URL_IP}:6689/stream?cid=${CH_CID}" >> $NOX_M3U
      CH_LOGO=
      CH_NAME=
      CH_CAT=
      CH_CID=
    fi
  done

rm -rf $NOX_FILE

echo "Done! Playlist created."
exit


Итог "сей песни" плейлист в формате m3u со всякими "плюшками" в /opt/home/ttv-list/NoxLive-TTV.m3u
В скрипте есть поддержка хедеров If-Modified-Since и Last-Modified , которые пока что не поддерживаются для ссылки на плейлист noxbit в личном кабинете TTV.... И это в корне НЕВЕРНО, думаю что соответствующий департамент по "шурику" подправит.... чтобы не "задалбывать" скачивая одно и то же до "посинения" ... Просто уверен что многие поставят скачивание не раз в сутки .. а каждую минуту для надежности ))) и попадут в БАН ! ;) .... А вот если добавить поддержку If-Modified-Since и Last-Modified .... то долбите дятлы ! ДЛОБИТЕ !!!! 
+ Если соответствующий "департамент" поднатужится и все таки включит JSON формат для плейлистов noxbit , то в скрипте можно будет использовать утилитку jq и "разгребаться" будет за несколько секунд, а так "ковыряем" текстовый файл ... время обработки сек 30-40 .... ;)

2) lighttpd - будем использовать как "маленький и шустрый" локальный вебсерверок для раздачи плейлиста всем устройствам домашней сети + можно соседу, дабы окупить затраты на электричество потребляемое роутером. Редактируем lighttpd.conf вот так (я постарался максимально прокомментировать по тексту конфига что для чего)

#Перечисляем модули, которые будет пожгружать при старте lighttpd
server.modules += (
       "mod_compress",
       "mod_alias",
)

#Документ рут по умолчанию
server.document-root        = "/opt/home/www"
server.upload-dirs          = ( "/opt/var/cache/lighttpd/compress/uploads" )

alias.url += (
  "/playlist" => "/opt/home/ttv-list",
)

#Описываем лог файл куда будут писаться ошибки
server.errorlog             = "/opt/var/log/lighttpd/error.log"

#Файл для записи обработанных запросов mod_accesslog
#accesslog.filename          = "/opt/var/log/lighttpd/access.log"
#accesslog.format            = "%h %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

#PID файл
server.pid-file             = "/opt/var/run/lighttpd.pid"
#Пользователь и группа от имени которых работает lightttpd
#server.username             = "http"
#server.groupname            = "www-data"

#Метод обработки запросов
#server.event-handler        = "freebsd-kqueue"

#Имена файлов, которые будут отдаваться по умолчанию, если имя файла не задано в запросе
index-file.names            = ( "index.php", "index.html",
                                "index.htm", "default.htm",
                                "index.lighttpd.html" )

#Расширения файлов которые надо отдавать на обработку FastCGI процессам
#static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

#Запрещенные для отдачи имена файлов mod_access
#url.access-deny             = ( "~", ".inc" )

# mod_compres
compress.cache-dir          = "/opt/var/cache/lighttpd/compress/"
compress.allowed-encodings  = ("bzip2", "gzip", "deflate")
compress.filetype           = ("application/javascript", "audio/mpegurl",
                               "text/css", "text/html", "text/plain" )

### Options that are useful but not always necessary:
#server.chroot               = "/"
#Принимаем запросы на заданном порту
server.port                 = 81
#IP адрес на котором принимаем запросы
server.bind                 = "192.168.1.1"
#Идентификатор сервера
server.tag                  = "lighttpd"
#server.errorlog-use-syslog  = "enable"
#server.network-backend      = "write"

### Use IPv6 if available
#include_shell "/opt/share/lighttpd/use-ipv6.pl"

dir-listing.encoding        = "utf-8"
server.dir-listing          = "enable"

include       "/opt/etc/lighttpd/mime.conf"
include_shell "cat /opt/etc/lighttpd/conf.d/*.conf"

Тут кое-что "выключено"-заREMлено... если Вам надо снимите '#' нужных вам "фичах"  

Итог "сей песни" ... работающий web-серверок который по ссылке http://192.168.1.1:81/playlist/NoxLive-TTV.m3u будет отдавать вам плейлист для всех ваших девайсов дома :)

Поскольку в lighttpd я включил поддержку компресии ... то в crone.daily нужно добавить еще один скриптик, который будет подчищать за lighttpd . В crone.daily создаем файлик lighttpd_clean права 755!
 

#!/opt/bin/sh
prefix="/opt"
PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin

cache=/opt/var/cache/lighttpd
if test -d "$cache/compress"; then
    find $cache/compress -depth -type f -atime +0 -print0 | xargs -0 -r rm
fi
if test -d "$cache/uploads"; then
    find $cache/uploads -depth -type f -atime +0 -print0 | xargs -0 -r rm
fi

Перегружаем роутер ... ну или стартуем "руцями" crone и lighttpd и наслаждаемся  ::) При желании lighttpd.conf можно дополнить и "припудрить" паролированием доступа, геолокацией, и т.д. как говориться книга Вам в помощь -> https://redmine.lighttpd.net/projects/lighttpd


p.s. Дання "лабораторка" тестировалась и прекрасно фунциклирует на Zyxel Keenetic Ultra II c Entware3x .... Критику и дополнения - ПРИЕМЛЮ ) 

Изменено пользователем Dorik1972
Опубликовано

Еще раз объясняю - NOXBIT никакого отношения к Entware не имеет. От слова СОВСЕМ.

Своими заголовками Вы только путаете других. То, что Вы изложили - это автоматизация скачивания файла (в данном случае плейлиста) по расписанию и его "раздача" через web сервер.

Опубликовано (изменено)
3 минуты назад, zyxmon сказал:

Еще раз объясняю - NOXBIT никакого отношения к Entware не имеет. От слова СОВСЕМ.

Своими заголовками Вы только путаете других. То, что Вы изложили - это автоматизация скачивания файла (в данном случае плейлиста) по расписанию и его "раздача" через web сервер.

Спс за замечание .... заголовок заменю ... на "Автоматизация раздачи плейлиста для noxbit по расписанию" ?  или предложите название темы. Думаю она представляет интерес "как готовое решение" 

Изменено пользователем Dorik1972
Опубликовано
Только что, zyxmon сказал:

Название сами придумайте. Наверняка можно таким образом и от edem, и от ottclub плейлисты раздавать.

легко ... думаю "страждущие" и "нуждающиеся" сам под себя "подковыряют" готовое решение. Все же проще чем "с нуля" самому писать ... или ?

Опубликовано
3 минуты назад, Dorik1972 сказал:

Все же проще чем "с нуля" самому писать ... или ?

У всех плейлистов есть URL в интернете. Смысл в редактировании, перед сохранением?

Опубликовано
42 минуты назад, zyxmon сказал:

У всех плейлистов есть URL в интернете. Смысл в редактировании, перед сохранением?

Если речь идет о edem, ott и т.д. - ДА там ссылка уже готовая.... В данном конкретном случае и в случае с acestream engine, для которого. тоже скриптик имеется, необходимо "формирование" плейлиста по шаблону под себя ;)  . Но это уже "разговор" из другой темы и не данного форума. 

Жму руку! 

p.s. Тут такое ... если пользователям сия инфа бесполезна .... УДАЛЮ ТЕМУ .... через недельку ! ОК? А вот если будут "Like"-и ... оставлю. 

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.