Страница 1 из 1

Попытка замены hypnotix более простой конструкцией

Добавлено: 09 фев 2025, 21:32
ArturS
Хочу поделиться одним из простых вариантов просмотра свободных тв-каналов в формате *.m3u. Это вместо Hypnotix. Для этого в системе должны быть установлены пакеты mpv, youtube-dl и yt-dlp. Без yt-dlp mpv не показывает потоки с одноклассников. Shell-скрипты составлялись на базе yad, поэтому желательно установить и его.

1. Как выглядит shell-скрипт для воспроизведения *.m3u файлов с помощью mpv?

Примерно так:

Код: Выделить всё

#!/bin/sh

# Новый круглосуточный информационно-публицистический телеканал "Запад-24"
# Новости Калининграда и Северо-Западного федерального округа каждый час.
# Самые значимые события, факты, интервью с интересными людьми,
# научно-популярные и познавательные программы, социально-значимые проекты и
# увлекательные истории. 
# https://streaming.televizor-24-tochka.ru/live/8.m3u8

mrl=https://vgtrkregion-reg.cdnvideo.ru/vgtrk/kaliningrad/russia1-hd/index.m3u8
exec /usr/bin/mpv --geometry=50%:50% --hwdec=auto-safe --no-border --autofit=1280x720 $mrl &
Это было истязание клавиатуры, иправление ошибок и извечное - "что то хреновато, ну как то не так должно быть"... Поэтому, с целью упрощения процесса, для создания подобных скриптов, был использован shell-скрипт на yad, специально для копипастеров. Коим я и являюсь.

Выглядит так:

Код: Выделить всё

#!/bin/bash

DESC="Россия 1 передача из Калининграда"
RES="720x600"
URL="https://vgtrkregion-reg.cdnvideo.ru/vgtrk/kaliningrad/russia1-hd/index.m3u8"
SCREENSHOT="$HOME/tv_screenshots"
COMMAND="exec /usr/bin/mpv --geometry=50%:50% --hwdec=auto-safe --screenshot-directory=\""\$SCREENSHOT\"" --no-border --autofit=\""\$RES\"" \""\$URL\"" &"

# GUI программы - окно с полями для ввода данных.
var=$(yad --window-icon=gtk-yes \

    --form \
    
    --separator="," \
    
    --title="Создание скриптов для показа каналов iptv" \
    
    --field="Описание канала:" "$DESC" \
    
    --field="URL канала:" "$URL" \
    
    --field="Разрешение окна плеера:" "$RES" \
    
    --field="Название скрипта:" \
    
    --button="gtk-cancel:1" \
    
    --button="gtk-ok:0" \
    
    --width=800 \
    
    --center)
    
# Присвоение полей окна для ввода - переменным:

DESC=$(echo $var | awk 'BEGIN {FS="," } { print $1 }')

URL=$(echo $var | awk 'BEGIN {FS="," } { print $2 }')

RES=$(echo $var | awk 'BEGIN {FS="," } { print $3 }')

NAME=$(echo $var | awk 'BEGIN {FS="," } { print $4 }')

# Создание скрипта
echo "#!/bin/bash" > "$NAME"
echo "" >> "$NAME"
echo "#" >> "$NAME"
echo "# $DESC" >> "$NAME"
echo "#" >> "$NAME"
echo "" >> "$NAME"
echo "URL="\""$URL\"" >> "$NAME"
echo "SCREENSHOT="\""\$HOME/screenshots\"" >> "$NAME"
echo "#RES="\""1280x720\"" >> "$NAME"
echo "RES="\""$RES\"" >> "$NAME"
echo "$COMMAND" >> "$NAME"
echo "" >> "$NAME"
echo "echo \"Немножко терпения, плеер запускается.\"" >> "$NAME"

chmod u+x "$NAME"
Выглядит так:



Должен получиться такой скрипт(zapad-24),который уже можно запустить в работу из консоли:

Код: Выделить всё

