Tips en Trucs 2023

Online radio streams afspelen

Onlangs heb ik mij overslapen omdat mijn wekkerradio (op basis van een Raspberry Pi) de geprogrammeerde radiostream niet kon afspelen. Vandaag een tip van hoe je radiostreams met standaard terminal opdrachten kunt afspelen en waarmee je daarvoor rekening moet houden.

Met de informatie in deze tip heb je alle basisopdrachten om een eenvoudige radiospeler (en/of wekkerradio) te bouwen. Hieronder een afbeelding van mijn radiospeler op een Raspberry Pi met 7" inch touch screen en een DigiAMP+ HAT, een digitale eindversterker.

Internet radio

Bijwerken en MP3 speler installeren

Eerst zorgen we voor het obligate bijwerken van het systeem:

dany@pindabook:~$ sudo apt update && sudo apt upgrade -y
[sudo] wachtwoord voor dany: 
Geraakt:1 http://security.debian.org/debian-security bookworm-security InRelease
Geraakt:2 http://deb.debian.org/debian bookworm InRelease
Geraakt:3 http://deb.debian.org/debian bookworm-updates InRelease
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
Alle pakketten zijn up-to-date.
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
Opwaardering wordt doorgerekend... Klaar
0 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.

Daarna installeren een specialist in het afspelen van MP3 geluid: mpg123:

dany@pindabook:~$ sudo apt install mpg123
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
De volgende extra pakketten zullen geïnstalleerd worden:
  libout123-0 libportaudio2 libsyn123-0
