Radioserver na Raspberry PI: serverová část

Zobrazení: 15

Odborný postup, jak na Raspberry Pi postavit jednoduchý radioserver s Icecastem a Liquidsoapem: playlisty v M3U s lokálními cestami, automatické generování konfigurace, systemd služba a přehrávání přes HTTPS reverzní proxy v Apache. Tento článek popisuje serverovou část řešení. Neřeší tvorbu playlistů z databáze ani webové rozhraní.

Radioserver na Raspberry Pi: schéma Icecast a Liquidsoap streamování přes HTTPS reverse proxy v Apache, s ukázkami příkazů a mountu ve formátu MP3. Vytvořil Chat GPT

Tento článek řeší čistě serverovou část. Předpokládáme, že playlisty .m3u už vznikají nějakým jiným způsobem (ručně, skriptem, webem, databází). Tvorbu .m3u ani webové UI zde záměrně neřešíme.

Co budeme stavět

  • Icecast poběží lokálně na 127.0.0.1:8000.
  • Liquidsoap bude pro každou stanici generovat mount /slug.mp3.
  • Playlisty budou v /var/lib/radio jako slug.m3u s lokálními cestami na MP3.
  • Systemd template jednotka radio@.service spustí jednu stanici.
  • Wrapper jednotka radio.service spustí/restartuje všechny stanice podle /var/lib/radio/*.m3u.
  • Apache HTTPS vhost bude proxyovat /radio/stream/ na Icecast.

Bezpečnostní zásady

  • Icecast nevystavujeme přímo do internetu. Necháme ho na localhost a ven pustíme jen Apache s TLS.
  • Nastavíme silná hesla v Icecastu (minimálně source-password).
  • Liquidsoap poběží pod samostatným uživatelem liquidsoap.

Úskalí: Liquidsoap na Debian Trixie/arm64

Na některých sestaveních Debian Trixie/arm64 se novější balík Liquidsoap chová nestabilně (pády při output.icecast). V praxi se osvědčilo použít stabilní verzi z Debian Bookworm (například 2.1.3) přes APT pinning. Pokud máš Bookworm a vše běží, pinning řešit nemusíš.


Krok jedna: instalace balíků

Nainstalujeme Icecast, Apache a nástroje.

sudo bash -lc '
set -e
LOG=/tmp/radio_01_install.log
exec > >(tee "$LOG") 2>&1

apt update
apt install -y icecast2 apache2 ffmpeg curl ca-certificates

echo "DONE. LOG: $LOG"
'

Krok dva: konfigurace Icecast (localhost, hesla)

Uprav soubor /etc/icecast2/icecast.xml tak, aby Icecast poslouchal pouze na localhost a aby source-password odpovídalo tomu, co pak dáme do Liquidsoapu.

Minimální důležité části (doplň si vlastní hesla):

<!-- /etc/icecast2/icecast.xml (výřez) -->

<listen-socket>
	<bind-address>127.0.0.1</bind-address>
	<port>8000</port>
</listen-socket>

<authentication>
	<source-password>ZMEN_ME_STRONG_SOURCE_PASS</source-password>
	<admin-password>ZMEN_ME_STRONG_ADMIN_PASS</admin-password>
	<relay-password>ZMEN_ME_STRONG_RELAY_PASS</relay-password>
</authentication>

Restart a ověření:

sudo bash -lc '
set -e
LOG=/tmp/radio_02_icecast_restart_check.log
exec > >(tee "$LOG") 2>&1

systemctl enable --now icecast2
systemctl restart icecast2

echo "== curl localhost icecast headers =="
curl -sS -I http://127.0.0.1:8000/ | head -n 20

echo "DONE. LOG: $LOG"
'

Krok tři: Liquidsoap verze (Bookworm stabilní, Trixie pinning)

Varianta A: jsi na Bookworm

Pokud jsi na Bookworm a Liquidsoap běží stabilně, můžeš zůstat u repozitáře systému.

Varianta B: jsi na Trixie/arm64 a Liquidsoap padá

Typový postup pinningu na Bookworm (přizpůsob si podle svého systému). Cílem je držet stabilní větev (například 2.1.x).

sudo bash -lc '
set -e
LOG=/tmp/radio_03_liquidsoap_pinning.log
exec > >(tee "$LOG") 2>&1

# Bookworm repo (pokud už existuje, nepřidávej duplicitně)
cat > /etc/apt/sources.list.d/bookworm.list <<EOF
deb http://deb.debian.org/debian bookworm main
EOF

# Pin Liquidsoap na Bookworm
mkdir -p /etc/apt/preferences.d
cat > /etc/apt/preferences.d/liquidsoap.pref <<EOF
Package: liquidsoap
Pin: release n=bookworm
Pin-Priority: 990
EOF

apt update

# Instalace (verze se může lišit; cílem je stabilní 2.1.x)
apt install -y liquidsoap ffmpeg

liquidsoap --version || true

echo "DONE. LOG: $LOG"
'

Krok čtyři: adresáře a uživatel

Budeme používat:

  • /var/lib/radio – playlisty .m3u a případně runtime výstupy
  • /etc/radio – generované .liq konfigurace
  • /var/log/radio – logy Liquidsoapu
sudo bash -lc '
set -e
LOG=/tmp/radio_04_dirs_user.log
exec > >(tee "$LOG") 2>&1

mkdir -p /var/lib/radio /etc/radio /var/log/radio

# uživatel pro Liquidsoap
adduser --system --group --home /nonexistent --no-create-home liquidsoap 2>/dev/null || true

chown -R root:root /etc/radio
chmod 0755 /etc/radio

chown -R liquidsoap:liquidsoap /var/log/radio
chmod 0755 /var/log/radio

# playlisty: zapisuje sem typicky web nebo admin, nastav dle potřeby
chown -R root:www-data /var/lib/radio
chmod 2775 /var/lib/radio

echo "== perms =="
ls -ld /var/lib/radio /etc/radio /var/log/radio

echo "DONE. LOG: $LOG"
'

Krok pět: playlisty M3U v /var/lib/radio

Každá stanice je jeden soubor /var/lib/radio/<slug>.m3u. Obsahuje lokální cesty na MP3. Příklad:

#EXTM3U
#EXTINF:-1,Ukázková skladba
/mnt/media/music/ukazka.mp3

Poznámka k úskalím: Pokud některé soubory vypadají jako MP3, ale ve skutečnosti nejsou dekódovatelné (například „obalené“ formátem, který začíná jinou signaturou než běžná MP3), Liquidsoap je může přeskočit nebo může stanice hrát ticho. Řešení je filtrovat playlisty tak, aby obsahovaly pouze skutečně validní MP3.


Krok šest: skripty – generování runtime playlistu a .liq

V praxi se osvědčilo mít dva kroky:

  • make-runtime-m3u.sh – vygeneruje <slug>.runtime.m3u (například vyhodí řádky komentářů, případně může později filtrovat soubory).
  • make-liq.sh – vygeneruje /etc/radio/<slug>.liq se správnou syntaxi pro Liquidsoap 2.1.x.

Skript make-runtime-m3u.sh

sudo bash -lc '
set -e
LOG=/tmp/radio_05a_make_runtime_script.log
exec > >(tee "$LOG") 2>&1

cat > /etc/radio/make-runtime-m3u.sh <<"EOF"
#!/bin/bash
set -euo pipefail

slug="$1"
SRC="/var/lib/radio/${slug}.m3u"
OUT="/var/lib/radio/${slug}.runtime.m3u"

# pokud playlist neexistuje, skonči úspěšně (wrapper může volat i dřív)
if [ ! -s "$SRC" ]; then
	exit 0
fi

# základ: ponecháme jen neprázdné řádky a vyhodíme komentáře
# rozšíření (filtrování souborů) může přijít později
(
	echo "#EXTM3U"
	grep -v "^[[:space:]]*#" "$SRC" | sed "/^[[:space:]]*$/d"
) > "$OUT"

echo "WROTE: $OUT"
echo "TRACKS: $(grep -vc "^[[:space:]]*#" "$OUT" || true)"
EOF

chmod 0755 /etc/radio/make-runtime-m3u.sh
chown root:root /etc/radio/make-runtime-m3u.sh

echo "DONE. LOG: $LOG"
'

Skript make-liq.sh

Uprav v něm heslo SOURCE_PASSWORD, aby sedělo na source-password v Icecastu.

sudo bash -lc '
set -e
LOG=/tmp/radio_05b_make_liq_script.log
exec > >(tee "$LOG") 2>&1

cat > /etc/radio/make-liq.sh <<"EOF"
#!/bin/bash
set -euo pipefail

slug="$1"

PLAY="/var/lib/radio/${slug}.runtime.m3u"
OUT="/etc/radio/${slug}.liq"
LOGFILE="/var/log/radio/${slug}.liq.log"

SOURCE_PASSWORD="ZMEN_ME_STRONG_SOURCE_PASS"

# bez runtime playlistu nemá smysl startovat (ale nepadáme tvrdě)
if [ ! -s "$PLAY" ]; then
	exit 0
fi

cat > "$OUT" <<EOL
# Auto-generated station config for ${slug}

settings.log.file.set(true)
settings.log.file.path.set("${LOGFILE}")

p = playlist("${PLAY}")
s = mksafe(p)

output.icecast(
	%mp3,
	host="127.0.0.1",
	port=8000,
	user="source",
	password="${SOURCE_PASSWORD}",
	mount="/${slug}.mp3",
	name="${slug}",
	genre="Radio",
	description="${slug}",
	s
)
EOL

chown root:root "$OUT"
chmod 0644 "$OUT"

echo "WROTE: $OUT"
EOF

chmod 0755 /etc/radio/make-liq.sh
chown root:root /etc/radio/make-liq.sh

echo "DONE. LOG: $LOG"
'

Krok sedm: systemd – template jednotka pro stanice

Každá stanice je instance radio@<slug>.service. Před startem se vygeneruje runtime playlist a .liq.

sudo bash -lc '
set -e
LOG=/tmp/radio_06_systemd_template.log
exec > >(tee "$LOG") 2>&1

cat > /etc/systemd/system/radio@.service <<"EOF"
[Unit]
Description=Radio station %i (Liquidsoap)
After=network.target icecast2.service
Wants=icecast2.service

[Service]
Type=simple
User=liquidsoap
Group=liquidsoap
WorkingDirectory=/var/lib/radio

ExecStartPre=/etc/radio/make-runtime-m3u.sh %i
ExecStartPre=/etc/radio/make-liq.sh %i

ExecStart=/usr/bin/liquidsoap /etc/radio/%i.liq
Restart=on-failure
RestartSec=2

NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=full
ProtectHome=true
ReadWritePaths=/var/lib/radio /var/log/radio

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload

echo "DONE. LOG: $LOG"
'

Krok osm: wrapper služba radio.service (start/stop/restart všech stanic)

Wrapper projde /var/lib/radio/*.m3u a spustí/restartuje radio@<slug>.service. Wrapper úmyslně vždy končí úspěchem, aby restart jedné služby neblokoval celý orchestration, i když jedna stanice zrovna selže. Chyby jsou v logu a v journalech konkrétní instance.

Wrapper skript

sudo bash -lc '
set -e
LOG=/tmp/radio_07a_wrapper_script.log
exec > >(tee "$LOG") 2>&1

cat > /usr/local/sbin/radio-all.sh <<"EOF"
#!/bin/bash
set -euo pipefail

DIR="/var/lib/radio"
action="${1:-restart}"

if [ "$action" != "start" ] && [ "$action" != "stop" ] && [ "$action" != "restart" ]; then
	echo "Usage: $0 {start|stop|restart}"
	exit 2
fi

shopt -s nullglob
m3us=( "$DIR"/*.m3u )
shopt -u nullglob

if [ ${#m3us[@]} -eq 0 ]; then
	echo "OK: no stations found in $DIR (*.m3u)"
	exit 0
fi

echo "Stations:"
for f in "${m3us[@]}"; do
	echo " - $(basename "$f" .m3u)"
done

for f in "${m3us[@]}"; do
	slug="$(basename "$f" .m3u)"
	echo "==> $action: radio@${slug}.service"
	/bin/systemctl "$action" "radio@${slug}.service" || echo "WARN: $action failed for $slug (continuing)"
done

exit 0
EOF

chmod 0755 /usr/local/sbin/radio-all.sh
chown root:root /usr/local/sbin/radio-all.sh

echo "DONE. LOG: $LOG"
'

Wrapper systemd jednotka radio.service

sudo bash -lc '
set -e
LOG=/tmp/radio_07b_wrapper_unit.log
exec > >(tee "$LOG") 2>&1

cat > /etc/systemd/system/radio.service <<"EOF"
[Unit]
Description=Radio (wrapper: start/stop/restart all stations)
After=network.target icecast2.service
Wants=icecast2.service

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/radio-all.sh start
ExecStop=/usr/local/sbin/radio-all.sh stop
ExecReload=/usr/local/sbin/radio-all.sh restart
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable --now radio.service

echo "DONE. LOG: $LOG"
'

Krok devět: Apache HTTPS vhost + reverse proxy

Fiktivní příklad: server má IP 203.0.113.10, vhost běží na portu 4436 a stream je dostupný přes /radio/stream/. Icecast zůstává na 127.0.0.1:8000.

Instalace a povolení modulů

sudo bash -lc '
set -e
LOG=/tmp/radio_08a_apache_modules.log
exec > >(tee "$LOG") 2>&1

apt install -y apache2
a2enmod ssl proxy proxy_http rewrite headers

systemctl enable --now apache2
systemctl reload apache2

echo "DONE. LOG: $LOG"
'

Vytvoření self-signed certifikátu (ukázka)

V produkci použij Let’s Encrypt. Pro test a interní použití lze self-signed:

sudo bash -lc '
set -e
LOG=/tmp/radio_08b_selfsigned.log
exec > >(tee "$LOG") 2>&1

mkdir -p /etc/ssl/private /etc/ssl/certs

openssl req -x509 -newkey rsa:2048 -sha256 -days 365 \
	-nodes \
	-keyout /etc/ssl/private/radio.key \
	-out /etc/ssl/certs/radio.crt \
	-subj "/CN=203.0.113.10"

chmod 0600 /etc/ssl/private/radio.key

echo "DONE. LOG: $LOG"
'

Celý vhost soubor (kompletní)

# /etc/apache2/sites-available/radio-4436.conf
<VirtualHost 203.0.113.10:4436>
	ServerName radio.example.test

	SSLEngine on
	SSLCertificateFile /etc/ssl/certs/radio.crt
	SSLCertificateKeyFile /etc/ssl/private/radio.key

	# Doporučené hlavičky (volitelné)
	Header always set X-Content-Type-Options "nosniff"
	Header always set X-Frame-Options "DENY"

	# /radio/stream -> Icecast
	RedirectMatch 301 ^/radio/stream$ /radio/stream/
	ProxyPass        /radio/stream/  http://127.0.0.1:8000/ retry=0 timeout=600
	ProxyPassReverse /radio/stream/  http://127.0.0.1:8000/

	ErrorLog  /var/log/apache2/radio-4436_error.log
	CustomLog /var/log/apache2/radio-4436_access.log combined
</VirtualHost>

Aktivace vhostu:

sudo bash -lc '
set -e
LOG=/tmp/radio_08c_enable_vhost.log
exec > >(tee "$LOG") 2>&1

cat > /etc/apache2/sites-available/radio-4436.conf <<"EOF"
<VirtualHost 203.0.113.10:4436>
	ServerName radio.example.test

	SSLEngine on
	SSLCertificateFile /etc/ssl/certs/radio.crt
	SSLCertificateKeyFile /etc/ssl/private/radio.key

	Header always set X-Content-Type-Options "nosniff"
	Header always set X-Frame-Options "DENY"

	RedirectMatch 301 ^/radio/stream$ /radio/stream/
	ProxyPass        /radio/stream/  http://127.0.0.1:8000/ retry=0 timeout=600
	ProxyPassReverse /radio/stream/  http://127.0.0.1:8000/

	ErrorLog  /var/log/apache2/radio-4436_error.log
	CustomLog /var/log/apache2/radio-4436_access.log combined
</VirtualHost>
EOF

a2ensite radio-4436.conf
apache2ctl configtest
systemctl reload apache2

echo "DONE. LOG: $LOG"
'

Krok deset: spuštění a ověření

Spuštění všech stanic přes jednu službu:

sudo bash -lc '
set -e
LOG=/tmp/radio_09a_start_all.log
exec > >(tee "$LOG") 2>&1

systemctl restart radio.service

echo "== wrapper status =="
systemctl status radio.service --no-pager | sed -n "1,120p" || true

echo "== running instances =="
systemctl list-units --type=service --state=running --no-pager | grep -E "radio@" || true

echo "DONE. LOG: $LOG"
'

Ověření mountu přímo na localhost:

sudo bash -lc '
set -e
LOG=/tmp/radio_09b_check_mounts.log
exec > >(tee "$LOG") 2>&1

echo "== Icecast sources =="
curl -sS http://127.0.0.1:8000/status-json.xsl | head -n 260

echo "DONE. LOG: $LOG"
'

Poslech přes HTTPS proxy (příklad):

  • https://203.0.113.10:4436/radio/stream/banjoband.mp3
  • https://203.0.113.10:4436/radio/stream/chambermood.mp3

Diagnostika a typické chyby

Chyba: mount vrací 404

  • Liquidsoap se nepřipojil do Icecastu (špatné heslo, port, user).
  • Playlist je prázdný nebo ukazuje na neexistující soubory.
  • Soubory nejsou dekódovatelné (nejsou to reálné MP3).

Rychlá diagnostika logu dané stanice:

sudo bash -lc '
set -e
LOG=/tmp/radio_10_diag_one_station.log
exec > >(tee "$LOG") 2>&1

slug="banjoband"

echo "== systemd status =="
systemctl status "radio@${slug}.service" --no-pager || true

echo
echo "== journal tail =="
journalctl -u "radio@${slug}.service" -n 200 --no-pager || true

echo
echo "== liquidsoap file log tail =="
tail -n 200 "/var/log/radio/${slug}.liq.log" 2>/dev/null || true

echo "DONE. LOG: $LOG"
'

Chyba: Liquidsoap syntax error

Ujisti se, že používáš syntaxi pro Liquidsoap 2.x, tedy output.icecast(%mp3, ...). Varianta output.icecast.mp3(...) v některých verzích neexistuje a vede k chybám.

Chyba: nestabilita na Trixie

Pokud se Liquidsoap náhodně ukončuje (SIGSEGV), použij stabilní verzi (Bookworm) a drž ji pinningem. V reálném provozu je to rozdíl mezi „jede to“ a „padá to“.


Závěr

Máš hotový serverový základ: M3U playlisty v /var/lib/radio, automatické generování .liq, spouštění přes systemd a bezpečné zpřístupnění streamu přes Apache HTTPS reverse proxy. Generování M3U a webové ovládání patří do navazujícího článku.


Komentáře: 0
Napište komentář

Rozhovor s Michalem o Betwindu, část 1

Rozhovor s Michalem Králem o kapele Betwind jako pokračování mojí kytarové cesty. V první části nahrávka písně Figure

jaký šel, takového potkal

Jak se dnešní přísloví odráží v našem životě a jak naše chování a postoje ovlivňují lidi, které potkáváme?

Rozhovor s Michalem o Betwindu, část 2

Rozhovor s Michalem Králem o kapele Betwind jako pokračování mojí kytarové cesty. Ve druhé části píseň Ophelia

Přání k Vánocům

Vánoční přání a nahrávka Chtíc, aby spal

Kráva zajíce nedohoní

Dnešní přísloví pojednává o realistických očekáváních a limitech schopností a o důležitosti přizpůsobení nároků reálným možnostem.

Kiksylend na Portě

Jaké to bylo na letošní portě? Působení Kiksylendu na legendárním hudebním festivalu, nahrávky písní Kavárenský povaleč, Kateřina a MDŽ a dále…

Dvakrát měř, jednou řež, aneb v podstatě, prostě, tedy a vlastně

Podívejme se na význam přísloví „Dvakrát měř, jednou řež“. Kdy se unáhlené kroky ukazují jako chyby? Proč je někdy lepší chvíli přemýšlet, než jednat?

Vzpomínky nejen školní, část 1: Gymnázium

Úsměvné vzpomínky na léta nejen školní. Přeji příjemný poslech

Vzpomínky nejen školní, část 4: Gymnázium naposledy

Závěrečný díl školních vzpomínek

Vzpomínky nejen školní, část 3: Gymnázium potřetí

Již třetí pokračování školních vzpomínek, tentokráte bude o panu řediteli a o gymnaziálním biologovi a chemikovi v jedné osobě. Přeji příjemný poslech

Foto z koncertů skupiny NAŠKRK, část I.

Galerie mých fotografií z koncertu skupiny NAŠKRK pořízené 15. 11. 2002. Foto: Roman Vokurek

Foto z koncertů skupiny NAŠKRK, část II.

Galerie mých fotografií z koncertu skupiny NAŠKRK v sále hotelu v Moravském Krumlově pořízené 7. března 2003. Foto: Roman Vokurek

Mariánská kaple v zimě

Fotky z lokality zvané jako Mariánská studánka mezi obcemi Moravský Krumlov a Rokytná, tentokráte pod sněhovou pokrývkou. Fotky pořízeny 10. 12. 2023…

K pramenům řeky Rokytné II.

Druhá výprava k pramenům posvátné řeky Rokytné tentokráte vedoucí z Moravského Krumlova do Tulešic. Průzkum proveden 19. 5. 2023. Autorem fotografií…

Výstup na Velký Lopeník

Druhá hřebenová výprava v nejkrásnějších horách světa, tedy v Bílých Karpatech, tentokráte zasvěcena dobytí Velkého Lopeníku (911 mnm). Výstup po…

Podzim v Moravském Krumlově, část II.

Výběr podzimních fotografií z Moravského Krumlova. Snímky pořízeny 12. 11. 2023. Foto: Petra

K pramenům řeky Rokytné III.

Třetí výprava k pramenům posvátné řeky Rokytné tentokráte vedoucí z Tulešic do Tavíkovic. Průzkum neprobádanou, neprostupnou, nedotčenou, divokou,…

Zima v Moravském Krumlově, část II.

Výběr zimních fotografií z Moravského Krumlova. Snímky pořízeny 2. 12. 2023. Foto: Petra

Jaro v Moravském Krumlově, část II.

Jarní galerie pořízená z moravskokrumlovského zámeckého parku 5. 5. 2024. Foto: Petra

K pramenům řeky Rokytné I.

Výprava k pramenům řeky Rokytné, část první od soutoku s Jihlavou v Ivančicích do Moravského Krumlova. Průzkum proveden 22. 4. 2022. Autorem…

Výlet do neznáma

Píseň z alba Rozpaky, inspirovaná neznámou dívkou v modrém... Text i hudba byli napsány 9. 12. 2018.

Podzim

Báseň a píseň z alba Rozpaky vydaná v roce 2019. Báseň byla napsána za letní noci 21. 8. 2016, nevzpomínám si přesně, ale myslím, že nad sklenkou whisky.

Třešně a led

Píseň z alba Rozpaky inspirovaná událostmi prvních lednových dní roku 2003. Píseň patří všem, kteří toho roku tragicky zahynuli... Text byl napsán 4. 7. 2016. Hudba byla napsána 27. 8. 2016.

Světem vcelku

Píseň z alba Rozpaky. Inspirace všeobímající, tak trochu osobní výpověď. Pojednání o věcech těžko pochopitelných. Text byl napsán 29. 11. 2015. Hudba byla napsána v lednu 2016.

Změna

Píseň z alba Rozpaky inspirovaná podzimními událostmi roku 2003. Text byl napsán 24. 8. 2016. Hudba byla napsána 20. 12. 2018.

Čumísek

Píseň z alba Rozpaky inspirovaná událostmi roku 2003. Text byl napsán 9. 7. 2016. Hudba byla napsána 17. 12. 2018.

Takový jako tento

Píseň z alba Rozpaky inspirovaná jak jinak nešťastnou láskou. Hudba původně z anglickým textem byla napsána v září 2003. Text byl napsán 20. 2. 2016.

Služby zdarma

Píseň z alba Rozpaky inspirovaná nehynoucí touhou všelijakých obchodníků prodat vám cokoli. Text i hudba byli napsány 10. 5. 2017.

Málem omylem

Vzpomínka na první červencové dny roku 2003. Pokud se vám náhodou něco někdy nepovede, nesahejte na alkohol, je to velice zlý pán a nemá slitování. Text písně byl napsán 8. 5. 2017.

Tak dávno

Vzpomínka na první červencové dny roku 2003. Text i hudba byli napsány 10. 5. 2017.

Video

Zbyněk Sklenský na vernisáži v Knížecím domě v Moravském Krumlově

Populární podcastové epizody

Všechny podcasty
Upovídaný podcast

Rozhovor s Michalem o Betwindu, část 1

Rozhovor s Michalem Králem o kapele Betwind jako pokračování mojí kytarové cesty. V první části nahrávka písně Figure

Zbyněk Sklenský

Zbyněk Sklenský

Přísloví pro každý den

jaký šel, takového potkal

Jak se dnešní přísloví odráží v našem životě a jak naše chování a postoje ovlivňují lidi, které potkáváme?

Rozhovor s Michalem o Betwindu, část 2

Rozhovor s Michalem Králem o kapele Betwind jako pokračování mojí kytarové cesty. Ve druhé části píseň Ophelia

Upovídaný podcast

Přání k Vánocům

Vánoční přání a nahrávka Chtíc, aby spal

Kráva zajíce nedohoní

Dnešní přísloví pojednává o realistických očekáváních a limitech schopností a o důležitosti přizpůsobení nároků reálným možnostem.

Kiksylend na Portě

Jaké to bylo na letošní portě? Působení Kiksylendu na legendárním hudebním festivalu, nahrávky písní Kavárenský povaleč, Kateřina a MDŽ a dále kratičké představení celkového vítěze Porty.

Dvakrát měř, jednou řež, aneb v podstatě, prostě, tedy a vlastně

Podívejme se na význam přísloví „Dvakrát měř, jednou řež“. Kdy se unáhlené kroky ukazují jako chyby? Proč je někdy lepší chvíli přemýšlet, než jednat?

Vzpomínky nejen školní, část 1: Gymnázium

Úsměvné vzpomínky na léta nejen školní. Přeji příjemný poslech

Vzpomínky nejen školní, část 4: Gymnázium naposledy

Závěrečný díl školních vzpomínek

Vzpomínky nejen školní, část 3: Gymnázium potřetí

Již třetí pokračování školních vzpomínek, tentokráte bude o panu řediteli a o gymnaziálním biologovi a chemikovi v jedné osobě. Přeji příjemný poslech

Podcast Fokální dystonie

Další epizody
Fokální dystonie

Fokální dystonie: O cestě k nápravě v roce 2022 obecně

Parafráze předchozí epizody, shrnutí metody Davida Leisnera a ukázky z jeho lekce. Seznámení s metodami Akiko Trush, Nory Krohn a Apostolose Paraskevase.

Zbyněk Sklenský

Zbyněk Sklenský

Zatmění měsíce v Moravském Krumlově

Fokální dystonie: O cestě k nápravě v první polovině roku 2022

Další pokračování seriálu o fokální dystonii. Metoda Davida Leisnera a jeho zapojení velkých svalů při hře na kytaru. Metoda Akiko Trush a její pozorování vlastních svalů při pohybu rukou. Dystonická aktivace a dystonická křeč.

Fokální dystonie: O cestě k nápravě ve 2. polovině roku 2021

Další pokračování cesty k nápravě, tzv. Period of Recovery, tentokráte popisující události druhé poloviny roku 2021. Jedna nahrávka z tohoto období a první kontakt s Davidem Leisnerem

Zatmění měsíce v Moravském Krumlově

Fokální dystonie: O cestě k nápravě v roce 2021

Další díl ze seriálu o fokální dystonii, tentokráte první díl o cestě k nápravě a o změně přístupu k této poruše, způsobené nevhodným dlouhodobým cvičením

Fokální dystonie: Non-artificiální období v letech 2019-2021 - Od pěti k nule

Další události vedoucí až k nemožnosti používat pravou ruku při jakýchkoli činnostech

Fokální dystonie: Non-artificiální období v letech 2018/2019

Další pokračování ze seriálu o fokální dystonii z doby, kdy porucha začala ovlivňovat celý můj život. Blessing in disguise - něco o angličtině, o programování a také poslední nahrávka z vystoupení s klasickou kytarou

Fokální dystonie, část 10: Non-artificiální období v letech 2015/18, Coming out

Další pokračování seriálu o fokální dystonii, tentokráte zahrnující období mezi lety 2015-2018

Fokální dystonie, část 9: Artificiální období v letech 2014-2015

Závěr studia na konzervatoři, vzpomínky, neklamné průvodní znaky fokální dystonie + nahrávky Cavatiny Stanley Meyerse a Garyoven Maura Giulianiho

Fokální dystonie, část 8: Artificiální období v letech 2012-2013

Završení maturitního ročníku, vzpomínky a první projevy fokální dystonie. Nahrávky Tarantelly J. K. Mertze a Simplicitas Jiřího Jirmala

Fokální dystonie, část 7: Artificiální období v letech 2012-2013

Pokračování povídání o mojí kytarové cestě, tentokráte popisující můj maturitní rok a další události s tím spojené. Jako vždy také i tentokrát připojuji své kytarové nahrávky.