Bonjour,
Je reviens sur ce post, car comme souvent, Radio France a changé la page web et les scripts précédents ne fonctionne plus! Depuis début Juillet.
La nouvelle adresse pour les metadonnées est:
https://api.radiofrance.fr/livemeta/pull/7
Voici un script python qui affiche le titre/album/artiste en cours + pochette album
A noter que pour une raison que je ne connais pas (encore) il y a 2 bugs ou "petits écarts" (ça semble être du coté de chez Fip)
-lors de l’émission club Jazz à Fip il n'y a plus de données diffusées (ça reste bloqué sur le dernier morceau avant l'émission). Comme sur la page web de Fip!
-l'image diffusée sur la page web de Fip diffère parfois de celle donnée par le lien inclus dans les metadonnées, mais après une dizaine de verif c'est cette dernière qui est bien la bonne!
#!/usr/bin/python3
import subprocess
import json
# subprocess.call("wget --tries=1 --timeout=5 -O metadata.json http://www.fipradio.fr/livemeta/7", shell=True)
subprocess.call("wget --quiet --tries=1 --timeout=5 -O metadata.json https://api.radiofrance.fr/livemeta/pull/7", shell=True)
with open("metadata.json", "r") as read_file:
filedata = json.load(read_file) # file have json data
level = filedata['levels'][-1] # during radio program like "clubjazz a fip" the array "levels" has 2 items
uid = level['items'][level['position']] # otherwise during daytime (normal broadcasting) only 1 item in "levels"
data = filedata['steps'][uid] # The data we want is in the last one. Thanks Python [-1] means the last! :-)
try:
TITRE = u"{title}".format(**data)
except:
TITRE = "Titre=?"
try:
AUTEUR = u"{authors}".format(**data)
k = AUTEUR.find("&") # sometimes author name is followed by others players,here we keep auhor only
if k > 1: # as on fip website. The "&" indicate the following other players
AUTEUR = AUTEUR[:k]
except:
AUTEUR = "Auteur=?"
try:
ANNEE = u"{anneeEditionMusique}".format(**data)
except:
ANNEE = "Annee=?"
try:
ALBUM = u"{titreAlbum}".format(**data)
except:
ALBUM = "Album=?"
try:
url_image = "{visual}".format(**data)
except:
url_image = "" #???
TEXT1 = TITRE.title() # title() puts first letter of each word in uppercase others lowercase
TEXT2 = "Par: " + AUTEUR.title()
TEXT3 = "Album: " + ALBUM.title() + " (" + ANNEE +")"
print(TEXT1, " -- ", TEXT2, " -- ", TEXT3)
subprocess.call("wget --quiet --tries=1 --timeout=5 -O album_cover.jpg '%s'" % url_image, shell=True)
print("Image de la couverture de l'album dans le fichier: album_cover.jpg")
@+
--
Jmp0