xupnpd - eXtensible UPnP agent
-
- Сообщения: 238
- Зарегистрирован: 06 сен 2015, 00:47
-
- Сообщения: 285
- Зарегистрирован: 28 окт 2015, 04:43
В общем, поигрался с yt-proxy
Занятная тулза ))) Всё завелось на тестовой виртуальной машине со старичком Antix'ом на debian'e x32Сам бинарник слегка рихтанул хекс-редактором сменив youtube-dl на youtubb-dl (благо, он там лишь разово встретился) дабы не пришлось заменять оригинальный бинарник скриптом-обёрткой. При холостом запуске обёртки с перенаправлением входных данных бинарь зело ругалась
но данные тем не менее перенаправляла
Когда начал скриптом отдавать в stdout ссылку, ругаться перестала ))) В принципе, получилось соорудить для ютуба на базе баша и пары утилит велосипед, который вроде повеселее работает, чем youtube-dl, но у меня пока затык с декодингом сигнатур из "cipher" - ссылок. В сети вроде есть решения на питоне, но они включены в общий массив скриптов и я хз как их оттуда вычленить и оформить отдельным скриптом т.к. с питоном я дел практически не имел.
Помимо собственно ютуба, решил проверить работу проксика в связке с youtube-dl и другими ресурсами, но начав на vimeo, на нём же и закончил
т.к. проксик послал лесом при скармливании ссылки, а "youtube-dl -g" отдал вместо .mp4 m3u8 (hls), а с "(mp4)[height<=720]" так вообще .mpd (хотя у vimeo при этом есть mp4). Посему я подозреваю, что что-то похожее будет и с другими ресурсами и решил пока более не эксперементировать. Хотя подумалось, что прикрутить бы ко всему этому делу ту тулзу (запамятовал название), которая перегоняет hls в монолитный стрим и отдавать его проксику было бы неплохо т.к. даже на ютубе в числе прочего есть и hls (сам я подобное не осилю, просто высказываю мысли вслух).
P.S. Имхо, этот проект надо выделить отдельным git'ом, добавить исходники (я врятли там что-то пойму, но я думаю многим людям этот проект будет интересен) и по возможности подкрутить, добавив возможность свободного запуска бинарника или скрипта (который будет в stdout отдавать передаваемую ссылку) и регулировку передаваемых ему параметров.

Код: Выделить всё
Linux antiX1 3.7.10-antix.5-486-smp #2 SMP Tue Oct 15 20:58:22 EEST 2013 i686

Код: Выделить всё
2020/03/03 13:08:13 Get : unsupported protocol scheme ""
2020/03/03 13:08:13 http: panic serving 127.0.0.1:47691: runtime error: invalid memory address or nil pointer dereference
goroutine 6 [running]:
net/http.(*conn).serve.func1(0x18fb2420)
/usr/lib64/go/src/net/http/server.go:1697 +0x9f
panic(0x823a960, 0x83a1420)
/usr/lib64/go/src/runtime/panic.go:491 +0x1d0
main.PlayVideo(0x8377ee0, 0x18f687e0, 0x18f74480)
/home/mejgun/scripts/go/yt-proxy/streamer.go:58 +0x4d0
main.makeHandler.func1(0x8377ee0, 0x18f687e0, 0x18f74480)
/home/mejgun/scripts/go/yt-proxy/streamer.go:107 +0xcf
net/http.HandlerFunc.ServeHTTP(0x18f0c548, 0x8377ee0, 0x18f687e0, 0x18f74480)
/usr/lib64/go/src/net/http/server.go:1918 +0x34
net/http.(*ServeMux).ServeHTTP(0x83a6a80, 0x8377ee0, 0x18f687e0, 0x18f74480)
/usr/lib64/go/src/net/http/server.go:2254 +0xf0
net/http.serverHandler.ServeHTTP(0x18f74280, 0x8377ee0, 0x18f687e0, 0x18f74480)
/usr/lib64/go/src/net/http/server.go:2619 +0x8e
net/http.(*conn).serve(0x18fb2420, 0x8378480, 0x18f40a80)
/usr/lib64/go/src/net/http/server.go:1801 +0x5d1
created by net/http.(*Server).Serve
/usr/lib64/go/src/net/http/server.go:2720 +0x1f6

Помимо собственно ютуба, решил проверить работу проксика в связке с youtube-dl и другими ресурсами, но начав на vimeo, на нём же и закончил

