Compare commits

...

32 Commits
V1.5 ... main

Author SHA1 Message Date
fenix-soft 33075771da
Update note.md 2022-02-16 16:20:14 +01:00
fenix-soft d840775c15
Update README.md 2022-02-16 15:57:47 +01:00
fenix-soft d77d9b542e
Update README.md 2022-02-16 15:56:54 +01:00
fenix-soft 7e69292b93
Update version.txt 2022-02-16 15:55:16 +01:00
fenix-soft f06bf6b306
Update change_log.md 2022-02-16 15:53:37 +01:00
fenix-soft f8ca72383e
Add files via upload
ad new script
2022-02-16 15:46:50 +01:00
fenix-soft 81c376e2ca
Update version.txt 2022-02-15 14:51:31 +01:00
fenix-soft ba7a9d9038
Update note.md 2022-02-15 14:47:49 +01:00
fenix-soft badc37cd6f
Update note.md 2022-02-15 14:46:50 +01:00
fenix-soft b076a4a043
Update change_log.md 2022-02-15 14:35:29 +01:00
fenix-soft 002629646f
Update raipodcast-dl
add opus encoder "sperimental"
2022-02-15 14:30:20 +01:00
fenix-soft 3851cf1d00
Update gr3
change encoder setting
2022-02-15 14:25:02 +01:00
fenix-soft 28b743685a
Update gr2
change ecoder setting
2022-02-15 14:22:45 +01:00
fenix-soft 4ce91fd8c8
Update gr1
change encoder setting
2022-02-15 14:21:03 +01:00
fenix-soft b0a53b57b4
Update note.md 2022-02-12 09:43:54 +01:00
fenix-soft a6803ab02e
Update grr_sardegna
fix 404 error
2022-02-12 09:38:33 +01:00
fenix-soft e9ff13cf36
Update change_log.md 2022-02-12 09:35:59 +01:00
fenix-soft c4e7407745
Update version.txt 2022-02-12 09:32:23 +01:00
fenix-soft 39db33dd07
Add files via upload
generic dl podcast episode: 

use: raipodcast-dl [link  html single  page episode]
2022-02-12 09:31:26 +01:00
fenix-soft 14354a285e
Add files via upload 2022-01-12 20:40:52 +01:00
fenix-soft 31b32f2151
Update change_log.md 2021-12-19 17:43:39 +01:00
fenix-soft 63999f52d7
Update version.txt 2021-12-19 17:41:06 +01:00
fenix-soft 0cc4830679
Add files via upload
fix new api
2021-12-19 17:40:16 +01:00
fenix-soft 17e55b4817
Add files via upload
fix new api
2021-12-19 17:39:06 +01:00
fenix-soft 9ac5ed04e8
Add files via upload 2020-11-29 10:44:15 +01:00
fenix-soft 8337bcc88a
Add files via upload 2020-11-29 10:43:21 +01:00
fenix-soft f3dd82bbf1
Add files via upload 2020-11-29 10:42:24 +01:00
fenix-soft 26587f897f
Add files via upload 2020-11-20 14:09:51 +01:00
fenix-soft 58b639d6ce
Add files via upload 2020-11-20 14:08:46 +01:00
fenix-soft ba7ab3c845
Add files via upload 2020-11-20 14:02:23 +01:00
fenix-soft 75491720df
Add files via upload 2020-11-20 14:01:33 +01:00
fenix-soft 3d31a7e477
Add files via upload 2020-11-20 13:54:00 +01:00
21 changed files with 1151 additions and 74 deletions

80
R3_primapagina Normal file
View File

