In a marathon program from Christmas to New Year’s eve NPO Radio 2 broadcasts the so called “Top 2000“. A list of the 2000 most popular songs of all time. Because I’m not able to listen all 2000 songs in one go, I like to have them on a USB drive in MP3 format, so that I’m able to listen for example in my car.
The shell script below downloads the full “Top 2000” of 2022 in MP3 format from the official website. 80 MP3 files, ~12GB in size.
Required tools: curl
jq
sed
grep
tac
cat
#!/bin/sh
set -e
year=2022
for i in $(seq 25 31); do
curl -s https://www.nporadio2.nl/uitzendingen?date=$i-12-$year | grep __NEXT_DATA__ | sed -e 's/.*application\/json">//' -e 's/<\/script><script>//' | jq -r .props.pageProps.broadcasts[].url | sed -e 's/^/https:\/\/www.nporadio2.nl/' | tac >> pages
done
for p in $(cat pages); do
curl -s $p | grep __NEXT_DATA__ | sed -e 's/.*application\/json">//' -e 's/<\/script><script>//' | jq -r .props.pageProps.radioBroadcast.showAssets[].embedCode | sed -e "s/');};document.getElementById.*$//" -e "s/.*'//" -e "s/$/.mp3/" -e "s/^/https:\/\/entry.cdn.npoaudio.nl\/handle\//" >> mp3
done
# optional: remove the 1st 4 items (00:00-02:00, 02:00-04:00, 04:00-06:00, 06:00-08:00)
#tail -n +5 mp3 | sponge mp3
for m in $(cat mp3); do
curl -OL $m
done
December 31, 2022: Script updated