Voorgestelde pakketten:
  jackd nas oss-compat oss4-base
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  libout123-0 libportaudio2 libsyn123-0 mpg123
0 opgewaardeerd, 4 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 383 kB aan archieven opgehaald worden.
Na deze bewerking zal er 1.095 kB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n] 
Ophalen:1 http://deb.debian.org/debian bookworm/main amd64 libout123-0 amd64 1.31.2-1 [28,4 kB]
Ophalen:2 http://deb.debian.org/debian bookworm/main amd64 libportaudio2 amd64 19.6.0-1.2 [66,7 kB]
Ophalen:3 http://deb.debian.org/debian bookworm/main amd64 libsyn123-0 amd64 1.31.2-1 [86,1 kB]
Ophalen:4 http://deb.debian.org/debian bookworm/main amd64 mpg123 amd64 1.31.2-1 [202 kB]
383 kB opgehaald in 0s (5.373 kB/s)
Voorheen niet geselecteerd pakket libout123-0:amd64 wordt geselecteerd.
(Database wordt ingelezen ... 173830 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../libout123-0_1.31.2-1_amd64.deb wordt voorbereid...
Bezig met uitpakken van libout123-0:amd64 (1.31.2-1) ...
Voorheen niet geselecteerd pakket libportaudio2:amd64 wordt geselecteerd.
Uitpakken van .../libportaudio2_19.6.0-1.2_amd64.deb wordt voorbereid...
Bezig met uitpakken van libportaudio2:amd64 (19.6.0-1.2) ...
Voorheen niet geselecteerd pakket libsyn123-0:amd64 wordt geselecteerd.
Uitpakken van .../libsyn123-0_1.31.2-1_amd64.deb wordt voorbereid...
Bezig met uitpakken van libsyn123-0:amd64 (1.31.2-1) ...
Voorheen niet geselecteerd pakket mpg123 wordt geselecteerd.
Uitpakken van .../mpg123_1.31.2-1_amd64.deb wordt voorbereid...
Bezig met uitpakken van mpg123 (1.31.2-1) ...
Instellen van libportaudio2:amd64 (19.6.0-1.2) ...
Instellen van libout123-0:amd64 (1.31.2-1) ...
Instellen van libsyn123-0:amd64 (1.31.2-1) ...
Instellen van mpg123 (1.31.2-1) ...
update-alternatives: /usr/bin/mpg123.bin wordt gebruikt om in de automatische modus in /usr/bin/mpg123 (mpg123) te voorzien
update-alternatives: /usr/bin/mpg123.bin wordt gebruikt om in de automatische modus in /usr/bin/mp3-decoder (mp3-decoder) te voorzien
Bezig met afhandelen van triggers voor libc-bin (2.36-9) ...
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
Bezig met afhandelen van triggers voor mailcap (3.70+nmu1) ...

Een standaard MP3 online radiostream afspelen

Als voorbeeld neem ik de Jazz zender Crooze FM. We gebruiken mpg123 met de optie -f (--scale) waarmee je het volume kunt regelen van 0 tot 32768 (standaard). De laatste optie is de URL van de Crooze FM audio stream. Op het einde van deze tip vind je een koppeling naar een webpagina waar je een verzameling kunt vinden van radio stream URL's.

dany@pindabook:~$ mpg123 -f -12000 http://streams.crooze.fm:8000
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
        version 1.31.2; written and copyright by Michael Hipp and others
        free software (LGPL) without any warranty but with best wishes

Directory: http://

Terminal control enabled, press 'h' for listing of keys and functions.

Playing MPEG stream 1 of 1: streams.crooze.fm:8000 ...
ICY-NAME: 
ICY-URL: http://www.shoutcast.com

MPEG 1.0 L III cbr128 48000 stereo

ICY-META: StreamTitle='Roberta Flack - Killing Me Softly with His Song (DJ Spinna Remix)';

ICY-META: StreamTitle='Selah Sue - Alone';

[0:04] Decoding of streams.crooze.fm:8000 finished.

Je kunt het afspelen afbreken met de sneltoets Ctrl+c. In de uitvoer merkt je dat de stream niet alleen audio bevat maar ook informatie zoals songtitels en -uitvoerders.

Stream informatie filteren en weergeven

De audio stream en de informatie wordt door mpg123 gescheiden. Daarbij wordt de informatie naar de error uitvoer gestuurd waardoor deze op het scherm zichtbaar wordt. Om deze informatie zelf te kunnen verwerken sturen we de error uitvoer (2>) naar het bestand radio.log:

dany@pindabook:~$ mpg123 -f -12000 http://streams.crooze.fm:8000 2> radio.log

Je ziet nu geen informatie verschijnen. Na een tijdje luisteren, breek je mpg123 af met de sneltoets Ctrl+c.

De in het bestand radio.log opgeslagen informatie maak je zichtbaar met:

dany@pindabook:~$ cat radio.log 
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
        version 1.31.2; written and copyright by Michael Hipp and others
        free software (LGPL) without any warranty but with best wishes

Directory: http://

Terminal control enabled, press 'h' for listing of keys and functions.

Playing MPEG stream 1 of 1: streams.crooze.fm:8000 ...
ICY-NAME: 
ICY-URL: http://www.shoutcast.com

MPEG 1.0 L III cbr128 48000 stereo

ICY-META: StreamTitle='Selah Sue - Alone';

[0:13] Decoding of streams.crooze.fm:8000 finished.

Tegelijkertijd afspelen en info opvragen

Om tijdens het afspelen de informatie weer te geven, moeten we mpg123 op de achtergrond laten spelen. Dit kan door achter de opdracht een &-teken te plaatsen. Maar dit is niet voldoende. Mpg123 stopt namelijk direct met afspelen als het op de achtergrond werkt. Om dit te verhinderen plaatsen we voor de mpg123 opdracht de opdracht nohup waardoor mpg123 de indruk heeft dat het op de voorgrond blijft spelen.

dany@pindabook:~$ nohup mpg123 -f -12000 http://streams.crooze.fm:8000 2> radio.log &
[2] 3309
[1]   Klaar                   nohup mpg123-alsa -f -12000 http://streams.crooze.fm:8000

Je krijgt dus de prompt terug om opdrachten uit te voeren tijden het afspelen. Met de grep opdracht kunnen we enkel de regels filteren die song informatie bevatten, namelijk de regels die de tekst ICY-META bevatten. De tail opdracht zorgt dat we enkel de laatste inforegel bekijken. En de cut opdracht toont ons enkel wat tussen enkele aanhalingstekens staat:

dany@pindabook:~$ cat radio.log | grep "ICY-META" | tail -1 | cut -d "'" -f 2
Groove Armada - One Way (feat. J.Lamotta) (GA25 Version)

Om een opdracht op de achtergrond achtergrond (mpg123) af te breken, kan je een killall opdracht gebruiken. Je stop het afspelen dus met:

dany@pindabook:~$ killall mpg123

Doorverwijzende URL's

Commerciële en overheidszenders veranderen soms van streamaanbieder (kostenbesparend en/of mogelijkheden). Daarbij veranderen ze niet de URL, maar laten ze de URL doorverwijzen naar de nieuwe aanbieder. Je kunt het vergelijken met snelkoppeling naar bestanden. Zo hoeven internetradio's geen nieuwe update te krijgen om de zenders te blijven beluisteren. Maar daar moet je wel rekening mee houden. Een voorbeeld met een VRT zender:

dany@pindabook:~$ mpg123 -f -12000 http://icecast.vrtcdn.be/stubru-high.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
        version 1.31.2; written and copyright by Michael Hipp and others
        free software (LGPL) without any warranty but with best wishes
[src/streamdump.c:stream_parse_headers():341] error: HTTP error response: HTTP/1.0 404 Not Found
[src/streamdump.c:stream_parse_headers():411] error: missing positive server response

Mpg123 is een specialist in het afspelen van MP3, maar is geen netwerkspecialist en kent dus geen URL doorverwijzingen. Curl is dat wel. We vragen met de curl opdracht de netwerkinformatie op van de radio stream. De -H (--header) zorgt dat de stream ook song informatie bevat (Icy-MetaData:1). De --silent optie zorgt dat curl geen berichten op het scherm toont. Daar we geen interesse hebben in de MP3 stream, vragen we enkel de netwerkinformatie op met de optie --head. Daarenboven laten we curl eventuele doorverwijzingen volgen met de optie -L (--location):

dany@pindabook:~$ curl -H "Icy-MetaData:1" --silent --head -L "http://icecast.vrtcdn.be/stubru-high.mp3"
HTTP/1.1 302 Moved Temporarily
Content-Type: text/html
Content-Length: 79
Connection: keep-alive
Server: awselb/2.0
Date: Sun, 16 Jul 2023 12:13:49 GMT
X-Request-Id: 074e0227-b7dd-44d2-b82a-475806c5d5d5
X-Served-By: redirect-server-LambdaFunction-1C4LCK89LQLR9 $LATEST in eu-central-1
Cache-Control: public, max-age=300
Location: http://vrt.stream.vip/stubru/mp3-128
Vary: Upgrade-Insecure-Requests
X-Cache: Hit from cloudfront
Via: 1.1 854e69d09dba9252a1cd2401bf2be25e.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: BRU50-C1
X-Amz-Cf-Id: 2KW7K2vZKfdIZmAdCFBOeabMZy1SiagaAXUZvyrsLM4hqAI2bhmO-w==
Age: 237

HTTP/1.1 302 Found
Access-Control-Allow-Origin: *
Cache-Control: no-cache, must-revalidate
Content-Type: audio/mpeg
Expires: Sun, 16 Jul 2023 12:17:46 GMT
Location: http://vrt.streamabc.net/vrt-studiobrussel-mp3-128-4409118?sABC=64o3qsrn%230%230op3p2n0r85n571544qr4p847432nr9s%23&aw_0_1st.playerid=&amsparams=playerid:;skey:1689509866
Server: Caddy
Status: 302 Moved Temporarily
X-Powered-By: PHP/7.4.33
Date: Sun, 16 Jul 2023 12:17:46 GMT

HTTP/1.1 200 OK
Accept-Ranges: none
Cache-Control: no-cache, no-store
Content-Type: audio/mpeg
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Server: streamABC/QuantumCast
Vary: Origin
Date: Sun, 16 Jul 2023 12:17:46 GMT
Connection: close

De URL met de radiostream wordt uiteindelijk gevonden en is in ons voorbeeld: http://vrt.streamabc.net/vrt-studiobrussel-mp3-128-4409118?sABC=64o3qsrn%230%230op3p2n0r85n571544qr4p847432nr9s%23&aw_0_1st.playerid=&amsparams=playerid:;skey:1689509866. Merk op dat deze URL verschillende parameters bevat, waaronder op het einde de parameter skey. Bij elke benadering van de radiostream URL kan je andere parameters krijgen. M.a.w. de URL's zijn eenmalig. Je kunt het vergelijken met een eenmalig wachtwoord. Parameters kunnen gebruikt worden voor allerlei zaken zoals het bijhouden van luistercijfers, opmaken van luisterprofielen, reclamedoeleinden, enz.

Aangezien mpg123 doorverwijzende URL's niet kan verwerken, laten we curl de stream ontvangen om deze aan mpg123 door te geven om het af te spelen:

dany@pindabook:~$ curl -H "Icy-MetaData:1" --silent -L "http://icecast.vrtcdn.be/stubru-high.mp3" 2>&1 | mpg123 -f -12000 -
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
        version 1.31.2; written and copyright by Michael Hipp and others
        free software (LGPL) without any warranty but with best wishes


Terminal control enabled, press 'h' for listing of keys and functions.

Playing MPEG stream 1 of 1: - ...

MPEG 1.0 L III cbr128 44100 j-s
Note: Illegal Audio-MPEG-Header 0x68e25451 at offset 8359.
Note: Trying to resync...
Note: Skipped 49 bytes in input.
> 20+01  00:00.52+00:00.00 --- 4294967259=4294967259 128 kb/s  418 B acc    0 clip p+0.000                                             
MPEG 1.0 L III cbr128 44100 j-s
Note: Illegal Audio-MPEG-Header 0xbefffb92 at offset 16767.
Note: Trying to resync...

Info synchronisatie

De audioweergave wordt regelmatig onderbroken, blijkbaar door fouten in de MP3 stream. Standaard wordt in een MP3 stream om de 16000 bytes audio een tekst geplaatst met informatie. In de VRT stream is dat echter om de 8192 bytes. Onderstaande opdracht maakt een deel van de MP3 stream rond positie 8192 zichtbaar. Let op de tekst: StreamTitle='VRT Studio Brussel';

dany@pindabook:~$ curl -H 'Icy-Metadata: 1' --silent -L "http://icecast.vrtcdn.be/stubru-high.mp3" | head -c 8250 | tail -c 128 | hexdump -C
00000000  49 92 04 0a 46 11 96 01  08 fc c6 c2 cd 92 ed 13  |I...F...........|
00000010  32 68 4a 76 dd e2 4c 94  f0 5d cc 04 ff fb 52 64  |2hJv..L..]....Rd|
00000020  e3 0f 11 85 16 5c 81 ec  1a 60 23 c1 cb b8 24 46  |.....\...`#...$F|
00000030  64 05 54 5d 74 07 b1 02  c0 7c 07 32 70 93 08 a6  |d.T]t....|.2p...|
00000040  68 a3 96 8a 9f 83 03 53  74 72 65 61 6d 54 69 74  |h......StreamTit|
00000050  6c 65 3d 27 56 52 54 20  53 74 75 64 69 6f 20 42  |le='VRT Studio B|
00000060  72 75 73 73 65 6c 27 3b  00 00 00 00 00 00 00 00  |russel';........|
00000070  00 00 00 00 00 00 00 7d  c7 3c de d3 96 dd 14 13  |.......}.<......|
00000080

Dit is zo voor de VRT zender, maar andere zenders gebruiken nog andere informatie intervallen. Om de informatieintervallen automatisch op te sporen laten we curl 2 seconden (timeout 2) de URL stream onderzoeken met een grep opdracht.

Grep laten we voorafgaan door stdbuf -oL om grep de uitvoer regel per regel te laten verwerken op zoek naar de tekst StreamTitle in een binair bestand (-aob):
dany@pindabook:~$ timeout 2 curl -H "Icy-MetaData:1" --silent -L "http://icecast.vrtcdn.be/stubru-high.mp3" 2>&1 | stdbuf -oL grep -aob "StreamTitle"
8193:StreamTitle
49206:StreamTitle
Beëindigd

Zoals je merkt, wordt niet elk interval informatie aangeboden, wel altijd na het eerste interval (hier 8192). De daaropvolgende informatie wordt aangeboden na een wisselend veelvoud van dit interval.

Dit interval filteren we met een sed opdracht uit de uitvoer en slaan we op in de variabele interval.

dany@pindabook:~$ interval=$(timeout 2 curl -H "Icy-MetaData:1" --silent -L "http://icecast.vrtcdn.be/stubru-high.mp3" 2>&1 | stdbuf -oL grep -aob "StreamTitle" | head -n1 | sed 's@^[^0-9]*\([0-9]\+\).*@\1@')
dany@pindabook:~$ echo $interval
8193

De positie komt echter niet overeen niet overeen met het interval: interval = positie - 1. We passen de variabele interval aan met:

dany@pindabook:~$ interval=$((interval - 1))

Nu we het juiste informatie-interval kennen, kunnen we dit meegeven met de mpg123 opdracht:

dany@pindabook:~$ curl -H "Icy-MetaData:1" --silent -L "http://icecast.vrtcdn.be/stubru-high.mp3" 2>&1 | mpg123 --icy-interval $interval -f -12000 -
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
        version 1.31.2; written and copyright by Michael Hipp and others
        free software (LGPL) without any warranty but with best wishes


Terminal control enabled, press 'h' for listing of keys and functions.

Playing MPEG stream 1 of 1: - ...

MPEG 1.0 L III cbr128 44100 j-s

ICY-META: StreamTitle='VRT Studio Brussel';

ICY-META: StreamTitle='OSCAR AND THE WOLF - Warrior';

[0:10] Decoding of - finished.

Eén script

Typ (kopiëren en plakken mag ook) dit script in jouw favoriete teksteditor (vb: nano of Kate) en sla het op als playRadio.sh.

#!/bin/bash
# $1 = URL
interval=$(timeout 2 curl -H "Icy-MetaData:1" --silent -L "$1" 2>&1 | stdbuf -oL grep -aob "StreamTitle" | head -n1 | sed 's@^[^0-9]*\([0-9]\+\).*@\1@')
interval=$((interval - 1))
curl -H "Icy-MetaData:1" --silent -L "$1" 2>&1 | mpg123 --icy-interval $interval -f -12000 -

Maak het script uitvoerbaar met de opdracht:

dany@pindabook:~$ chmod +x playRadio.sh

Het script testen met een HTTPS radio stream

Sommige online radio stream maken gebruik van HTTPS i.p.v. HTTP. We testen meteen of ons script ook HTTPS radio streams kan afspelen:

dany@pindabook:~$ ./playRadio.sh "https://streams.radio.dpgmedia.cloud/redirect/joe_fm/mp3"
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
        version 1.31.2; written and copyright by Michael Hipp and others
        free software (LGPL) without any warranty but with best wishes


Terminal control enabled, press 'h' for listing of keys and functions.

Playing MPEG stream 1 of 1: - ...

MPEG 1.0 L III cbr128 48000 j-s

ICY-META: StreamTitle='';StreamUrl='';adw_ad='true';durationMilliseconds='20088';adId='14258';insertionType='preroll';

ICY-META: StreamTitle='DURAN DURAN - The Reflex';

[0:26] Decoding of - finished.

Gelukt. Nu nog testen of dit ook op de achtergrond kan om gelijktijdig de song informatie weer te kunnen geven:

dany@pindabook:~$ nohup ./playRadio.sh "https://streams.radio.dpgmedia.cloud/redirect/joe_fm/mp3" 2> radio.log &
[1] 3303
dany@pindabook:~$ cat radio.log | grep "ICY-META" | tail -1 | cut -d "'" -f 2
KEVIN LYTTLE - Turn Me On

Daar we nu niet alleen mpg123, maar ook curl gebruiken om een online MP3 stream af te spelen, kunnen we het afspelen en downloaden van de MP3 stream afbreken met de opdracht:

dany@pindabook:~$ killall mpg123 curl

Volumeregeling

Om zelf een volwaardige radiospeler te bouwen, heb je nog een volumeregeling nodig. Om de mogelijkheden van het mengpaneel van jouw audiosysteem (ALSA) weer te geven, voer je de volgende opdracht uit:

dany@pindabook:~$ amixer controls
numid=4,iface=MIXER,name='Master Playback Switch'
numid=3,iface=MIXER,name='Master Playback Volume'
numid=2,iface=MIXER,name='Capture Switch'
numid=1,iface=MIXER,name='Capture Volume'

Daarbij is het eeste woord van de naam belangrijk, we zijn vooral geïnteresseerd in het weergavevolume: Master Playback Volume. Daarna kan je het volume met 10% verhogen met de opdracht:

dany@pindabook:~$ amixer set 'Master' 10%+
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 65536
  Mono:
  Front Left: Playback 45876 [70%] [on]
  Front Right: Playback 45876 [70%] [on]

De uitvoer toont het ingestelde volume, samen met wat extra informatie. Het volume met 10% verlagen:

dany@pindabook:~$ amixer set 'Master' 10%-
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 65536
  Mono:
  Front Left: Playback 39322 [60%] [on]
  Front Right: Playback 39322 [60%] [on]

Het huidige volume opvragen:

dany@pindabook:~$ amixer get 'Master'
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 65536
  Mono:
  Front Left: Playback 39322 [60%] [on]
  Front Right: Playback 39322 [60%] [on]

En filteren zodat je enkel het volume percentage krijgt:

dany@pindabook:~$ amixer get 'Master' | awk -F"[][]" '/Left:/ { print $2 }'
60%

Radiozender URL's

Ziehier een overzicht van radio stream URL's. De eerste vier komen van de radio websites zelf. Deze bevatten de meest correcte informatie, maar zijn moeilijk te vinden, alsof ze niet willen dat je ze gebruikt. De laatste website in een website die URL streams verzameld. Let wel op dat je een site gebruikt die up to date URL informatie weergeeft, veel radiostream URL's die je op internet vind zijn verouderd en werken niet meer.

mpg123 verwijderen

De mpg123 software verwijder je met de twee volgende opdrachten:

dany@pindabook:~$ sudo apt purge mpg123
[sudo] wachtwoord voor dany: 
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
De volgende pakketten zijn automatisch geïnstalleerd en zijn niet langer nodig:
  libout123-0 libsyn123-0
Gebruik 'sudo apt autoremove' om ze te verwijderen.
De volgende pakketten zullen VERWIJDERD worden:
  mpg123*
0 opgewaardeerd, 0 nieuw geïnstalleerd, 1 te verwijderen en 81 niet opgewaardeerd.
Na deze bewerking zal er 574 kB schijfruimte vrijkomen.
Wilt u doorgaan? [J/n] 
(Database wordt ingelezen ... 173937 bestanden en mappen momenteel geïnstalleerd.)
mpg123 (1.31.2-1) wordt verwijderd ...
Bezig met afhandelen van triggers voor mailcap (3.70+nmu1) ...
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
dany@pindabook:~$ sudo apt autoremove
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
De volgende pakketten zullen VERWIJDERD worden:
  libout123-0 libsyn123-0
0 opgewaardeerd, 0 nieuw geïnstalleerd, 2 te verwijderen en 81 niet opgewaardeerd.
Na deze bewerking zal er 301 kB schijfruimte vrijkomen.
Wilt u doorgaan? [J/n] 
(Database wordt ingelezen ... 173896 bestanden en mappen momenteel geïnstalleerd.)
libout123-0:amd64 (1.31.2-1) wordt verwijderd ...
libsyn123-0:amd64 (1.31.2-1) wordt verwijderd ...
Bezig met afhandelen van triggers voor libc-bin (2.36-9) ...

En het script en radio.log met:

dany@pindabook:~$ rm playRadio.sh radio.log