@ -0,0 +1,80 @@
#!/bin/bash
#
#
####################################################################################
# script che recupera l'ultimo podcast di https://www.raiplaysound.it/programmi/primapagina
#
# V:2.0 alpha_debug_mode 18 DICEMBRE 2021
#
# dipendenze: curl,jq,cat,wget
# uso: lancia lo script "R3_primapagina" per scaricare l'ultimo podcast inserito
# log: modifiche per cambio api e dominio rai
####################################################################################
# set global variable
primapaginaapi="https://www.raiplaysound.it/programmi/primapagina.json"
grbase="https://www.raiplaysound.it"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/primapagina.json
#rm ./data/Lprimapagina.json
# get jason data
curl -A "$ag" "$primapaginaapi" -o data/primapagina.json
echo " "
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the last podcast
dataT=`cat ./data/primapagina.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."title"'`
echo " "
echo "extract data... find.."
echo " "
echo " "
echo podcast_title: $dataT
echo " "
Lpodcast=`cat ./data/primapagina.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."url"'`
echo " "
echo podcast_url: $Lpodcast
echo " "
# extract time and date onair podcast
ora=`cat ./data/primapagina.json | jq -r '."block" | ."cards" | .[0] | ."create_time"'`
Ora=`echo $ora | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
data=`cat ./data/primapagina.json | jq -r '."block" | ."cards" | .[0] | ."create_date"'`
Data=`echo $data | sed -e 's/\//\-/g'`
echo " "
echo log_podcast_creation: $Data $Ora
echo " "
echo " "
# download podcast
echo " download podcast.. opus_encode.."
echo " "
wget -d -c -U "$ag" "$Lpodcast" -O primapagina_"$Data"_"$Ora".mp3
# encode audio data... small file
#ffmpeg -n -i primapagina_"$Data"_"$Ora".mp3 -vn -acodec aac -ab 64k -ac 1 primapagina_"$Data"_"$Ora".m4a
ffmpeg -n -i primapagina_"$Data"_"$Ora".mp3 -acodec libopus -b:a 40k -ac 1 primapagina_"$Data"_"$Ora".opus
#ffmpeg -n -i primapagina_"$Data"_"$Ora".mp3 -vn -acodec libvorbis -aq 1 -ac 1 primapagina_"$Data"_"$Ora".ogg
rm primapagina_"$Data"_"$Ora".mp3

83
R3_scienza Normal file
View File

@ -0,0 +1,83 @@
#!/bin/bash
#
#
####################################################################################
# script che recupera l'ultimo podcast di https://www.raiplaysound.it/programmi/radio3scienza
#
# V:2.0 alpha_debug_mode 18 DICEMBRE 2021
#
# dipendenze: curl,jq,cat,wget
# uso: lancia R3_scienza è verrà scaricato l'ultimo episodio del podcast
# log: modifiche per cambio api e dominio rai
####################################################################################
# set global variable
R3_scienzaapi="https://www.raiplaysound.it/programmi/radio3scienza.json"
grbase="https://www.raiplaysound.it"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/R3_scienza.json
#rm ./data/LR3_scienza.json
# get jason data
curl -A "$ag" "$R3_scienzaapi" -o data/R3_scienza.json
echo " "
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the last podcast
dataT=`cat ./data/R3_scienza.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."title"'`
echo " "
echo "extract data... find.."
echo " "
echo " "
echo podcast_title: $dataT
echo " "
Lpodcast=`cat ./data/R3_scienza.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."url"'`
echo " "
echo podcast_url: $Lpodcast
echo " "
# extract time and date onair podcast
ora=`cat ./data/R3_scienza.json | jq -r '."block" | ."cards" | .[0] | ."create_time"'`
Ora=`echo $ora | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
data=`cat ./data/R3_scienza.json | jq -r '."block" | ."cards" | .[0] | ."create_date"'`
Data=`echo $data | sed -e 's/\//\-/g'`
echo " "
echo log_podcast_creation: $Data $Ora
echo " "
echo " "
# download podcast
echo " download podcast.. opus_encode.."
echo " "
wget -d -c -U "$ag" "$Lpodcast" -O R3_scienza_"$Data"_"$Ora".mp3
# encode audio data... small file
#ffmpeg -n -i R3_scienza_"$Data"_"$Ora".mp3 -vn -acodec aac -ab 64k -ac 1 R3_scienza_"$Data"_"$Ora".m4a
#ffmpeg -n -i R3_scienza_"$Data"_"$Ora".mp3 -acodec libopus -b:a 48k -ac 1 R3_scienza_"$Data"_"$Ora".opus
#ffmpeg -n -i R3_scienza_"$Data"_"$Ora".mp3 -vn -acodec libmp3lame -ab 96k -ac 1 NR3_scienza_"$Data"_"$Ora".mp3
ffmpeg -n -i R3_scienza_"$Data"_"$Ora".mp3 -vn -acodec libvorbis -aq 2 -ac 1 R3_scienza_"$Data"_"$Ora".ogg
rm R3_scienza_"$Data"_"$Ora".mp3

View File

@ -2,14 +2,14 @@
## Italian: Read Me version
**gr_podcast** è una raccolta di script bash che consente all'utente, di recuperare in maniera agevole, gli ultimi episodi inseriti del podcast del radio giornale rai '**gr**' .. e all'occorenza una volta scaricati, ricodificarli in formato **opus** o "**aac**" (audio codec) per risparmiare spazio di archiviazione, vedi [note.md](note.md)
**gr_podcast** è una raccolta di script bash che consente all'utente, di recuperare in maniera agevole, gli ultimi episodi inseriti del podcast del radio giornale rai '**gr**' .. e all'occorenza una volta scaricati, ricodificarli in formato **opus** o "**aac**" (audio codec) per risparmiare spazio di archiviazione, vedi [note.md](note.md) , e il [change_log.md](change_log.md)
La raccolta prevede al momento, gli script per il: **gr1**, **gr2**, **gr3**, del giornale radio nazionale
La raccolta comprende gli script per il: **gr1**, **gr2**, **gr3**, del giornale radio nazionale
La raccolta attualmente prevede, gli scripr del *grr regionale*: **Lazio**, **Lombardia**, **Abruzzo**, **Basilicata**, **Calabria**, **Campania**, **Piemonte**
La raccolta comprende anche gli scripr del **grr regionale.**
## dipendenze:
@ -50,9 +50,11 @@ buon ascolto!
## English: Read Me version
**gr_podcast** is a collection of bash scripts that allows the user to easily retrieve the latest episodes included in the podcast of the radio newspaper rai '**gr**' .. and if necessary, once downloaded, recode them in **opus** or "**aac**" format (audio codec) to save storage space, see [note.md](note.md)
**gr_podcast** is a collection of bash scripts that allows the user to easily retrieve the latest episodes included in the podcast of the radio newspaper rai '**gr**' .. and if necessary, once downloaded, recode them in **opus** or "**aac**" format (audio codec) to save storage space, see [note.md](note.md), and the [change_log.md](change_log.md)
The collection currently includes scripts for: gr1, gr2, gr3
The collection currently includes scripts for: **gr1, gr2, gr3**
The collection also includes the scripr of the regional ** grr. **
### dependency script:
@ -88,4 +90,4 @@ to execute it give for example
gr1
good listening!
good listening!

View File

@ -1,3 +1,26 @@
# V2.2 beta
- add new script (inviatospeciale, italiasottoinchiesta, R3_primapagina)
- add new script (green_zone, R3_scienza)
- the use the new script is the same of gr1,2,3 script
# V2.1.1 alpha debug-mode
- change encoder setting in gr1,2,3 script (now small file but increse encoder time) [see note.md](note.md)
# V2.1 alpha debug-mode
- add new script "raipodcast-dl" for use [see note.md](note.md)
- fix alpha sperimental new grr sardegna script
# V2.0 alpha debug-mode
- fix script for use new api rai 2021/12/21
- fix script for use new rai url, rewrite some code gr1,gr2,gr3
# V1.7
- add script grr: Umbria, Valle d'Aosta
- add italian map "regioni_italia.png" in data directory for future use.
# V1.6
- add script grr: Puglia, Sardegna, Sicilia, Toscana, Trentino
# V1.5
- add script grr: Marche, Molise, Veneto
@ -18,4 +41,4 @@
# V1.0
- initial relase
- script: gr1, gr2, gr3
- script: gr1, gr2, gr3

BIN
data/regioni_italia.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

42
gr1
View File

@ -4,69 +4,73 @@
####################################################################################
# script che recupera l'ultimo podcast del gr1
#
#v:1.0 Novembre 2020
#
# dipendenze: curl,jq,cat,wget,ffmpeg
# V:2.1 alpha_debug_mode 15 FEBBRAIO 2022
#
# dipendenze: curl,jq,cat,wget
#
# log: modifiche per cambio api e dominio rai
####################################################################################
# set global variable
gr1api="https://www.raiplayradio.it/programmi/gr1/?json"
grbase="https://www.raiplayradio.it"
gr1api="https://www.raiplaysound.it/programmi/gr1.json"
grbase="https://www.raiplaysound.it"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/gr1.json
rm ./data/Lgr1.json
#rm ./data/Lgr1.json
# get jason data
curl -A "$ag" "$gr1api" -o data/gr1.json
echo " "
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the last podcast
dataL=`cat ./data/gr1.json | jq -r ."pathFirstItem"`
dataT=`cat ./data/gr1.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."title"'`
echo " "
echo log: $dataL
echo "extract data... find.."
echo " "
echo " "
echo podcast_title: $dataT
echo " "
curl -A "$ag" "$grbase$dataL" -o data/Lgr1.json
Lpodcast=`cat ./data/Lgr1.json | jq -r '.["audio"] | .contentUrl'`
Lpodcast=`cat ./data/gr1.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."url"'`
echo " "
echo log: $Lpodcast
echo podcast_url: $Lpodcast
echo " "
# extract time and date onair podcast
ora=`cat ./data/Lgr1.json | jq -r ."timePublished"`
ora=`cat ./data/gr1.json | jq -r '."block" | ."cards" | .[0] | ."create_time"'`
Ora=`echo $ora | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
data=`cat ./data/Lgr1.json | jq -r ."datePublished"`
data=`cat ./data/gr1.json | jq -r '."block" | ."cards" | .[0] | ."create_date"'`
Data=`echo $data | sed -e 's/\//\-/g'`
echo " "
echo log: $Data $Ora
echo log_podcast_creation: $Data $Ora
echo " "
echo " "
# download podcast
echo " download podcast.. opus_encode.."
echo " "
wget -d -c -U "$ag" "$Lpodcast" -O gr1_"$Data"_"$Ora".mp3
# encode audio data... small file
#ffmpeg -i gr1_"$Data"_"$Ora".mp3 -vn -acodec aac -ab 80k gr1_"$Data"_"$Ora".m4a
ffmpeg -i gr1_"$Data"_"$Ora".mp3 -acodec libopus -b:a 64k gr1_"$Data"_"$Ora".opus
rm gr1_"$Data"_"$Ora".mp3
#ffmpeg -i gr1_"$Data"_"$Ora".mp3 -vn -acodec aac -ab 70k -ac 1 gr1_"$Data"_"$Ora".m4a
ffmpeg -i gr1_"$Data"_"$Ora".mp3 -acodec libopus -b:a 48k -ac 1 gr1_"$Data"_"$Ora".opus
rm gr1_"$Data"_"$Ora".mp3

42
gr2
View File

@ -4,69 +4,73 @@
####################################################################################
# script che recupera l'ultimo podcast del gr2
#
#v:1.0 Novembre 2020
#
# dipendenze: curl,jq,cat,wget,ffmpeg
#V:2.1 alpha_debug_mode 15 FEBBRAIO 2022
#
# dipendenze: curl,jq,cat,wget
#
# log: cambio api rai e dominio
####################################################################################
# set global variable
gr2api="https://www.raiplayradio.it/programmi/gr2/?json"
grbase="https://www.raiplayradio.it"
gr2api="https://www.raiplaysound.it/programmi/gr2.json"
grbase="https://www.raiplaysound.it"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/gr2.json
rm ./data/Lgr2.json
#rm ./data/Lgr2.json
# get jason data
curl -A "$ag" "$gr2api" -o data/gr2.json
echo " "
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the last podcast
dataL=`cat ./data/gr2.json | jq -r ."pathFirstItem"`
dataT=`cat ./data/gr2.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."title"'`
echo " "
echo log: $dataL
echo "extract data... find.."
echo " "
echo " "
echo podcast_title: $dataT
echo " "
curl -A "$ag" "$grbase$dataL" -o data/Lgr2.json
Lpodcast=`cat ./data/Lgr2.json | jq -r '.["audio"] | .contentUrl'`
Lpodcast=`cat ./data/gr2.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."url"'`
echo " "
echo log: $Lpodcast
echo podcast_url: $Lpodcast
echo " "
# extract time and date onair podcast
ora=`cat ./data/Lgr2.json | jq -r ."timePublished"`
ora=`cat ./data/gr2.json | jq -r '."block" | ."cards" | .[0] | ."create_time"'`
Ora=`echo $ora | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
data=`cat ./data/Lgr2.json | jq -r ."datePublished"`
data=`cat ./data/gr2.json | jq -r '."block" | ."cards" | .[0] | ."create_date"'`
Data=`echo $data | sed -e 's/\//\-/g'`
echo " "
echo log: $Data $Ora
echo log_podcast_creation: $Data $Ora
echo " "
echo " "
# download podcast
echo " download podcast.. opus_encode.."
echo " "
wget -d -c -U "$ag" "$Lpodcast" -O gr2_"$Data"_"$Ora".mp3
# encode audio data... small file
#ffmpeg -i gr2_"$Data"_"$Ora".mp3 -vn -acodec aac -ab 80k gr2_"$Data"_"$Ora".m4a
ffmpeg -i gr2_"$Data"_"$Ora".mp3 -acodec libopus -b:a 64k gr2_"$Data"_"$Ora".opus
rm gr2_"$Data"_"$Ora".mp3
#ffmpeg -i gr2_"$Data"_"$Ora".mp3 -vn -acodec aac -ab 70k -ac 1 gr2_"$Data"_"$Ora".m4a
ffmpeg -i gr2_"$Data"_"$Ora".mp3 -acodec libopus -b:a 48k -ac 1 gr2_"$Data"_"$Ora".opus
rm gr2_"$Data"_"$Ora".mp3

44
gr3
View File

@ -2,71 +2,75 @@
#
#
####################################################################################
# script che recupera l'ultimo podcast del gr3
# script che recupera l'ultimo podcast del gr3
#
#v:1.0 Novembre 2020
#
# dipendenze: curl,jq,cat,wget,ffmpeg
#V:2.1 alpha_debug_mode 15 FEBBRAIO 2022
#
# dipendenze: curl,jq,cat,wget
#
# log: cambio api rai e dominio
####################################################################################
# set global variable
gr3api="https://www.raiplayradio.it/programmi/gr3/?json"
grbase="https://www.raiplayradio.it"
gr3api="https://www.raiplaysound.it/programmi/gr3.json"
grbase="https://www.raiplaysound.it"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/gr3.json
rm ./data/Lgr3.json
#rm ./data/Lgr3.json
# get jason data
curl -A "$ag" "$gr3api" -o data/gr3.json
echo " "
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the last podcast
dataL=`cat ./data/gr3.json | jq -r ."pathFirstItem"`
dataT=`cat ./data/gr3.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."title"'`
echo " "
echo log: $dataL
echo "extract data... find.."
echo " "
echo " "
echo podcast_title: $dataT
echo " "
curl -A "$ag" "$grbase$dataL" -o data/Lgr3.json
Lpodcast=`cat ./data/Lgr3.json | jq -r '.["audio"] | .contentUrl'`
Lpodcast=`cat ./data/gr3.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."url"'`
echo " "
echo log: $Lpodcast
echo podcast_url: $Lpodcast
echo " "
# extract time and date onair podcast
ora=`cat ./data/Lgr3.json | jq -r ."timePublished"`
ora=`cat ./data/gr3.json | jq -r '."block" | ."cards" | .[0] | ."create_time"'`
Ora=`echo $ora | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
data=`cat ./data/Lgr3.json | jq -r ."datePublished"`
data=`cat ./data/gr3.json | jq -r '."block" | ."cards" | .[0] | ."create_date"'`
Data=`echo $data | sed -e 's/\//\-/g'`
echo " "
echo log: $Data $Ora
echo log_podcast_creation: $Data $Ora
echo " "
echo " "
# download podcast
echo " download podcast.. opus_encode.."
echo " "
wget -d -c -U "$ag" "$Lpodcast" -O gr3_"$Data"_"$Ora".mp3
# encode audio data... small file
#ffmpeg -i gr3_"$Data"_"$Ora".mp3 -vn -acodec aac -ab 80k gr3_"$Data"_"$Ora".m4a
ffmpeg -i gr3_"$Data"_"$Ora".mp3 -acodec libopus -b:a 64k gr3_"$Data"_"$Ora".opus
rm gr3_"$Data"_"$Ora".mp3
#ffmpeg -i gr3_"$Data"_"$Ora".mp3 -vn -acodec aac -ab 70k -ac 1 gr3_"$Data"_"$Ora".m4a
ffmpeg -i gr3_"$Data"_"$Ora".mp3 -acodec libopus -b:a 48k -ac 1 gr3_"$Data"_"$Ora".opus
rm gr3_"$Data"_"$Ora".mp3

82
green_zone Normal file
View File

@ -0,0 +1,82 @@
#!/bin/bash
#
#
####################################################################################
# script che recupera l'ultimo podcast di https://www.raiplaysound.it/programmi/greenzone
#
# V:2.0 alpha_debug_mode 18 DICEMBRE 2021
#
# dipendenze: curl,jq,cat,wget
# uso: lanciare ./green_zone oppure green_zone
# log: modifiche per cambio api e dominio rai
####################################################################################
# set global variable
greenzoneapi="https://www.raiplaysound.it/programmi/greenzone.json"
grbase="https://www.raiplaysound.it"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/greenzone.json
#rm ./data/Lgreenzone.json
# get jason data
curl -A "$ag" "$greenzoneapi" -o data/greenzone.json
echo " "
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the last podcast
dataT=`cat ./data/greenzone.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."title"'`
echo " "
echo "extract data... find.."
echo " "
echo " "
echo podcast_title: $dataT
echo " "
Lpodcast=`cat ./data/greenzone.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."url"'`
echo " "
echo podcast_url: $Lpodcast
echo " "
# extract time and date onair podcast
ora=`cat ./data/greenzone.json | jq -r '."block" | ."cards" | .[0] | ."create_time"'`
Ora=`echo $ora | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
data=`cat ./data/greenzone.json | jq -r '."block" | ."cards" | .[0] | ."create_date"'`
Data=`echo $data | sed -e 's/\//\-/g'`
echo " "
echo log_podcast_creation: $Data $Ora
echo " "
echo " "
# download podcast
echo " download podcast.. opus_encode.."
echo " "
wget -d -c -U "$ag" "$Lpodcast" -O greenzone_"$Data"_"$Ora".mp3
# encode audio data... small file
#ffmpeg -n -i greenzone_"$Data"_"$Ora".mp3 -acodec libopus -b:a 56k -ac 1 greenzone_"$Data"_"$Ora".opus
ffmpeg -n -i greenzone_"$Data"_"$Ora".mp3 -vn -acodec libvorbis -aq 2 -ac 1 greenzone_"$Data"_"$Ora".ogg
rm greenzone_"$Data"_"$Ora".mp3

55
grr_puglia Normal file
View File

@ -0,0 +1,55 @@
#!/bin/bash
#
#
####################################################################################
# script che recupera i podcast del radio giornale della Puglia
#
# v:1.0
#
# dipendenze: curl,jq,cat,wget
#
#
####################################################################################
# set global variable
grrAPI="https://www.rainews.it/dl/rai24/tgr/basic/archivio/ContentSet-8f966ccb-6364-4645-89be-9f8366e4f57e.json"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/Puglia.json
# get jason data
curl -A "$ag" "$grrAPI" -o data/Puglia.json
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the 2 last podcast stored
data0=`cat ./data/Puglia.json | jq -r '.items[0]|.date'`
Media0=`cat ./data/Puglia.json | jq -r '.items[0]|.mediaUrl'`
ora0=`cat ./data/Puglia.json | jq -r '.items[0]|.title'`
data1=`cat ./data/Puglia.json | jq -r '.items[1]|.date'`
Media1=`cat ./data/Puglia.json | jq -r '.items[1]|.mediaUrl'`
ora1=`cat ./data/Puglia.json | jq -r '.items[1]|.title'`
# extract time onair podcast "h_m"
Ora0=`echo $ora0 | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
Ora1=`echo $ora1 | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
# extract date onair podcast "type 10-10-2020"
Data0=`echo $data0 | sed -e 's/\//\-/g'`
Data1=`echo $data1 | sed -e 's/\//\-/g'`
echo " "
echo "extract data... done!"
echo " "
# download podcast
wget -d -c -U "$ag" "$Media0" -O GRR_Puglia_"$Data0"_"$Ora0".mp3
wget -d -c -U "$ag" "$Media1" -O GRR_Puglia_"$Data1"_"$Ora1".mp3

82
grr_sardegna Normal file
View File

@ -0,0 +1,82 @@
#!/bin/bash
#
#
####################################################################################
# script che recupera i podcast del radio giornale sardo
#
# v:2.0 alpha 12 Gennaio 2022
#
# dipendenze: curl,jq,cat,wget
#
#
####################################################################################
# set global variable
grrAPI="https://www.rainews.it/dl/rai24/tgr/basic/archivio/ContentSet-49e9a5dc-a10a-47ee-bb5c-42c3879c2e71.json"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/data.json
# get jason data
curl -A "$ag" "$grrAPI" -o data/data.json
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the 2 last podcast stored
data0=`cat ./data/data.json | jq -r '.items[0]|.date'`
Media0=`cat ./data/data.json | jq -r '.items[0]|.mediaUrl'`
ora0=`cat ./data/data.json | jq -r '.items[0]|.title'`
data1=`cat ./data/data.json | jq -r '.items[1]|.date'`
Media1=`cat ./data/data.json | jq -r '.items[1]|.mediaUrl'`
ora1=`cat ./data/data.json | jq -r '.items[1]|.title'`
# extract time onair podcast "h_m"
Ora0=`echo $ora0 | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
Ora1=`echo $ora1 | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
# extract date onair podcast "type 10-10-2020"
Data0=`echo $data0 | sed -e 's/\//\-/g'`
Data1=`echo $data1 | sed -e 's/\//\-/g'`
echo " "
echo "extract data... done!"
echo " "
# patch 404 relinker old api legacy
echo " "
echo "patch 404 relinker... debug mode.."
echo " "
echo $Media0
echo $Media1
Media_0=`echo $Media0 | sed -e 's/http/https/g'`
Media_1=`echo $Media1 | sed -e 's/http/https/g'`
echo " "
echo "apply patch 404.. to https relinker..debug "
echo " "
echo "link_fix: "$Media_0
echo "link_fix: "$Media_1
# download podcast
wget -d -c -U "$ag" "$Media_0" -O GRR_"$Data0"_"$Ora0".mp3
wget -d -c -U "$ag" "$Media_1" -O GRR_"$Data1"_"$Ora1".mp3
# encode audio data... small file
#ffmpeg -i GRR_"$Data"_"$Ora".mp3 -vn -acodec aac -ab 80k GRR_"$Data"_"$Ora".m4a
ffmpeg -n -i GRR_"$Data0"_"$Ora0".mp3 -acodec libopus -b:a 56k -ac 1 GRR_"$Data0"_"$Ora0".opus
ffmpeg -n -i GRR_"$Data1"_"$Ora1".mp3 -acodec libopus -b:a 56k -ac 1 GRR_"$Data1"_"$Ora1".opus
rm GRR_"$Data0"_"$Ora0".mp3
rm GRR_"$Data1"_"$Ora1".mp3

55
grr_sicilia Normal file
View File

@ -0,0 +1,55 @@
#!/bin/bash
#
#
####################################################################################
# script che recupera i podcast del radio giornale della Sicilia
#
# v:1.0
#
# dipendenze: curl,jq,cat,wget
#
#
####################################################################################
# set global variable
grrAPI="https://www.rainews.it/dl/rai24/tgr/basic/archivio/ContentSet-2b25138f-e9ea-4fe7-a6d8-69d10fb446bc.json"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/Sicilia.json
# get jason data
curl -A "$ag" "$grrAPI" -o data/Sicilia.json
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the 2 last podcast stored
data0=`cat ./data/Sicilia.json | jq -r '.items[0]|.date'`
Media0=`cat ./data/Sicilia.json | jq -r '.items[0]|.mediaUrl'`
ora0=`cat ./data/Sicilia.json | jq -r '.items[0]|.title'`
data1=`cat ./data/Sicilia.json | jq -r '.items[1]|.date'`
Media1=`cat ./data/Sicilia.json | jq -r '.items[1]|.mediaUrl'`
ora1=`cat ./data/Sicilia.json | jq -r '.items[1]|.title'`
# extract time onair podcast "h_m"
Ora0=`echo $ora0 | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
Ora1=`echo $ora1 | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
# extract date onair podcast "type 10-10-2020"
Data0=`echo $data0 | sed -e 's/\//\-/g'`
Data1=`echo $data1 | sed -e 's/\//\-/g'`
echo " "
echo "extract data... done!"
echo " "
# download podcast
wget -d -c -U "$ag" "$Media0" -O GRR_Sicilia_"$Data0"_"$Ora0".mp3
wget -d -c -U "$ag" "$Media1" -O GRR_Sicilia_"$Data1"_"$Ora1".mp3

55
grr_toscana Normal file
View File

@ -0,0 +1,55 @@
#!/bin/bash
#
#
####################################################################################
# script che recupera i podcast del radio giornale della Toscana
#
# v:1.0
#
# dipendenze: curl,jq,cat,wget
#
#
####################################################################################
# set global variable
grrAPI="https://www.rainews.it/dl/rai24/tgr/basic/archivio/ContentSet-4139dec9-a0e5-451d-a352-693e09563230.json".json"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/Toscana.json
# get jason data
curl -A "$ag" "$grrAPI" -o data/Toscana.json
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the 2 last podcast stored
data0=`cat ./data/Toscana.json | jq -r '.items[0]|.date'`
Media0=`cat ./data/Toscana.json | jq -r '.items[0]|.mediaUrl'`
ora0=`cat ./data/Toscana.json | jq -r '.items[0]|.title'`
data1=`cat ./data/Toscana.json | jq -r '.items[1]|.date'`
Media1=`cat ./data/Toscana.json | jq -r '.items[1]|.mediaUrl'`
ora1=`cat ./data/Toscana.json | jq -r '.items[1]|.title'`
# extract time onair podcast "h_m"
Ora0=`echo $ora0 | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
Ora1=`echo $ora1 | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
# extract date onair podcast "type 10-10-2020"
Data0=`echo $data0 | sed -e 's/\//\-/g'`
Data1=`echo $data1 | sed -e 's/\//\-/g'`
echo " "
echo "extract data... done!"
echo " "
# download podcast
wget -d -c -U "$ag" "$Media0" -O GRR_Toscana_"$Data0"_"$Ora0".mp3
wget -d -c -U "$ag" "$Media1" -O GRR_Toscana_"$Data1"_"$Ora1".mp3

55
grr_trentino Normal file
View File

@ -0,0 +1,55 @@
#!/bin/bash
#
#
####################################################################################
# script che recupera i podcast del radio giornale del Trentino
#
# v:1.0
#
# dipendenze: curl,jq,cat,wget
#
#
####################################################################################
# set global variable
grrAPI="https://www.rainews.it/dl/rai24/tgr/basic/archivio/ContentSet-bfbb8872-97e3-4caa-b98c-1ae975165547.json"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/Trentino.json
# get jason data
curl -A "$ag" "$grrAPI" -o data/Trentino.json
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the 2 last podcast stored
data0=`cat ./data/Trentino.json | jq -r '.items[0]|.date'`
Media0=`cat ./data/Trentino.json | jq -r '.items[0]|.mediaUrl'`
ora0=`cat ./data/Trentino.json | jq -r '.items[0]|.title'`
data1=`cat ./data/Trentino.json | jq -r '.items[1]|.date'`
Media1=`cat ./data/Trentino.json | jq -r '.items[1]|.mediaUrl'`
ora1=`cat ./data/Trentino.json | jq -r '.items[1]|.title'`
# extract time onair podcast "h_m"
Ora0=`echo $ora0 | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
Ora1=`echo $ora1 | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
# extract date onair podcast "type 10-10-2020"
Data0=`echo $data0 | sed -e 's/\//\-/g'`
Data1=`echo $data1 | sed -e 's/\//\-/g'`
echo " "
echo "extract data... done!"
echo " "
# download podcast
wget -d -c -U "$ag" "$Media0" -O GRR_Trentino_"$Data0"_"$Ora0".mp3
wget -d -c -U "$ag" "$Media1" -O GRR_Trentino_"$Data1"_"$Ora1".mp3

55
grr_umbria Normal file
View File

@ -0,0 +1,55 @@
#!/bin/bash
#
#
####################################################################################
# script che recupera i podcast del radio giornale dell' Umbria
#
# v:1.0
#
# dipendenze: curl,jq,cat,wget
#
#
####################################################################################
# set global variable
grrAPI="https://www.rainews.it/dl/rai24/tgr/basic/archivio/ContentSet-7157dc3d-8f3d-41f7-a3d0-dd887b8a9e12.json"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/Umbria.json
# get jason data
curl -A "$ag" "$grrAPI" -o data/Umbria.json
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the 2 last podcast stored
data0=`cat ./data/Umbria.json | jq -r '.items[0]|.date'`
Media0=`cat ./data/Umbria.json | jq -r '.items[0]|.mediaUrl'`
ora0=`cat ./data/Umbria.json | jq -r '.items[0]|.title'`
data1=`cat ./data/Umbria.json | jq -r '.items[1]|.date'`
Media1=`cat ./data/Umbria.json | jq -r '.items[1]|.mediaUrl'`
ora1=`cat ./data/Umbria.json | jq -r '.items[1]|.title'`
# extract time onair podcast "h_m"
Ora0=`echo $ora0 | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
Ora1=`echo $ora1 | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
# extract date onair podcast "type 10-10-2020"
Data0=`echo $data0 | sed -e 's/\//\-/g'`
Data1=`echo $data1 | sed -e 's/\//\-/g'`
echo " "
echo "extract data... done!"
echo " "
# download podcast
wget -d -c -U "$ag" "$Media0" -O GRR_Umbria_"$Data0"_"$Ora0".mp3
wget -d -c -U "$ag" "$Media1" -O GRR_Umbria_"$Data1"_"$Ora1".mp3

55
grr_valledaosta Normal file
View File

@ -0,0 +1,55 @@
#!/bin/bash
#
#
####################################################################################
# script che recupera i podcast del radio giornale del ValledAosta
#
# v:1.0
#
# dipendenze: curl,jq,cat,wget
#
#
####################################################################################
# set global variable
grrAPI="https://www.rainews.it/dl/rai24/tgr/basic/archivio/ContentSet-4038ddb6-2238-4d0c-9215-b9dd5b46642c.json"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/ValledAosta.json
# get jason data
curl -A "$ag" "$grrAPI" -o data/ValledAosta.json
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the 2 last podcast stored
data0=`cat ./data/ValledAosta.json | jq -r '.items[0]|.date'`
Media0=`cat ./data/ValledAosta.json | jq -r '.items[0]|.mediaUrl'`
ora0=`cat ./data/ValledAosta.json | jq -r '.items[0]|.title'`
data1=`cat ./data/ValledAosta.json | jq -r '.items[1]|.date'`
Media1=`cat ./data/ValledAosta.json | jq -r '.items[1]|.mediaUrl'`
ora1=`cat ./data/ValledAosta.json | jq -r '.items[1]|.title'`
# extract time onair podcast "h_m"
Ora0=`echo $ora0 | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
Ora1=`echo $ora1 | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
# extract date onair podcast "type 10-10-2020"
Data0=`echo $data0 | sed -e 's/\//\-/g'`
Data1=`echo $data1 | sed -e 's/\//\-/g'`
echo " "
echo "extract data... done!"
echo " "
# download podcast
wget -d -c -U "$ag" "$Media0" -O GRR_ValledAosta_"$Data0"_"$Ora0".mp3
wget -d -c -U "$ag" "$Media1" -O GRR_ValledAosta_"$Data1"_"$Ora1".mp3

82
inviatospeciale Normal file
View File

@ -0,0 +1,82 @@
#!/bin/bash
#
#
####################################################################################
# script che recupera l'ultimo podcast di https://www.raiplaysound.it/programmi/inviatospeciale
#
# V:2.0 alpha_debug_mode 18 DICEMBRE 2021
#
# dipendenze: curl,jq,cat,wget
#
# log: modifiche per cambio api e dominio rai
####################################################################################
# set global variable
inviatospecialeapi="https://www.raiplaysound.it/programmi/inviatospeciale.json"
grbase="https://www.raiplaysound.it"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/inviatospeciale.json
#rm ./data/Linviatospeciale.json
# get jason data
curl -A "$ag" "$inviatospecialeapi" -o data/inviatospeciale.json
echo " "
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the last podcast
dataT=`cat ./data/inviatospeciale.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."title"'`
echo " "
echo "extract data... find.."
echo " "
echo " "
echo podcast_title: $dataT
echo " "
Lpodcast=`cat ./data/inviatospeciale.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."url"'`
echo " "
echo podcast_url: $Lpodcast
echo " "
# extract time and date onair podcast
ora=`cat ./data/inviatospeciale.json | jq -r '."block" | ."cards" | .[0] | ."create_time"'`
Ora=`echo $ora | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
data=`cat ./data/inviatospeciale.json | jq -r '."block" | ."cards" | .[0] | ."create_date"'`
Data=`echo $data | sed -e 's/\//\-/g'`
echo " "
echo log_podcast_creation: $Data $Ora
echo " "
echo " "
# download podcast
echo " download podcast.. opus_encode.."
echo " "
wget -d -c -U "$ag" "$Lpodcast" -O inviatospeciale_"$Data"_"$Ora".mp3
# encode audio data... small file
#ffmpeg -n -i inviatospeciale_"$Data"_"$Ora".mp3 -vn -acodec aac -ab 72k -ac 1 inviatospeciale_"$Data"_"$Ora".m4a
#ffmpeg -n -i inviatospeciale_"$Data"_"$Ora".mp3 -acodec libopus -b:a 56k -ac 1 inviatospeciale_"$Data"_"$Ora".opus
ffmpeg -n -i inviatospeciale_"$Data"_"$Ora".mp3 -vn -acodec libvorbis -aq 2 -ac 1 inviatospeciale_"$Data"_"$Ora".ogg
rm inviatospeciale_"$Data"_"$Ora".mp3

80
italiasottoinchiesta Normal file
View File

@ -0,0 +1,80 @@
#!/bin/bash
#
#
####################################################################################
# script che recupera l'ultimo podcast di https://www.raiplaysound.it/programmi/italiasottoinchiesta
#
# V:2.0 alpha_debug_mode 18 DICEMBRE 2021
#
# dipendenze: curl,jq,cat,wget
#
# log: modifiche per cambio api e dominio rai
####################################################################################
# set global variable
italiasottoinchiestaapi="https://www.raiplaysound.it/programmi/italiasottoinchiesta.json"
grbase="https://www.raiplaysound.it"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/italiasottoinchiesta.json
#rm ./data/Litaliasottoinchiesta.json
# get jason data
curl -A "$ag" "$italiasottoinchiestaapi" -o data/italiasottoinchiesta.json
echo " "
echo " "
echo "get data api... done!"
echo " "
# extract jason data of the last podcast
dataT=`cat ./data/italiasottoinchiesta.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."title"'`
echo " "
echo "extract data... find.."
echo " "
echo " "
echo podcast_title: $dataT
echo " "
Lpodcast=`cat ./data/italiasottoinchiesta.json | jq -r '."block" | ."cards" | .[0] | ."downloadable_audio" | ."url"'`
echo " "
echo podcast_url: $Lpodcast
echo " "
# extract time and date onair podcast
ora=`cat ./data/italiasottoinchiesta.json | jq -r '."block" | ."cards" | .[0] | ."create_time"'`
Ora=`echo $ora | sed -e 's/\ /\n/g' | grep ":"| sed -e 's/\:/\_/g'`
data=`cat ./data/italiasottoinchiesta.json | jq -r '."block" | ."cards" | .[0] | ."create_date"'`
Data=`echo $data | sed -e 's/\//\-/g'`
echo " "
echo log_podcast_creation: $Data $Ora
echo " "
echo " "
# download podcast
echo " download podcast.. opus_encode.."
echo " "
wget -d -c -U "$ag" "$Lpodcast" -O italiasottoinchiesta_"$Data"_"$Ora".mp3
# encode audio data... small file
#ffmpeg -n -i italiasottoinchiesta_"$Data"_"$Ora".mp3 -vn -acodec aac -ab 64k -ac 1 italiasottoinchiesta_"$Data"_"$Ora".m4a
#ffmpeg -n -i italiasottoinchiesta_"$Data"_"$Ora".mp3 -acodec libopus -b:a 40k -ac 1 italiasottoinchiesta_"$Data"_"$Ora".opus
ffmpeg -n -i italiasottoinchiesta_"$Data"_"$Ora".mp3 -vn -acodec libvorbis -aq 2 -ac 1 italiasottoinchiesta_"$Data"_"$Ora".ogg
rm italiasottoinchiesta_"$Data"_"$Ora".mp3

