Jump to content

Свой собственный vtuner на keenetic


Recommended Posts

Здравствуйте!

Ни для никого не новость, что большая часть удобных сервисов западных производителей стала недоступна для жителей нашей страны. Один из которых является vtuner.

Коротко: vtuner - это интернет сервис по предоставлению ссылок online вещания для сетевых аудио ресиверов. Данный сервис в своё время предоставляло достаточно много производителей hifi и не очень, оборудования, такие как Denon, Harman/Cardon, Pioneer и д.р. Vtuner сначала сделал свой сервис платным, причём они делали плату чисто символическую в районе 2 или 3 доллара и не важно какое количество у вас было оборудования, а потом, спустя два года, перестали даже отвечать на письма. Говорить про плюсы использования потокового радио в отличии от обычного fm вещания смысла нет, т.к. дискуссия не для этой темы.

А теперь о проблеме. Есть энтузиаст, который в своё время выпустил такой продукт как "ycast", при помощи данной утилиты (так скажем), можно создать свой сервер с ссылками потоковыми которые хотим слушать. Да, есть момент, что для нашего вендора оборудования нужно в DNS сделать перенаправление на свой сервер, откуда оборудование будет брать потоки и воспроизводить. Данная технология работает и работает достаточно (в целом), приемлемо, проблема в том, что она нормально собирается только на полноценных linux системах (опробовано на centos 7), но логично что держать физический или виртуальный сервер у себя дома для этого смысла большого нет и хотелось бы адаптировать для работы на keenetic, ибо он всё равно у всех работает круглосуточно и ресурсов не потребляет таких как необходимо для отдельной виртуального или физического ПК.

Но при сборке оказалась проблема. Данный код написан на питоне и человек сделал зависимость его от модуля pillow, как я понял этот модуль для картинок (автораты?), но для оборудования эти картинки не нужны совсем, а проблема в установле пакета как раз спотыкается на нём. К сожалению на github, где находится данный проект, никто не отвечает на запрос по поводу искоренения данной библиотеки, точнее её зависимости. Поэтому решил открыть тут данную тему, возможно у нас найдутся не равнодушные люди, которые также как и я заинтересованны в запуске данной программы.

Уважаемые администраторы форума, я сразу прошу прощения, если я каким-то образом нарушил правила форума или же создал тему не в том разделе. Приношу свои извинения, не со зла это делал, просто не понял где лучше это сделать.

Информация для заинтересованных лиц находится на: https://github.com/milaq/YCast (не реклама, а ссылка откуда информация по продукту). Мой запрос на сайте производителя, а также лог с ошибкой сборки находится вот тут: https://github.com/milaq/YCast/issues/127 (опять же, не реклама).

  • Upvote 1
Link to comment
Share on other sites

Александр, здравствуйте! Почему-то не находит в репе он его.

/opt/ycast/YCast-1.1.0 # opkg install python3-pillow
Unknown package 'python3-pillow'.
Collected errors:
 * opkg_install_cmd: Cannot install package python3-pillow.

Link to comment
Share on other sites

Здравствуйте!

 

/opt/ycast/YCast-1.1.0 # opkg update
Downloading http://entware-3x.zyxmon.org/binaries/mipsel/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/keen3x
Downloading http://bin.entware.net/mipselsf-k3.4/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/entware
Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/keendev

 

Link to comment
Share on other sites

По второй ссылке нашёл что есть там pillow, странно что opkg его не находил, перегрузил роутер, нашёл, установил. Но это не решило проблему всё равно. Ошибка также. Суть в том что установка происходит через: pip3 install ycast. но ошибка всё равно на pillow ссылается.

Link to comment
Share on other sites

В общем удалил python, python3 и все их зависимости.

Поставил только python3, установил libjpeg-turbo, вроде как запустился.

Осталось понять как его в автозагрузку поставить. Поковырялся в /opt/etc/init.d, но там странная структура, не вижу запускных команд в файлах. Подскажите пожалуйста, правильное написание, где мне чётко нужно указать команду запуска, как правильно это написать.

  • Upvote 1
Link to comment
Share on other sites

  • 3 weeks later...

поддержу тему.

сам недавно установил YCast на Extra KN-1711, работало с ручным запуском ОК.  

перешёл на Hopper KN-3810 (и надеялся, что встроенной памяти хватит на OPKG и этот скрипт, но всё равно не хватает на установку Pillow, так что OPKG с флешки)
- тоже работает, а вот с автозапуском засада - запускается и вываливается с таймаутом через 1-5 минут и всё тут.

причём время таймаута вроде как зависит от номера в имени файла в после S согласно уровня выполнения init.d

Мар 29 20:49:11 ndm
Opkg::Manager: /opt/etc/init.d/rc.unslung: timed out.
Мар 29 20:49:11 ndm
Process: killing all processes in "Opkg shell" group...

сам скрипт:

#!/bin/sh

PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin
python3 -m ycast -p 80 -c /opt/home/YCast/stations.yml