#!/bin/bash

#
# Россия 1 передача из Калининграда
#

URL="https://vgtrkregion-reg.cdnvideo.ru/vgtrk/kaliningrad/russia1-hd/index.m3u8"
SCREENSHOT="$HOME/screenshots"
#RES="1280x720"
RES="720x600"
exec /usr/bin/mpv --geometry=50%:50% --hwdec=auto-safe --screenshot-directory="$SCREENSHOT" --no-border --autofit="$RES" "$URL" &

echo "Немножко терпения, плеер запускается."
Идём далее... Для запуска этого скрипта из GUI, нужно создать файл *.desktop. Следующий скрипт(mk-dsktop) позволяет его создать:

Код: Выделить всё

#!/bin/bash

SCRIPT_P="/usr/share/iptv/scripts/"
ICONS_P="/usr/share/iptv/icons/"

# GUI программы - окно с полями для ввода данных.
var=$( yad --window-icon=gtk-yes \
    --form \
    --separator="," \
    --center \
    --title="Создание файлов формата .desktop" \
    --field="Команда::SFL" "$SCRIPT_P" \
    --field="Иконка:":SFL \
    --field="Name:" \
    --field="Имя:" \
    --field="Comment:" \
    --field="Комменарий:" \
    --button="gtk-cancel:1" \
    --button="gtk-ok:0" \
    --width=700 )

# При нажатии кнопки "Отменить" выход из скрипта.
if [[ $? != 0 ]]; then
  exit 1
fi

# Присвоение полей бланка для ввода переменным:
command=$(echo $var | awk 'BEGIN {FS="," } { print $1 }')
icon=$(echo $var | awk 'BEGIN {FS="," } { print $2 }')
name=$(echo $var | awk 'BEGIN {FS="," } { print $3 }')
name_ru=$(echo $var | awk 'BEGIN {FS="," } { print $4 }')
comment=$(echo $var | awk 'BEGIN {FS="," } { print $5 }')
comment_ru=$(echo $var | awk 'BEGIN {FS="," } { print $6 }')

echo "[Desktop Entry]" > "$name.desktop"
echo "Version=1.1" >> "$name.desktop"
echo "Name=$name" >> "$name.desktop"
echo "Name[ru]=$name_ru" >> "$name.desktop"
echo "Exec=$command" >> "$name.desktop"
echo "Comment=$comment" >> "$name.desktop"
echo "Comment[ru]=$comment_ru" >> "$name.desktop"
echo "Icon=$icon" >> "$name.desktop"
echo "Terminal=false" >> "$name.desktop"
echo "Type=Application" >> "$name.desktop"
echo "NoDisplay=false" >> "$name.desktop"
echo "Categories=iptvchannels;" >> "$name.desktop"
В работе он выглядит так:



Ну и последнее, можно сделать центр управления этими десктопами. Для себя я это сделал так(iptv-control-center):

Код: Выделить всё

#!/usr/bin/env bash

YAD="/usr/bin/yad"
KEY="1234568"

res1=$(mktemp --tmpdir iface1.XXXXXXXX)
res2=$(mktemp --tmpdir iface2.XXXXXXXX)
res3=$(mktemp --tmpdir iface3.XXXXXXXX)

# Информационные каналы
$YAD --plug=$KEY \
     --tabnum=1 \
     --icons \
     --read-dir="/usr/share/iptv/channels/information" \
     --sort-by-name \
     --item-width=100 > $res1 &

# Познавательные каналы
$YAD --plug=$KEY \
     --tabnum=2 \
     --icons \
     --read-dir="/usr/share/iptv/channels/education" \
     --sort-by-name \
     --item-width=100 > $res2 &

# Сериалы
$YAD --plug=$KEY \
     --tabnum=3\
     --icons \
     --read-dir="/usr/share/iptv/channels/serials" \
     --sort-by-name \
     --item-width=100 > $res3 &

