Rozdział 14: Muzyka! Streamujemy Nyan Cat z YouTube 🎵
Co to za Nyan Cat bez muzyki?! Będziemy streamować słynną muzykę Nyan Cat prosto z YouTube!
Instalujemy narzędzia
sudo apt install mpv
mpv to świetny odtwarzacz multimedialny w terminalu. Lekki i potężny!
Teraz potrzebujemy yt-dlp — narzędzia do pobierania/streamowania z YouTube:
sudo apt install yt-dlp
Jeśli yt-dlp nie jest dostępny przez apt, zainstaluj przez pip:
pip install yt-dlp
Testujemy streaming!
yt-dlp -o - "https://www.youtube.com/watch?v=QH2-TGUlwu4" | mpv --no-video -
Co tu się dzieje?
yt-dlp— pobiera wideo z YouTube-o -— zamiast zapisywać do pliku, wysyłaj na stdout (standardowe wyjście)|— nasz stary znajomy pipe!mpv— odtwarzacz--no-video— tylko dźwięk (nie potrzebujemy obrazu)-— czytaj z stdin (standardowe wejście, czyli z pipe’a)
Słyszysz muzykę?! 🎵 Ctrl+C żeby zatrzymać.
💡 Uwaga: Jeśli link nie działa (YouTube się zmienia), wyszukaj “nyan cat 10 hours” i podmień link.
Odtwarzanie w tle: & i nohup
Chcemy żeby muzyka grała w tle podczas gry. W Linuksie dodajemy & na końcu komendy:
mpv --no-video "https://www.youtube.com/watch?v=QH2-TGUlwu4" &
& mówi: “uruchom to w tle i oddaj mi terminal z powrotem”.
Zobaczysz numer procesu — zapamiętaj go! Żeby zatrzymać:
kill %1
%1 to numer zadania w tle. Możesz zobaczyć wszystkie:
jobs
Aktualizujemy skrypt startowy!
nano src/run_game.sh
Zamień na:
#!/bin/bash
# 🌈 Nyan Cat Runner - Skrypt startowy
MUSIC_URL="https://www.youtube.com/watch?v=QH2-TGUlwu4"
MUSIC_PID=""
echo "🌈 ================================= 🌈"
echo " NYAN CAT RUNNER"
echo "🌈 ================================= 🌈"
echo ""
# Sprawdź czy mpv jest zainstalowany
if command -v mpv &> /dev/null && command -v yt-dlp &> /dev/null; then
echo "🎵 Włączyć muzykę? (t/n)"
read -r answer
if [ "$answer" = "t" ] || [ "$answer" = "T" ]; then
echo "🎵 Włączam muzykę Nyan Cat..."
yt-dlp -q -o - "$MUSIC_URL" 2>/dev/null | mpv --no-video --really-quiet - &
MUSIC_PID=$!
echo "🎵 Muzyka gra! (PID: $MUSIC_PID)"
sleep 2
fi
else
echo "⚠️ mpv lub yt-dlp nie zainstalowane."
echo " Zainstaluj: sudo apt install mpv yt-dlp"
echo ""
fi
echo "Uruchamiam grę..."
sleep 1
# Aktywuj środowisko i uruchom grę
cd ~/projekty/nyan-cat-runner
source venv/bin/activate
python3 src/nyan_cat.py
# Po wyjściu — zatrzymaj muzykę
if [ -n "$MUSIC_PID" ]; then
kill "$MUSIC_PID" 2>/dev/null
# Zabij też mpv na wszelki wypadek
killall mpv 2>/dev/null
echo "🎵 Muzyka zatrzymana."
fi
echo ""
echo "🌈 Dzięki za grę! Do zobaczenia! 🐱"
Nowe rzeczy w skrypcie bash:
command -v— sprawdza czy program istnieje (jakwhich, ale lepsze w skryptach)&> /dev/null— przekieruj wszystko do “czarnej dziury” (nic nie wyświetlaj)read -r answer— czytaj tekst od użytkownikaif [ ... ]; then ... fi— warunek w bash (tak, składnia jest dziwna!)$!— PID ostatnio uruchomionego procesu w tle2>/dev/null— przekieruj błędy do czarnej dziurykillall mpv— zabij WSZYSTKIE procesy o nazwie mpv[ -n "$MUSIC_PID" ]— sprawdź czy zmienna nie jest pusta
chmod — nie zapomnij!
chmod +x src/run_game.sh
Testujemy!
./src/run_game.sh
Muzyka + gra = pełne doświadczenie Nyan Cat! 🌈🎵
🏆 Wyzwanie
- Uruchom
mpvw tle i użyjjobsżeby go zobaczyć - Użyj
killżeby go zatrzymać - Zmodyfikuj skrypt — dodaj opcję wyboru innej muzyki
- Sprawdź
ps aux | grep mpvżeby znaleźć procesy mpv