137
note.md
View File

@ -1,29 +1,150 @@
## Italian Note version:
# Italian Note version:
Gli script sono nati principalmente per i seguenti motivi:
- ero stufo di utilizzare app o sito ufficiale perchè pieni di traccianti
- ero stufo di utilizzare app o sito ufficiale perchè pieni di traccianti, social, ecc.. che ledono la privacy del consumatore, e che coattamente ti obbligano ad accettare, un qualcosa che reputo inverosimile, visto che il servizio pubblico di informazione rai è finanziato dal canone.
- il podcast non utilizza il formato rss xml per la sua fruizione ma un formato proprietario, l'app!
- il podcast non utilizza il formato aperto rss xml per la sua fruizione libera, ma un formato proprietario, l'app! costringendoti ad utilizzarla per forza per compatibilità tecnica.
- sito e app fanno un uso pesante di javascript e chissà cos'altro.. sprecano le risorse del pc inutilmente, questo comporta che spesso il browser o l'app si blocchi. I controlli del player web non funzionano su tutti i sistemi.... potrei continuare all'infinito..
- sito e app fanno un uso pesante di javascript e chissà cos'altro.. sprecano le risorse del pc-telefono inutilmente, questo comporta che spesso il browser o l'app si blocchi. Nei mie sistemi di mia proprieta (pc- telefono) ho il diritto di decidere in che modo un sito remoto (in questo caso il sito rai) possa eseguire codice sulla mia macchina.
I controlli del player web non funzionano su tutti i sistemi.... potrei continuare all'infinito..
- troppa publicità, visto che è un servizio pubblico finanziato dal canone tv. Mi obbligano ad iscrivermi a facebook, per fruire dei contenuti...
- dover "acquistare" pc gaming o un telefono "gaming "per poter ascolatare un podcast è stupido... da indiscrezioni di amici pare che l'hardware citato potrebbe essere insufficente a fruire dei servizi rai!
- utilizzando un raspberry pi, cron, gli script citati e [syncthing](https://syncthing.net/) sincronizzo i podcast scaricati in automatico in tutti i miei dispositivi, risparmiando banda dati mobile quando sono fuori casa perchè l'audio è compresso. Posso ascoltare i podcast con un telefono vecchio di un decennio fa!
- utilizzando un raspberry pi, cron, gli script citati e [syncthing](https://syncthing.net/) (o un altro programma di sincronizzazione concorrente, cloud e non) sincronizzo i podcast scaricati in automatico in tutti i miei dispositivi, risparmiando banda dati mobile quando sono fuori casa perchè l'audio è compresso. Posso ascoltare i podcast con un telefono vecchio di un decennio fa!
- Il poscast così come è codificato spreca troppa banda dati mobile in caso di fruizione da mobile.
- il podcast fruito tramite server raspberry pi, script e synctyng permette un risparmio di banda dati mobile di 5, 6 volte.
### alcune info tecniche
## alcune informazioni tecniche:
### note valide fino alla V:1.0 dello script, valide fino ad settembre 2021
i podcast del gr 1,2,3 sono mp3 stereo con campionamento a 48KhZ e bitrate a 256KBps (alta qualità, file grandi) mediamente per il gr1 dai 20 minuti in su, siamo intorno ai 45 MB o superiore come peso per singolo file...
Ricodificandoli in opus ho file che pesano 12MB circa, qualità audio invariata, su rete mobile quando li sincronizo, risparmio 4 volte la banda dati che normalmente dovrei usare, e non è poco.
Ricodificandoli in opus ho file che pesano 12MB circa, qualità audio invariata, su rete mobile quando li sincronizzo, risparmio 4 volte la banda dati che normalmente dovrei usare, e non è poco.
Per chi volesse nello script è possibile codificare in aac basta commentare o deccommentare le ultime righe del codice.
Si può disabilitare del tutto la codifica commentando con # le righe da 70 a 72
Negli script del GRR regionale il bit rate in mp3 varia da 96 a 128 kbps quindi i file sono relativamente piccoli e negli script non è prevista la ricodifica in opus o aac.
Negli script del GRR regionale il bit rate in mp3 varia da 96 a 128 kbps quindi i file sono relativamente piccoli e negli script per ora, non è prevista la ricodifica in opus o aac dei file.
### note tecniche valide dalla V2.0 dello script, da Dicembre 2021
I podcast principali gr1,2,3 sono ora dei file mp3 stereo con campionamentoa 48KHz e bitrate 320Kbps (in qualche caso sporadico sono a 256Kbps) quindi i file del podcast sono ancora più grandi basti pensare che 10 minuti di podcast sono circa 25MB, l'edizione da circa 22 minuti del gr1 della mattina adesso pesa circa 50-55MB a puntata. Alcune volte tocca anche la soglia dei 60MB.. potete ben capire su connessione mobile quanta banda dati fa sprecare.. Manco fosse un podcast per veri audiofili, per avere tutta questa qualità.
Ovviamete lo script (di defoult v1.0 e v2.0) ricodifica in opus, audio stereo a circa 64kbps vbr mode (bitrate medio di circa 72kbps) con file di circa 10-13 MB.
Per chi volesse, adesso che, il bit-rate sorgente non manca, potrebbe impostare gli script con delle codifiche ancora più incisive per ridurre ancora di più il peso dei file senza rinunciare la qualità audio. Una tecnica semplice è quella di rinunciare all' audio stereofonico per avere delle codifiche ancore più spinte (bitrate più contenuti) ove l'algoritmo di compressione lo supporti. Per questo motivo ho inserito nello script in maniera commentata (#) i comandi ffmpeg per fare ciò, basta attivare quello desiderato, e commentare quello di default.
Li trovate nelle ultime righe dello script se presenti.
## Tipi di codifica opzionali:
Come accennato prima è possibile utilizzare dei formati di codifica opzionali rispetto a quello di default, vediamoli nel dettaglio:
NB: negli esempi **grX** può essere (gr1,gr2,gr_ecc)
### opus
per chi volesse risparmiare ancora più banda di sincronizzazione e avere file ancora più piccoli può usare opus in mono canale con bitrate compresi tra 32-56 Kbps, un buon compromesso tra qualità e dimensione è tra 40-48 Kbps quest'ultima configurazione sarà attivata di defoult negli script che presentano una nomeclatura >= V2.1.1
```
ffmpeg -n -i grX_"$Data"_"$Ora".mp3 -vn -acodec libopus -ab 48k -ac 1 grX_"$Data"_"$Ora".opus
```
### ogg (Vorbis)
per sistemi che non supportano la codifica opus nativa, (tipo melafonino) o vecchi sistemi, vecchi player audio (in vecchi telefoni.. ecc) è possibile qualora supportino il Vorbis (tutti sistemi android) codificare in questo formato. Per mantenere un buon rapporto tra qualità audio e dimensione file ho scelto dopo vari test questa condizione di codifica che reputo ottimale, il file così codificato è in mono, con un bitrate medio di circa 60kbps.
```
ffmpeg -n -i grX_"$Data"_"$Ora".mp3 -vn -acodec libvorbis -aq 0 -ac 1 grX_"$Data"_"$Ora".ogg
```
per utilizzarlo decommentare il codice sopra citato nello script e commentare la codifica di default.
### aac (advance audio codec)
codifica mono canale con bitrate fisso a 64kbps, Utilizando il codificatore aac fatto in casa da ffmpeg vers 3 o superiore (supporta solo lo standard AAC LC (Low Complexity)) questo perchè non sempre il codificatore fdk è presente nel sistema. Questo formato è supportato dai device super costosi con il logo di un frutto. E' supportato in tutti i device android.
```
ffmpeg -n -i grX_"$Data"_"$Ora".mp3 -vn -acodec aac -ab 64k -ac 1 grX_"$Data"_"$Ora".m4a
```
per utilizzarlo decommentare il codice sopra citato nello script e commentare la codifica di default.
### mp3
Per chi non volesse abbandonare il collaudato ma meno performate mp3, il quale funziona persino nei tostapane smart, o nei frullatori, può ricodificare in mp3 con audio mono ad un bitrate più basso (96 kbps mono) rispetto a quello proposto rai. Ance se produrà dei file leggermente più alti rispetto ai codec smart. Questo escamotage permette una qualità audio mono paragonabile a una fruizione stereo di 192kbps in mp3 (visto che l'ultimo qui citato, lo stereo a 192kbps utilizza 96kbps per codificare ogni traccia stereo).. Lo reputo un buon compromesso.
Nota bene : il alcuni player del coso morsicato è presente un bug il quale non supporta il formato mono nell'mp3, non rompete è usate acc.
```
ffmpeg -n -i grX_"$Data"_"$Ora".mp3 -vn -acodec libmp3lame -ab 96k -ac 1 grX_"$Data"_"$Ora".mp3
```
per utilizzarlo decommentare il codice sopra citato nello script e commentare la codifica di default.
## licenze sui formati e codificatori
per questione etica io propongo di utilizzare formati aperti e privi di royality come o**gg(vorbis) o opus**.
Vi ricordo che i brevetti sull'**mp3** sono scaduti nel 2017 (quindi un altra alternativa etica)
**aac** è coperto da svariati brevetti; i produttori di chip, di software, di dispositivi, i consumatori finali ecc.. pagano royality direttamente o indirettamente al consorzio che ne detiene i diritti.
Dal punto di vista etico possibilmente sarebbe da evitare per promuovere servizi liberi, ma visto che direttamente o indirettamente io fruiture finale di un dispositivo, insieme al dispositivo stesso al momento dell'acquisto ho pagato anche le royality di licenza duso per tali formati, quindi: **lo usi**.
Perche tra televisore, decoder, telefono, tostapane, frullatore smart, frigo domotico, citofono con internet delle cose.. ecc.. sti signori hanno fatto di fatto, tanti soldini, anche dai miei soldini visto tutto il materiale tecnologico presente in casa che usa tale tecnologia, e quindi...
***permettetemi di usarlo e di codificare in santa pace!***
---
## Cambio api e app: rainews24, raiplay sound
### Dicembre 2021
l'api è cambiata del tutto, siamo passati da raiplay a raiplaysound, o sistemato momentaneamente gli script con la v2 beta.
### 12 gennaio 2022
l'api legacy di rainews 24 (dove si reperiscono i grr regionali) del sito e dell' app è stata deprecata, da browser non è più possibile avere accesso diretto alla nuova api per mancanza dei permessi, (se teoricamente è fattibile, in pratica è una rogna assurda per le complessità dell'ingegneria inversa da fare su app o sito e sullo script) adesso i dati json dell'api e dei relinker sono integrati nell'html della pagina, volutamente è stato fatto in modo tale, che anche se si estrapolano con un phaser json, il jason non è conforme e non può essere elaborato, infatti buona parte del nuovo javascript dellla pagina e del player multimediale ora hanno delle lunghe funzioni per la rielaborazione dei dati json malformattati apposta, per riformattarli in maniera corretta prima di essere passati al player. Un altro dei tentativi di mamma rai di offuscare i sorgenti del podcast.
Costruire un phaser in bash per recuperare il jason dall'html e riformattarlo non è fattibile per le mie attuali conoscenze, anche perchè le modifiche di mamma rai ultimamente sono all'ordine del giorno, e starci sopra 24 ore al giorno, non è fattibile. In oltre tra regione e regione ci sono chiamate api diverse, come se non bastasse.
NB: alcune funzioni dell' api legacy continuano a funzionare.. (fino a quando?) la parte essenziale dei relinker da errore 404.
Quindi gli script regionali sono momentaneamente in sospeso di manutenzione, finchè non trovo qualcosa di fattibile.
### 12 Febbraio 2022
fix sperimentale errore 404 dell' api legacy, in fase di test nello script grr sardegna, in caso di stabilità, esporto a tempo debito ad altre grr regionali
### Note sulla versione: V2.1 alpha
in questa versione è stato aggiunto lo script **raipodcast-dl** che è uno script generico che serve a scaricare il singolo episodio di un podcast dandoli in pasto (input) il link della pagina html del singolo episodio, funziona bene con gli audio-book di "ad alta voce" sia con le normali puntate di tutti gli altri podcast, utilizza l' api level 2, in caso di bisogno tenta di utilizzare in automatico l'api legacy, per i vecchi podcast, è ancora in fase alpha, quindi non è esente da bug o possibili malfunzionamenti.
```
use: raipodcast-dl [link episode]
```
per fare un esempio pratico del suo uso uso ipotizziamo che voglia scaricare la "rassegna stampa del 16 febbraio 2022", mi reco con il browser allindirizzo: https://www.raiplaysound.it/programmi/radio3mondo e cerco il link di quel episodio, che nel mio caso è
https://www.raiplaysound.it/audio/2022/02/Radio3-Mondo-del-16022022-3347dde9-bba2-403a-9a90-eb6a2b2ffe99.html
per usare lo script do un:
```
raipodcast-dl "https://www.raiplaysound.it/audio/2022/02/Radio3-Mondo-del-16022022-3347dde9-bba2-403a-9a90-eb6a2b2ffe99.html"
```

100
raipodcast-dl Normal file
View File

@ -0,0 +1,100 @@
#!/bin/bash
#
#
####################################################################################
# script che recupera il podcast dei singoli episodi da raiplaisound "link diretto del singolo ep."
#
# V:1.5 alpha_debug_mode 23 Gennaio 2022
#
# dipendenze: curl,jq,cat,wget
#
# uso: raipodcast-dl [link pagina html episodio]
####################################################################################
# set global variable
surce=$1
grbase="https://www.raiplaysound.it"
ag="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/56.0"
# remove old jason data
rm ./data/surce.json
#rm ./data/Lsurce.json
# get jason data
jsurce=`echo $surce | sed -e 's/html/json/g'`
echo "jsurce: " $jsurce
echo " "
curl -A "$ag" "$jsurce" -o data/surce.json
echo " "
echo " "
echo "get data api... done!"
echo " "
# function download data.
function DLnow {
# download podcast
echo " download podcast.. rencode.."
echo " "
wget -d -c -U "$ag" "$Lpodcast" -O $dataT.mp3
}
# extract jason data of the last podcast
datat=`cat ./data/surce.json | jq -r '."downloadable_audio" | ."title"'`
dataT=`echo $datat | sed -e 's/\//\-/g' | sed -e 's/\ /\_/g'`
echo " "
echo "extract data... find.."
echo " "
echo " "
echo podcast_title: $dataT
echo " "
Lpodcast=`cat ./data/surce.json | jq -r '."downloadable_audio" | ."url"'`
echo " "
echo podcast_url: $Lpodcast
echo " "
DLnow
# encode audio data... small file
# ffmpeg -n -i $dataT.mp3 -vn -acodec libopus -ab 48k -ac 1 $dataT.ogg
ffmpeg -n -i $dataT.mp3 -vn -acodec libvorbis -aq 3 -ac 1 $dataT.ogg
rm $dataT.mp3
# ceck if json data is legacy.. workaround fix for audio_book..legacy
if [ "$Lpodcast" = "null" ]; then
datat=`cat ./data/surce.json | jq -r '."audio" | ."title"'`
dataT=`echo $datat | sed -e 's/\//\-/g' | sed -e 's/\ /\_/g'`
echo " "
echo "extract data... find.."
echo " "
echo " "
echo podcast_title_Legacy: $dataT
echo " "
Lpodcast=`cat ./data/surce.json | jq -r '."audio" | ."url"'`
echo " "
echo podcast_url: $Lpodcast
echo " "
DLnow
fi

View File

@ -1 +1 @@
V1.5
V2.2 beta