# Основное окно
$YAD --notebook \
     --key=$KEY \
     --tab="Инфомационные" \
     --tab="Развлекательные" \
     --tab="Сериалы" \
     --always-print-result \
     --dialog-sep \
     --title="Каталог IPTV каналов" \
     --image=/usr/share/iptv/icons/iptvchannels.png \
     --width=730 \
     --height=500 \
     --center \
     --borders="10" \
     --window-icon=/usr/share/iptv/icons/iptvchannels.png \
     --buttons-layout=center \
     --image-on-top \
     --text='<span font_weight="bold">Просмотр российских IPTV каналов.</span>' \
     --button=gtk-ok \

# Очистка
rm -f $res1 $res2 $res3
У меня это выглядит так:


Рабочие плейлисты можно поискать здесь.
Сознательно не предлагаю готовый пакет, только идею.

Попытка замены hypnotix более простой конструкцией

Добавлено: 09 фев 2025, 22:32
slant
ArturS писал(а):
09 фев 2025, 21:32
Хочу поделиться одним из простых вариантов просмотра свободных тв-каналов в формате *.m3u
Нет такого формата телеканалов - *.m3u. Это формат плейлиста для многих плееров, изначально - от WinAMP, насколько я помню . Внутри него может быть что угодно - это просто список файлов или адресов.
Есть формат .m3u8 - это уже более специализированная сущность, но тоже еще не сам стрим а его описание. Путать его с простым .m3u - некорректно.

А еще, практически все такие плейлисты можно просто скормить VLC - он из коробки понимает большинство форматов стримов в которых ведется ТВ вещание. А сам VLC - не привязан к конкретному GUI, так же как MPV. И тоже умеет играть практически все. Т.е. от всего вышенаписанного можно оставить только .десктопы с вызовом "vlc some_playlist.m3u" или даже "vlc https://some_site.tv/some_playlist.m3u(8)"

Попытка замены hypnotix более простой конструкцией

Добавлено: 09 фев 2025, 23:16
qwertKI
ArturS писал(а):
09 фев 2025, 21:32
Как выглядит shell-скрипт для воспроизведения *.m3u файлов с помощью mpv?
... весь mpv.conf туда бы еще вписали ... запуститься все в терминале:

Код: Выделить всё

mpv https://vgtrkregion-reg.cdnvideo.ru/vgtrk/kaliningrad/russia1-hd/index.m3u8
(ссылка ваша) ...все остальное лежит в home/user/.config/mpv/mpv.conf внутри что то вроде этого :
hwdec=auto-copy
profile=gpu-hq
scale=ewa_lanczossharp
cscale=ewa_lanczossharp
# video-sync=display-resample
interpolation
tscale=oversample
ytdl-format="bestvideo[height<=?1080]+bestaudio/best"
target-peak=400
target-contrast=1000
target-trc=srgb
target-prim=bt.709
# vo=gpu
# tone-mapping=mobius
# audio-spdif=ac3,eac3,dts-hd,truehd
volume-max=200
autofit-larger=60%x60%
gpu-api=vulkan
gpu-context=waylandvk
(нужное, ненужное поставить,снять # ) ... в качестве источника.m3u может быть как локальный файл так и с любого ресурса , сами на облако закиньте, дайте ему права и редактируйте при необходимости ... канлы в mpv переключаются ... как то так ...

Попытка замены hypnotix более простой конструкцией

Добавлено: 11 фев 2025, 16:13
ArturS
slant писал(а):
09 фев 2025, 22:32
Нет такого формата телеканалов - *.m3u.
Что я написал?
ArturS писал(а):
09 фев 2025, 21:32
Хочу поделиться одним из простых вариантов просмотра свободных тв-каналов в формате *.m3u.
Теперь википедия - M3U

Прочтите документ и самоутверждайтесь перед своими домашними. Хорошо?

Попытка замены hypnotix более простой конструкцией

Добавлено: 11 фев 2025, 16:24
ArturS
qwertKI писал(а):
09 фев 2025, 23:16
.. весь mpv.conf туда бы еще вписали ... запуститься все в терминале:
За дополнтельные сведения - спасибо. Но Ваш пост без моего читать никто не станет. Ибо моя цель - заинтересовать новичка и чтобы сразу заработало. А потом уже сам найдет инфу, если станет интересно.
Что у вас за манера ответов, с выпяченной нижней губой? Комплекс неполноценности и желание самоутвердиться таким образом?

Ваше Превосходительство, просьба в следующий раз оформлять свои коменты в нейтральном виде.

PS @ Виктор Михайлович Полесов.

Попытка замены hypnotix более простой конструкцией

Добавлено: 11 фев 2025, 16:44
slant
ArturS писал(а):
11 фев 2025, 16:13
Что я написал?
ArturS писал(а):
11 фев 2025, 16:13
Прочтите документ и самоутверждайтесь перед своими домашними. Хорошо?
Может быть тогда перед написанием руководств, вы сначала подучите лексику языка, и будете четче формулировать свои мысли - согласно значениям слов и правилам построения фраз? Как было написано "свободных тв-каналов в формате *.m3u" - так и понято. Но .m3u - это не "формат телеканалов". Это плейлист, в котором может быть что угодно. Вики подтверждает. :)