P.S. Имхо, этот проект надо выделить отдельным git'ом, добавить исходники (я врятли там что-то пойму, но я думаю многим людям этот проект будет интересен) и по возможности подкрутить, добавив возможность свободного запуска бинарника или скрипта (который будет в stdout отдавать передаваемую ссылку) и регулировку передаваемых ему параметров.
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]
-
- Сообщения: 285
- Зарегистрирован: 28 окт 2015, 04:43
Помнится разбирал этот вопрос год или полтора назад. Всех подробностей не помню, но эти данные зашиты в метаданные потока и выдаются лишь хитровыделанным запросом плеера, плюс данные обновляются динамически по ходу воспроизведения (подгружается название следующего трека например). При проксировании через xupnpd в текущем виде этот трюк не пройдёт по идее. Это надо городить отдельные костылиmesb писал(а):Отличный вопрос кстати.
Не хватает мне этого когда радио играет поток с длна сервера.

Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]
-
- Сообщения: 238
- Зарегистрирован: 06 сен 2015, 00:47
ZigZag писал(а):Источник цитаты проксик послал лесом при скармливании ссылки, а "youtube-dl -g" отдал вместо .mp4 m3u8 (hls), а с "(mp4)[height<=720]" так вообще .mpd (хотя у vimeo при этом есть mp4). Посему я подозреваю, что что-то похожее будет и с другими ресурсами и решил пока более не эксперементировать
Ну вы чего на первом шаге то встали, осталось то совсем чуть чуть.
Я вам параметры для чего привёл, чтобы вы могли посмотреть что в итоге выдаёт ютуб дл.
Поидее вы их все фильтруете скриптом.
Смотрите, напримере вимео:
Смотрим чо она нам там отдаёт если её спросить:
youtube-dl -F https://vimeo.com/164438721
Вроде как действительно есть нужные данные среди нужных нам:
Однако, если вы неменяя параметров скриптом, пропустите "(mp4)[height<=720]" то вот что будет:
Код: Выделить всё
youtube-dl -f "(mp4)[height<=720]" -g vimeo.com/164438721
WARNING: The url doesn't specify the protocol, trying with http
https://skyfire.vimeocdn.com/1583340098-0xbdab57e16d666a8d994c58328d96e3f306067030/164438721/video/521670602,521670601,521670594,521670592/master.mpd?base64_init=1
Это тосамое мпд, потомушто ютуб дл выдал максимальный вариант, всёравно что если бы вы выбрали это:
Код: Выделить всё
youtube-dl -f dash-fastly_skyfire-video-521670601 -g vimeo.com/164438721
WARNING: The url doesn't specify the protocol, trying with http
https://skyfire.vimeocdn.com/1583340445-0x961e23fcb63bbbbc989143ef5d8c0ac82395c204/164438721/video/521670602,521670601,521670594,521670592/master.mpd?base64_init=1
Посмотрите внимательно на левую часть того что выдалось когда мы спросили ютуб дл о разных форматах.
Вам нужно баш скриптом, заменять конструкцию: "(mp4)[height<=720]" на http-720p.
И вы получите искомое:
Код: Выделить всё
youtube-dl -f http-720p -g vimeo.com/164438721
WARNING: The url doesn't specify the protocol, trying with http
https://vod-progressive.akamaized.net/exp=1583341088~acl=%2A%2F521670601.mp4%2A~hmac=0f4a61ec12418052c2d958412e91d984e57c74f169e53959199df377301e4337/vimeo-prod-skyfire-std-us/01/2887/6/164438721/521670601.mp4
На деле возможно можно к вимео подобраться более элегантно, но надо изучать как подобрать параметры:
https://github.com/ytdl-org/youtube-dl#format-selection
А вопросы уже такие задавались кстати:
https://github.com/ytdl-org/youtube-dl/issues/8017
-
- Сообщения: 238
- Зарегистрирован: 06 сен 2015, 00:47
Ещё также можно присоединиться к разработке:
https://github.com/mejgun/yt-proxy
Код писался очень давно и "на коленке" в целях просто проверить получится ли.
https://github.com/mejgun/yt-proxy
Код писался очень давно и "на коленке" в целях просто проверить получится ли.
-
- Сообщения: 285
- Зарегистрирован: 28 окт 2015, 04:43
Да я в том смысле, что от затеи и не отказываюсь, а просто откладываю, для более детальной проработки позднее.mesb писал(а):Ну вы чего на первом шаге то встали, осталось то совсем чуть чуть.
Понятно. Надо будет взяться за чтение талмуда для youtube-dl. Ман к нему разросся до неприличных размеров. Им уже давно переименовать утилиту. Это практически аналог USD под win.Это тосамое мпд, потомушто ютуб дл выдал максимальный вариант, всёравно что если бы вы выбрали это:
Понял. Спасибоmesb писал(а):Посмотрите внимательно на левую часть того что выдалось когда мы спросили ютуб дл о разных форматах.
Вам нужно баш скриптом, заменять конструкцию: "(mp4)[height<=720]" на http-720p.
И вы получите искомое:

