Может кому пригодится.
Скрипт:
- скачивает плейлист
- перемещает название группы в group-title из EXTGRP - тем самым отображаются группы каналов
- добавляет plugin=hls в EXTM3U
- помещает плейлист в xupnpd и делает reload
Код: Выделить всё
#!/opt/bin/bash
# Скрипт для преобразования плейлиста Эдем ТВ в формат xupnpd by zxsavage
# Прямая ссылка на плейлист без авторизации
link="https://edem.tv/playlists/uplist/token/edem_pl.m3u8"
# Адрес интерфейса xupnpd с указанием порта
xupnpdhttp="http://192.168.1.1:4044"
workdir="/tmp"
xupnpdpath="/opt/share/xupnpd"
infile="$workdir/in.m3u"
outfile="$workdir/out.m3u"
xupnpdpl="$xupnpdpath/playlists/edemtv.m3u"
function WriteOut {
nameout="#EXTINF:-1 group-title=\"$group\",$name"
echo "$nameout" >> $outfile
echo "$address" >> $outfile
nameout=""
name=""
address=""
group=""
}
wget -O "$infile" "$link"
if [[ $? -ne 0 ]] ; then
echo "Failed to download playlist. Script stopped."
/opt/bin/logger "[ERROR] Failed to download playlist for xupnpd"
exit 1
fi
echo "#EXTM3U plugin=hls" > $outfile
shopt -s nocasematch
while IFS= read -r line; do
line="$(echo $line | tr -d '\n')"
line="$(echo $line | tr -d '\r')"
if [[ "$line" == "#EXTM3U"* ]]; then
continue
fi
if [[ "$line" == "#EXTINF"* ]]; then
name="$(echo -ne ${line#*,})"
continue
fi
if [[ "$line" == "#EXTGRP"* ]]; then
group="$(echo -ne ${line#*:})"
continue
fi
address="$line"
WriteOut
done < "$infile"
cp $outfile $xupnpdpl
wget -q -O - "$xupnpdhttp/ui/api?action=reload"
/opt/bin/logger "[INFO] Succesfully created playlist for xupnpd."
rm $infile
rm $outfile
UPD
Настраивал заново, решил сделать пошаговое описание
Для начала обновим систему
Код: Выделить всё
opkg update
opkg upgrade
Установим необходимые пакеты
Код: Выделить всё
opkg install xupnpd wget bash
По вкусу
Код: Выделить всё
opkg install nano
И сделаем его редактором по умолчанию
Код: Выделить всё
echo "export EDITOR=/opt/bin/nano" >> /opt/etc/profile
Установим корневые сертификаты, чтобы wget не ругался на то, что не может проверить сертификат https
Код: Выделить всё
mkdir -p /opt/etc/ssl/certs
echo "export SSL_CERT_DIR=/opt/etc/ssl/certs" >> /opt/etc/profile
opkg install ca-certificates
Для ленивых: wget можно просто запускать с опцией --no-check-certificate
Создадим наш скрипт
Код: Выделить всё
mkdir /opt/root/edemtv
cd /opt/root/edemtv
nano create-playlist.sh
Копируем содержимое скрипта, заменив ссылку на плейлист и на xupnpd.
Выходим из nano, сохраняем Ctrl+X -> Y
Код: Выделить всё
chmod +x create-playlist.sh
Можно проверить, все ли работает
Код: Выделить всё
./create-playlist.sh
Если все работает, то создадим периодическое задание, чтобы плейлист обновлялся
Установим cron по первому варианту
Создадим задание с периодичностью раз в день, в 6 утра.
Код: Выделить всё
0 6 * * * /opt/bin/bash /opt/root/edemtv/create-playlist.sh > /opt/root/edemtv/log.txt 2>&1
Можно идти смотреть ТВ