Если же имелось в виду .m3u как средство обмена ссылками на стримы телеканалов - так и нужно было формулировать. Т.к. сам формат трансляции (т.е. непосредственно вещания) - это RTMP, RTSP/RTP, HLS, MPEG-DASH, WebRTC и т.д. А то, прозвучало примерно так же как у бабушек, которые компьютером монитор называют - не понимая разницы.

Корректно же это будет звучать например так: "Хочу поделиться одним из простых вариантов просмотра свободных тв-каналов, ссылки на которые передаются в формате *.m3u."

Если вы беретесь писать руководства, стоит приложить усилия, и делать это так, чтобы не путать людей их читающих, и не давать ошибочную информацию.

Попытка замены hypnotix более простой конструкцией

Добавлено: 11 фев 2025, 17:11
ArturS
slant писал(а):
11 фев 2025, 16:44
Может быть тогда перед написанием руководств,
Так, для тех кто в танке! Формат m3u Существует? В каком конкретно месте утверждалось, что это именно формат телеканалов? Вот в такой форме:
slant писал(а):
09 фев 2025, 22:32
Нет такого формата телеканалов - *.m3u.
Или больше делать нечего?
По теме что нибудь есть или кроме малограмотного бреда ничего более писать не умеете?

Попытка замены hypnotix более простой конструкцией

Добавлено: 11 фев 2025, 17:29
ArturS
Насчет образов речи, кто как говорит?

Манера моего оппонента по форуму:
"С точки зрения банальной эрудиции, не каждый человеческий индивидуум способен лояльно реагировать на все тенденции потенциального действия."

Корреспондент из прессы:
"Английские ученые провели исследования и выяснили, что они самые умные на фоне окружающих особ демократии."

Короткий воиственный сленг:
"А по делу чёнить есть? Звиздуй отсюда!"

Краткость - сестра таланта, но не сам талант...

Попытка замены hypnotix более простой конструкцией

Добавлено: 11 фев 2025, 18:23
slant
ArturS писал(а):
11 фев 2025, 17:11
Так, для тех кто в танке! Формат m3u Существует? В каком конкретно месте утверждалось, что это именно формат телеканалов?
ArturS писал(а):
09 фев 2025, 21:32
Хочу поделиться одним из простых вариантов просмотра свободных тв-каналов в формате *.m3u
Первая же строчка, первого сообщения темы. Вы от своих своих слов отказываетесь? Или просто не понимаете, что именно говорите?

Тем не менее, повторю еще раз и перефразирую максимально прямо: некорректные и размытые формулировки - это не критично в обычном общении, но мало приемлемо в материалах, претендующих быть руководством.

На сем, во избежание пустого флейма тема закрыта.