Я к юниксу подошёл впервые так близко. Так что не ругайтесь, бывалые...

Edited by servo
Link to comment
Share on other sites

14 часа назад, servo сказал:

сам скрипт:

Если ЭТО всё, ничего удивительного нет )))

~ # 
~ # /opt/etc/init.d/S81ycast start
Service start
~ # 
~ # pgrep -alf ycast
23142 python3 -m ycast -p 8888
~ # 
~ # /opt/etc/init.d/S81ycast stop
Service stop
~ # 
~ # pgrep -alf ycast
~ # 

функционал накручивайте сами

#!/bin/sh

PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin

start() {
  python3 -m ycast -p 8888 > /dev/null 2>&1 &
}

stop() {
  kill $(pgrep -of ycast)
}

case "$1" in
	start)
		start && echo "Service start"
	;;
	stop)
		stop && echo "Service stop"
	;;
	*)
		echo "Usage: $0 {start|stop}"
	;;
esac

 

  • Thanks 1
Link to comment
Share on other sites

Вариант №2 (внимательно следим за руками)

~ # 
~ # ln -sf /opt/lib/python3.10/site-packages/ycast/__main__.py /opt/bin/ycast
~ # 
~ # sed -i -e 's,^#!.*python,#!/opt/bin/python,' /opt/bin/ycast 
~ # 
~ # chmod +x /opt/bin/ycast 
~ # 
#!/bin/sh

ENABLED=yes
PROCS=ycast
ARGS="-p 8888"
PREARGS=""
DESC="YCast"
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func
~ # 
~ # /opt/etc/init.d/S80ycast status
 Checking YCast...              dead. 
~ # 
~ # /opt/etc/init.d/S80ycast start
 Starting YCast...              done. 
~ # 
~ # /opt/etc/init.d/S80ycast status
 Checking YCast...              alive. 
~ # 
~ # /opt/etc/init.d/S80ycast stop
 Checking YCast...              alive. 
 Shutting down ycast...              done. 
~ # 
~ # /opt/etc/init.d/S80ycast status
 Checking YCast...              dead. 
~ # 
~ # /opt/etc/init.d/S80ycast start
 Starting YCast...              done. 
~ # 
~ # /opt/etc/init.d/S80ycast restart
 Shutting down ycast...              done. 
 Starting YCast...              done. 
~ # 

 

  • Thanks 1
Link to comment
Share on other sites

22 часа назад, TheBB сказал:

Вариант №2

Спасибо огромное! Всё работает.


Единственное, ругаться стала, видимо прописать надо в Менеджере OPKG в веб интерфейсе:

[E] Mar 30 21:52:14 ndm: Opkg::Manager: invalid initrc "/opt/etc/initrc": no such file or directory, trying /opt/etc/init.d/. 

 

Link to comment
Share on other sites

Ребят, извините, выпал из темы, занят был работой. Проблему свою решил скриптом вот таким, может кому как пример подойдёт.

в /opt/etc/init.d создаём файл что-нибуть в роде S24vtuner в него вставляем:

 

#!/bin/sh

ENABLED=yes

PROCS="python"

ARGS="-mycast -d -l 192.168.7.1 -p 80 -c /opt/etc/ycast/stations.yml"
PREARGS=""
DESC=$PROCS
PATH=/opt/etc/ycast:/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func


Всё, готово.

Link to comment
Share on other sites

  • 5 months later...

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

Link to comment
Share on other sites

  • 2 weeks later...

Думаю, что это будет проблематично. Т.к. делал давно, половину уже не помню. Но работает до сих пор нормально. Могут быть разного рода проблемы из-за разных версий роутеров. Вы начните делать, а далее видно будет. Если есть какие-то вопросы по поводу что в конфигурационных файлах тех или иных, то спрашивайте, посмотрю у себя и отвечу.

Link to comment
Share on other sites

  • 5 months later...

Интересно, узнал сейчас про оборудование с AVR вещанием на него. Но думаю, что достаточно нишевое решение.  Все же тогда просится старый-добрый MPD и звуковая карта с pass-trough на Тослинк или Коаксиал, так как все эти Ямахи и прочее в цифровых входах не имеют USB (есть для айфона, возможно это и есть вход на цап, тогда и звуковая на роутер не нужна). Ну или тогда уже более простая звуковая с AUX и кабель 3,5мм на эту технику. Разницы в этих двух вариантах ни в чем нет - радиостанции точно также прописываются ручками, переключение станций идет через приложение,  Цитата:
"Вторая полезная опция — облегчённое управление и настройка с мобильных устройств на платформе iOS и Android с использованием приложения Denon Remote App. Оно также предоставляет доступ к интернет-радио и позволяет управлять воспроизведением аудиофайлов. Разумеется, есть и штатный пульт ДУ, не перегруженный кнопками и потому удобный."
Смысл будет только тогда, когда роутер в одном месте, а оборудование совсем в другом. Но и в этом случае есть совсем простое решение - второй дешевый роутер, вроде Гиги-II за 1200 руб. с Авито.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...