add programmes_radio script

This commit is contained in:
U-DESKTOP-3VIS1T9\junguler 2024-11-02 17:07:53 +03:30
parent 511fc43502
commit 6753250710

31
stuff/programmes_radio.sh Executable file
View File

@ -0,0 +1,31 @@
#!/bin/bash
# extract all the api data
for i in "" \&offset={48..59040..48} ; do curl -s 'https://api.programmes-radio.com/stream?sort=popularity$i' --compressed -H 'User-Agent: Mozilla/5.0' -H 'Accept: */*' >> main.json ; echo $i ; done
# prettify and tableized data
cat main.json | jq -r '.streams[] | [.name, .country_code, .stream_url, .tags] | @csv' | sed 's| |_|g' > main.csv
# extract country list
curl 'https://api.programmes-radio.com/countries?locale=en' | jq .countries | awk -F '"' '{print $2"__"$4}' | awk 'length>4' | sed 's| |_|g' > countries.txt
# extract genre tags and create a genre list
cat main.csv | awk -F '"' '{print $8}' | awk NF | tr ',' '\n' | sort | uniq > genres.txt
# extract genre playlists
for i in $(cat genres.txt) ; do cat main.csv | grep -i $i | awk -F '"' '{print "#EXTINF:-1,"$2 "\n" $6}' | sed '/^#/s/_/ /g' | awk '!seen[$0]++' >> A-$i.txt ; done
# extract country playlists
for i in $(cat countries.txt) ; do cat main.csv | grep -i $(echo $i | awk -F '__' '{print $1}') | awk -F '"' '{print "#EXTINF:-1,"$2 "\n" $6}' | sed '/^#/s/_/ /g' | awk '!seen[$0]++' >> A-$(echo $i | awk -F '__' '{print $2}').txt ; done
# normilize filenames
find . -type f -exec bash -c 'for file; do normalized_name=$(echo "$file" | iconv -f UTF-8 -t ASCII//TRANSLIT | tr "[:space:]" "_" | tr -cd "[:alnum:]_.-"); normalized_name="${normalized_name#.}"; normalized_name="${normalized_name%_}"; [[ "$normalized_name" != "$file" ]] && mv -vi "$file" "$(dirname "$file")/$normalized_name"; done' bash {} +
# create all.m3u playlist - most of the streams didn't have a genre tag so here is the place they all went
for i in A-*.txt ; do cat $i | awk '!seen[$0]++' | grep -B1 "http" | grep -A1 "EXTINF" | awk 'length>4' > A$i ; echo -e $i ; done
# convert links to m3u streams
for i in AA-*.txt ; do sed '1s/^/#EXTM3U\n/' $i > $i.m3u ; done
# remove AA- and double extensions in streams
for i in *.m3u ; do mv "$i" "`echo $i | sed -e 's/AA-//' -e 's/.txt//'`" ; done