Да я бы с радостью, да моих навыков не хватит. Плюс про GO я узнал от вас же. Вот сейчас сижу думаю, как с имеющимся у меня кросс-компилятором (gcc) собрать yt-proxy под плеер на mipsel, который у меня выступает в качестве сервера.mesb писал(а):Ещё также можно присоединиться к разработке:
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]
-
- Сообщения: 285
- Зарегистрирован: 28 окт 2015, 04:43
К слову о компиляции. Никто случаем не собирал бинарники hlspxd под win и linux на базе исходников из entware ? На этих платформах тоже не помешала данная тулза. Ну и раз пошла такая пьянка - тот же вопрос, но поводу xupnpd2 ))) Готовых сборок в сети я не обнаружил 

Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]
-
- Сообщения: 22
- Зарегистрирован: 25 фев 2020, 13:11
камрады, шалом
прошу помощи в установке/настройке xupnpd на KN-1410 ...
ставлю xupnpd2 - вебморда на порту 4044 не открывается, хотя сам сервер в сети виден ...
снес xupnpd2, поставил xupnpd ...
xupnpd запускается, вебморда открывается, плейлист закинул - на ps3 не показывает
выдает "Unable to probe file: invalid data found when processing input"
сам плейлист явно живой, ибо непосредственно с той же ps3 все работает
подвинул вебморду xupnpd на 4144 чтобы не мешался и снова поставил xupnpd2
в итоге ps3 видит оба сервера, xupnpd и xupnpd2, но ps3 ни с одного потоки не открывает
что делать, ума не приложу, plz help
прошу помощи в установке/настройке xupnpd на KN-1410 ...
ставлю xupnpd2 - вебморда на порту 4044 не открывается, хотя сам сервер в сети виден ...
снес xupnpd2, поставил xupnpd ...
xupnpd запускается, вебморда открывается, плейлист закинул - на ps3 не показывает

сам плейлист явно живой, ибо непосредственно с той же ps3 все работает
подвинул вебморду xupnpd на 4144 чтобы не мешался и снова поставил xupnpd2
в итоге ps3 видит оба сервера, xupnpd и xupnpd2, но ps3 ни с одного потоки не открывает

что делать, ума не приложу, plz help

-
- Сообщения: 238
- Зарегистрирован: 06 сен 2015, 00:47
sterhv писал(а):Источник цитаты плейлист закинул
Что там внутри плейлиста то хоть?
-
- Сообщения: 22
- Зарегистрирован: 25 фев 2020, 13:11
mesb писал(а):Источник цитаты Что там внутри плейлиста то хоть?
#EXTM3U
#EXTINF:-1,=== Обновлён: 17.12.2019 ===
https://ххххххх.ru/wp-content/uploads/2 ... or7890.png
#EXTINF:-1,=== Обсуждение: smarttvnews.ru ===
https://ххххххх.ru/wp-content/uploads/2 ... or7890.png
#EXTINF:-1,Discovery Channel
http://78.157.230.19/streaming/discover ... ylist.m3u8
#EXTINF:-1,Discovery Channel
http://109.248.236.41:4433/udp/238.1.1.124:1234
#EXTINF:-1,Discovery Channel
http://fullhdp.servep2p.com:3500/gokhan ... hanc/37688
#EXTINF:-1,National Geographic
http://178.124.183.5/hls/CH_NATGEO/vari ... ?version=2
#EXTINF:-1,National Geographic HD
http://185.176.117.243/live/eds/NatGeoH ... GeoHD.m3u8
#EXTINF:-1,National Geographic HD
http://88.119.220.2/live/eds/NatGeoHD/H ... GeoHD.m3u8
#EXTINF:0,Nat Geo Wild
http://178.124.183.5/hls/ESCMSBZJ8X/var ... ?version=2
....
ну и так далее ...
Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»
Кто сейчас на конференции
Всего 2 посетителя :: 0 зарегистрированных, 0 скрытых и 2 гостя (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (162) здесь было 16 ноя 2019, 18:33
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя