Tips en Trucs 2024

Command Line Internet Radio Player PyRadio met www.radio-browser.info ondersteuning

PyRadio, een terminal internetradiospeler voor Linux, Windows en macOS, heeft functies zoals ondersteuning voor Radio Browser (zoeken, een lijst maken en https://www.radio-browser.info radiostations afspelen), server voor afstandsbediening. Deze Internetradiospeler beschikt ook over een editor voor radiostations, vi-achtige sneltoetsen naast pijlen en speciale toetsen, ondersteuning voor meerdere afspeellijsten, zoeken, ondersteuning voor thema's, optionele muisondersteuning en meer. Voor het afspelen gebruikt het mpv, VLC of MPlayer (zonder GUI).

PyRadio installeren

Zoals de naam doet vermoeden is PyRadio geschreven in de programmeertaal Python. Python en het hulpprogramma wget om bestanden te downloaden, installeer je met de opdracht:

dany@pindabook:~$ sudo apt install python3-pip python3-setuptools python3-wheel python3-requests python3-dnspython python3-psutil python3-netifaces wget
[sudo] wachtwoord voor root: 
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
python3-requests is reeds de nieuwste versie (2.28.1+dfsg-1).
python3-requests staat ingesteld op handmatig geïnstalleerd.
wget is reeds de nieuwste versie (1.21.3-1+b2).
Het volgende pakket is automatisch geïnstalleerd en is niet langer nodig:
  linux-image-6.1.0-18-amd64
Gebruik 'sudo apt autoremove' om het te verwijderen.
De volgende extra pakketten zullen geïnstalleerd worden:
  binutils binutils-common binutils-x86-64-linux-gnu build-essential dpkg-dev fakeroot g++ g++-12 gcc gcc-12
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan8 libatomic1 libbinutils
  libc-dev-bin libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libexpat1-dev
  libfakeroot libfile-fcntllock-perl libgcc-12-dev libgprofng0 libitm1 libjs-sphinxdoc liblsan0 libnsl-dev
  libpython3-dev libpython3.11-dev libstdc++-12-dev libtirpc-dev libtsan2 libubsan1 linux-libc-dev make
  manpages-dev python3-anyio python3-click python3-colorama python3-dev python3-distutils python3-h11 python3-h2
  python3-hpack python3-httpcore python3-httpx python3-hyperframe python3-lib2to3 python3-markdown-it
  python3-mdurl python3-pygments python3-requests-toolbelt python3-rfc3986 python3-rich python3-sniffio
  python3.11-dev rpcsvc-proto zlib1g-dev
Voorgestelde pakketten:
  binutils-doc debian-keyring g++-multilib g++-12-multilib gcc-12-doc gcc-multilib autoconf automake libtool flex
  bison gcc-doc gcc-12-multilib gcc-12-locales glibc-doc bzr libstdc++-12-doc make-doc python3-trio
  python3-aioquic python-psutil-doc python-pygments-doc ttf-bitstream-vera python-setuptools-doc
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  binutils binutils-common binutils-x86-64-linux-gnu build-essential dpkg-dev fakeroot g++ g++-12 gcc gcc-12
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan8 libatomic1 libbinutils
  libc-dev-bin libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libexpat1-dev
  libfakeroot libfile-fcntllock-perl libgcc-12-dev libgprofng0 libitm1 libjs-sphinxdoc liblsan0 libnsl-dev
  libpython3-dev libpython3.11-dev libstdc++-12-dev libtirpc-dev libtsan2 libubsan1 linux-libc-dev make
  manpages-dev python3-anyio python3-click python3-colorama python3-dev python3-distutils python3-dnspython
  python3-h11 python3-h2 python3-hpack python3-httpcore python3-httpx python3-hyperframe python3-lib2to3
  python3-markdown-it python3-mdurl python3-netifaces python3-pip python3-psutil python3-pygments
  python3-requests-toolbelt python3-rfc3986 python3-rich python3-setuptools python3-sniffio python3-wheel
  python3.11-dev rpcsvc-proto zlib1g-dev
0 opgewaardeerd, 70 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 66,8 MB aan archieven opgehaald worden.
Na deze bewerking zal er 280 MB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n] 
Ophalen:1 http://deb.debian.org/debian bookworm/main amd64 binutils-common amd64 2.40-2 [2.487 kB]
Ophalen:2 http://deb.debian.org/debian bookworm/main amd64 libbinutils amd64 2.40-2 [572 kB]
Ophalen:3 http://deb.debian.org/debian bookworm/main amd64 libctf-nobfd0 amd64 2.40-2 [153 kB]
...
Ophalen:68 http://deb.debian.org/debian bookworm/main amd64 python3-pip all 23.0.1+dfsg-1 [1.325 kB]
Ophalen:69 http://deb.debian.org/debian bookworm/main amd64 python3-psutil amd64 5.9.4-1+b1 [189 kB]               
Ophalen:70 http://deb.debian.org/debian bookworm/main amd64 python3-requests-toolbelt all 0.10.1-1 [41,3 kB]       
66,8 MB opgehaald in 6s (10,9 MB/s)                                                                                
Extraheren van sjablonen uit pakketten: 100%
Voorheen niet geselecteerd pakket binutils-common:amd64 wordt geselecteerd.
(Database wordt ingelezen ... 178770 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../00-binutils-common_2.40-2_amd64.deb wordt voorbereid...
Bezig met uitpakken van binutils-common:amd64 (2.40-2) ...
...
Voorheen niet geselecteerd pakket python3-requests-toolbelt wordt geselecteerd.
Uitpakken van .../69-python3-requests-toolbelt_0.10.1-1_all.deb wordt voorbereid...
Bezig met uitpakken van python3-requests-toolbelt (0.10.1-1) ...
Instellen van python3-sniffio (1.2.0-1) ...
Instellen van manpages-dev (6.03-2) ...
Instellen van python3-requests-toolbelt (0.10.1-1) ...
...
Instellen van libpython3-dev:amd64 (3.11.2-1+b1) ...
Instellen van python3.11-dev (3.11.2-6) ...
Instellen van python3-dev (3.11.2-1+b1) ...
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
Bezig met afhandelen van triggers voor libc-bin (2.36-9+deb12u7) ...

Het installatiescript download je met:

dany@pindabook:~$ wget https://raw.githubusercontent.com/coderholic/pyradio/master/pyradio/install.py
--2024-05-19 14:01:25--  https://raw.githubusercontent.com/coderholic/pyradio/master/pyradio/install.py
Herleiden van raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8003::154, 2606:50c0:8002::154, 2606:50c0:8000::154, ...
Verbinding maken met raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8003::154|:443... verbonden.
HTTP-verzoek is verzonden; wachten op antwoord... 200 OK
Lengte: 57146 (56K) [text/plain]
Wordt opgeslagen als: ‘install.py’

install.py                   100%[==============================================>]  55,81K  --.-KB/s    in 0,004s  

2024-05-19 14:01:30 (12,8 MB/s) - '‘install.py’' opgeslagen [57146/57146]

Het installatiescript start je met:

dany@pindabook:~$ python3 install.py
Error: This python installation is externally managed, which in plain words
        means that pip can only install packages within a virtual environment.

       The tool to do that is called pipx, but it is currently not installed
       in your system.

       Please install pipx and try again.

To succesfully complete PyRadio's installation, please refer to this page:
    https://github.com/coderholic/pyradio/blob/master/build.md

Oeps, om Python in virtuele omgevingen te kunnen gebruiken, hebben we nog wat extra software nodig:

dany@pindabook:~$ sudo apt-get install python3-full python3-pip python3-venv pipx
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
python3-pip is reeds de nieuwste versie (23.0.1+dfsg-1).
Het volgende pakket is automatisch geïnstalleerd en is niet langer nodig:
  linux-image-6.1.0-18-amd64
Gebruik 'sudo apt autoremove' om het te verwijderen.
De volgende extra pakketten zullen geïnstalleerd worden:
  2to3 blt fonts-font-awesome fonts-lato fonts-mathjax ghp-import idle idle-python3.11 libjs-bootstrap4
  libjs-highlight.js libjs-lunr libjs-mathjax libjs-modernizr libjs-popper.js libjs-sizzle libpython3.11-testsuite
  libtk8.6 mkdocs net-tools node-jquery python-babel-localedata python3-argcomplete python3-attr python3-babel
  python3-dateutil python3-doc python3-examples python3-gdbm python3-iniconfig python3-jinja2 python3-joblib
  python3-livereload python3-lunr python3-markdown python3-markupsafe python3-mergedeep python3-more-itertools
  python3-nltk python3-numpy python3-packaging python3-pip-whl python3-pluggy python3-py python3-pyinotify
  python3-pytest python3-pyyaml-env-tag python3-regex python3-setuptools-whl python3-simplejson python3-tk
  python3-tqdm python3-tz python3-userpath python3-watchdog python3-yaml python3.11-doc python3.11-examples
  python3.11-full python3.11-venv sphinx-rtd-theme-common tk8.6-blt2.5
Voorgestelde pakketten:
  blt-demo libjs-es5-shim fonts-mathjax-extras fonts-stix libjs-mathjax-doc tk8.6 mkdocs-doc nodejs
  python-attr-doc python3-gdbm-dbg python-jinja2-doc coffeescript node-less node-uglify python-livereload-doc
  python3-django python3-flask python3-slimmer python-lunr-doc python-markdown-doc gfortran subversion
  python-pyinotify-doc tix python3-tk-dbg
Aanbevolen pakketten:
  prover9
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  2to3 blt fonts-font-awesome fonts-lato fonts-mathjax ghp-import idle idle-python3.11 libjs-bootstrap4
  libjs-highlight.js libjs-lunr libjs-mathjax libjs-modernizr libjs-popper.js libjs-sizzle libpython3.11-testsuite
  libtk8.6 mkdocs net-tools node-jquery pipx python-babel-localedata python3-argcomplete python3-attr
  python3-babel python3-dateutil python3-doc python3-examples python3-full python3-gdbm python3-iniconfig
  python3-jinja2 python3-joblib python3-livereload python3-lunr python3-markdown python3-markupsafe
  python3-mergedeep python3-more-itertools python3-nltk python3-numpy python3-packaging python3-pip-whl
  python3-pluggy python3-py python3-pyinotify python3-pytest python3-pyyaml-env-tag python3-regex
  python3-setuptools-whl python3-simplejson python3-tk python3-tqdm python3-tz python3-userpath python3-venv
  python3-watchdog python3-yaml python3.11-doc python3.11-examples python3.11-full python3.11-venv
  sphinx-rtd-theme-common tk8.6-blt2.5
0 opgewaardeerd, 64 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 51,5 MB aan archieven opgehaald worden.
Na deze bewerking zal er 259 MB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n] 
Ophalen:1 http://deb.debian.org/debian bookworm/main amd64 fonts-lato all 2.0-2.1 [2.696 kB]
Ophalen:2 http://deb.debian.org/debian bookworm/main amd64 2to3 all 3.11.2-1 [10,0 kB]
Ophalen:3 http://deb.debian.org/debian bookworm/main amd64 libtk8.6 amd64 8.6.13-2 [781 kB]
...
Ophalen:62 http://deb.debian.org/debian bookworm/main amd64 python3-pyinotify all 0.9.6-2 [27,4 kB]
Ophalen:63 http://deb.debian.org/debian bookworm/main amd64 python3-pytest all 7.2.1-2 [236 kB]
Ophalen:64 http://deb.debian.org/debian bookworm/main amd64 python3-simplejson amd64 3.18.3-1 [59,8 kB]
51,5 MB opgehaald in 5s (11,0 MB/s)             
Extraheren van sjablonen uit pakketten: 100%
Voorheen niet geselecteerd pakket fonts-lato wordt geselecteerd.
(Database wordt ingelezen ... 187826 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../00-fonts-lato_2.0-2.1_all.deb wordt voorbereid...
Bezig met uitpakken van fonts-lato (2.0-2.1) ...
...
Voorheen niet geselecteerd pakket python3-simplejson wordt geselecteerd.
Uitpakken van .../63-python3-simplejson_3.18.3-1_amd64.deb wordt voorbereid...
Bezig met uitpakken van python3-simplejson (3.18.3-1) ...
Instellen van python3-more-itertools (8.10.0-2) ...
Instellen van python3-iniconfig (1.1.1-2) ...
Instellen van python3-attr (22.2.0-1) ...
...
Instellen van pipx (1.1.0-1) ...
Instellen van python3.11-full (3.11.2-6) ...
Instellen van python3-full (3.11.2-1+b1) ...
Bezig met afhandelen van triggers voor install-info (6.8-6+b1) ...
Bezig met afhandelen van triggers voor mailcap (3.70+nmu1) ...
Bezig met afhandelen van triggers voor fontconfig (2.14.1-4) ...
Bezig met afhandelen van triggers voor desktop-file-utils (0.26-1) ...
Bezig met afhandelen van triggers voor libc-bin (2.36-9+deb12u7) ...
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...

Nog even pipx (Python installatieprogramma) op de hoogte brengen van onze persoonlijke map met uitvoerbare programma's:

dany@pindabook:~$ python3 -m pipx ensurepath
Success! Added /home/dany/.local/bin to the PATH environment variable.

Consider adding shell completions for pipx. Run 'pipx completions' for instructions.

You will need to open a new terminal or re-login for the PATH changes to take effect.

Otherwise pipx is ready to go! ✨ 🌟 ✨

Herstart de terminal om deze aanpassing te activeren. En we proberen nogmaals PyRadio te installeren:

dany@pindabook:~$ python3 install.py

                     _____       _____           _ _
                    |  __ \     |  __ \         | (_)
                    | |__) |   _| |__) |__ _  __| |_  ___
                    |  ___/ | | |  _  // _` |/ _` | |/ _ \\
                    | |   | |_| | | \ \ (_| | (_| | | (_) |
                    |_|    \__, |_|  \_\__,_|\__,_|_|\___/
                            __/ |
                           |___/

                               installation script


Installing PyRadio...
Using directory: "/home/dany/.cache/pyradio"
Old "/home/dany/.cache/pyradio" found. Deleting...
Downloading PyRadio source code...
  url: "https://github.com/coderholic/pyradio/archive/0.9.3.6.zip"
  filename: "/home/dany/.cache/pyradio/pyradio-0.9.3.6.zip"
  ** file found in cache!
Extracting RyRadio source code...
Looking for pipx ... 1.1.0
  installed package pyradio 0.9.3.6, installed using Python 3.11.2
  These apps are now globally available
    - pyradio
done! ✨ 🌟 ✨
Installing Desktop file ...   


PyRadio succesfully installed!
Hope you have a lot of fun using it!
Cheers!

PyRadio speelt zelf geen muziek, maar gebruikt daarvoor de terminalversies van mpv, VLC of MPlayer. Mijn keuze viel op MPlayer dat je als volgt kunt installeren:

dany@pindabook:~$ sudo apt install mplayer
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
Het volgende pakket is automatisch geïnstalleerd en is niet langer nodig:
  linux-image-6.1.0-18-amd64
Gebruik 'sudo apt autoremove' om het te verwijderen.
De volgende extra pakketten zullen geïnstalleerd worden:
  libenca0 libvorbisidec1
Voorgestelde pakketten:
  mplayer-doc netselect | fping
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  libenca0 libvorbisidec1 mplayer
0 opgewaardeerd, 3 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 2.390 kB aan archieven opgehaald worden.
Na deze bewerking zal er 5.411 kB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n] 
Ophalen:1 http://deb.debian.org/debian bookworm/main amd64 libenca0 amd64 1.19-1.1 [62,5 kB]
Ophalen:2 http://deb.debian.org/debian bookworm/main amd64 libvorbisidec1 amd64 1.2.1+git20180316-7 [72,3 kB]
Ophalen:3 http://deb.debian.org/debian bookworm/main amd64 mplayer amd64 2:1.5+svn38408-1 [2.255 kB]
2.390 kB opgehaald in 0s (10,0 MB/s)
Voorheen niet geselecteerd pakket libenca0:amd64 wordt geselecteerd.
(Database wordt ingelezen ... 200013 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../libenca0_1.19-1.1_amd64.deb wordt voorbereid...
Bezig met uitpakken van libenca0:amd64 (1.19-1.1) ...
Voorheen niet geselecteerd pakket libvorbisidec1:amd64 wordt geselecteerd.
Uitpakken van .../libvorbisidec1_1.2.1+git20180316-7_amd64.deb wordt voorbereid...
Bezig met uitpakken van libvorbisidec1:amd64 (1.2.1+git20180316-7) ...
Voorheen niet geselecteerd pakket mplayer wordt geselecteerd.
Uitpakken van .../mplayer_2%3a1.5+svn38408-1_amd64.deb wordt voorbereid...
Bezig met uitpakken van mplayer (2:1.5+svn38408-1) ...
Instellen van libvorbisidec1:amd64 (1.2.1+git20180316-7) ...
Instellen van libenca0:amd64 (1.19-1.1) ...
Instellen van mplayer (2:1.5+svn38408-1) ...
Bezig met afhandelen van triggers voor libc-bin (2.36-9+deb12u7) ...
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
Bezig met afhandelen van triggers voor mailcap (3.70+nmu1) ...

PyRadio gebruiken

PyRadio start je met de opdracht:

dany@pindabook:~$ pyradio
PyRadio default theme

Mijn terminal (Konsole) ondersteunt geen correcte kleuren, waardoor PyRadio het gebruik van thema's uitschakelt. Na het drukken van een toets kunnen we verder.

Om met PyRadio door de radiostationlijst van RadioBrowser te bladeren, druk op O (Shift + o). Zoek naar een bepaald radiostation met s. Van daaruit kun je de www.radio-browser.info radiodatabase doorzoeken op basis van de zendernaam, land, staat, taal, tag of codec, met opties om weer te geven op aantal stemmen, aantal klikken, enz. en de resultaten te sorteren:

PyRadio search

Je kunt de zoekresultaten sorteren door op S (Shift + s) te drukken:

PyRadio Sorteren

Je kunt de RadioBrowser-configuratie wijzigen door op c te drukken terwijl je je in de RadioBrowser-radiolijst bevindt. Toon de details van de geselecteerde RadioBrowser-zender met I (Shift + i):

PyRadio Station

Je kunt ook stemmen op een radiostation vanuit de PyRadio-interface met V (Shift + v).

Stemmen

Je kunt alle beschikbare snelkoppelingen vinden door op ? te drukken. Je kunt ook de PyRadio offline HTML help lezen in de webbrowser door te drukken op \ en daarna op h met het PyRadio terminalvenster gericht.

Help

Vanuit het RadioBrowser venster druk je q om terug te keren naar het hoofdvenster. Druk op ? om de help van het hoofdvenster te krijgen.

Help PyRadio

Een radio beluister en stop je met de Spatiebalk. Druk nogmaals q om PyRadio vanuit het hoofdscherm te verlaten.

PyRadio verwijderen