From b54465c34d2819c2040bfc1666db8ae7a75e0cec Mon Sep 17 00:00:00 2001 From: ps Date: Sat, 28 Mar 2026 13:28:23 +0200 Subject: [PATCH] add `my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode.gmi` --- public/uk/index.gmi | 1 + ...u8-stream-proxy-with-ffmpeg-in-icecast.gmi | 3 +- ...u-xspf-vclt-buttons-in-multi-host-mode.gmi | 37 ++++++++++++++++++ .../playlists-with-wrong-references.png | Bin 0 -> 4407 bytes .../relative-play-reference.png | Bin 0 -> 2991 bytes ...up-icecast-ezstream-web-radio-on-linux.gmi | 3 +- 6 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 public/uk/my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode.gmi create mode 100644 public/uk/my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode/playlists-with-wrong-references.png create mode 100644 public/uk/my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode/relative-play-reference.png diff --git a/public/uk/index.gmi b/public/uk/index.gmi index 0f35d7e..65cb821 100644 --- a/public/uk/index.gmi +++ b/public/uk/index.gmi @@ -16,6 +16,7 @@ ### Нотатки +=> my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode.gmi 2026-03-28 Моє "виправлення" кнопок M3U/XSPF/VCLT Icecast при роботі в мульти-хост режимі => icecast-http-over-tor-socks.gmi 2026-03-25 Прокидання потоку Icecast/HTTP через Tor/SOCKS з socat => your-childs-not-yours.gmi 2026-03-23 Ваші діти - не ваші => create-file-from-nautilus-context-menu.gmi 2026-03-23 Створення файлів з контекстного меню Nautilus / GNOME diff --git a/public/uk/m3u8-stream-proxy-with-ffmpeg-in-icecast.gmi b/public/uk/m3u8-stream-proxy-with-ffmpeg-in-icecast.gmi index 8d37efa..35dfe09 100644 --- a/public/uk/m3u8-stream-proxy-with-ffmpeg-in-icecast.gmi +++ b/public/uk/m3u8-stream-proxy-with-ffmpeg-in-icecast.gmi @@ -160,4 +160,5 @@ server { ### Читайте також => yggdrasil-is-network-with-distributed-routing.gmi Yggdrasil - мережа з децентралізованою маршрутизацією -=> icecast-http-over-tor-socks.gmi Прокидання потоку Icecast/HTTP через Tor/SOCKS з socat \ No newline at end of file +=> icecast-http-over-tor-socks.gmi Прокидання потоку Icecast/HTTP через Tor/SOCKS з socat +=> my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode.gmi Моє "виправлення" кнопок M3U/XSPF/VCLT Icecast при роботі в мульти-хост режимі \ No newline at end of file diff --git a/public/uk/my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode.gmi b/public/uk/my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode.gmi new file mode 100644 index 0000000..594a9ea --- /dev/null +++ b/public/uk/my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode.gmi @@ -0,0 +1,37 @@ +# Моє "виправлення" кнопок M3U/XSPF/VCLT Icecast при роботі в мульти-хост режимі + +Якось мені повідомили, що стрім Pidpilne з головної сторінки Icecast (status) не відкривається. Виявилось, що відкривали вони з лінка M3U. Коли його відкрив - там дійсно були биті посилання без порту. В XSPF - був взагалі localhost, але з правильним портом. + +Це не зовсім виправлення а лайфхак у якості тимчасового рішення. По суті, в моїх плейлистах нічого динамічного немає, окрім того само кривого посилання на localhost або поточний хост без порту. + +Звісно, я можу вказати `localhost` в `/etc/icecast2/icecast.xml`, але проблема в тому, що інстанс працює на Yggdrasil, Mycelium та I2P одночасно. Тому потрібне відносне рішення. + +Для себе, я просто відредагував файл: + +``` /etc/icecast2/status.xsl + + + +``` +* оригінали закоментував, думаю колись розберусь + +Тепер замість: + +=> my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode/playlists-with-wrong-references.png Плейлисти Icecast з хибними посиланнями (скріншот) + +меню буде таким: + +=> my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode/relative-play-reference.png Вигляд посилання на стрім Icecast (скріншот) + +Теоретично, якщо Веб-інтерфейс проксується через Nginx, можна ще там локнути посилання на `.m3u`, `.xspf` і `.vclt` або зробити якийсь редірект, але мені ліньки. + +## Дивіться також + +=> setup-icecast-ezstream-web-radio-on-linux.gmi Веб-радіо в Linux: встановлення сервера Icecast та базове налаштування ротації з Ezstream +=> m3u8-stream-proxy-with-ffmpeg-in-icecast.gmi Проксування потоку m3u8 засобами ffmpeg в Icecast +=> icecast-http-over-tor-socks.gmi Прокидання потоку Icecast/HTTP через Tor/SOCKS з socat \ No newline at end of file diff --git a/public/uk/my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode/playlists-with-wrong-references.png b/public/uk/my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode/playlists-with-wrong-references.png new file mode 100644 index 0000000000000000000000000000000000000000..6e2ef55637c8941633e35a71c8b68172753f2cb4 GIT binary patch literal 4407 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 Jif=nU{SR2nnZE!4 literal 0 HcmV?d00001 diff --git a/public/uk/my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode/relative-play-reference.png b/public/uk/my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode/relative-play-reference.png new file mode 100644 index 0000000000000000000000000000000000000000..848887bb35dbd997ab281862b90db4fc719cad8e GIT binary patch literal 2991 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 m3u8-stream-proxy-with-ffmpeg-in-icecast.gmi Проксування потоку m3u8 засобами ffmpeg в Icecast -=> icecast-http-over-tor-socks.gmi Прокидання потоку Icecast/HTTP через Tor/SOCKS з socat \ No newline at end of file +=> icecast-http-over-tor-socks.gmi Прокидання потоку Icecast/HTTP через Tor/SOCKS з socat +=> my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode.gmi Моє "виправлення" кнопок M3U/XSPF/VCLT Icecast при роботі в мульти-хост режимі \ No newline at end of file