1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| // URLS des sites à contacter
$mbApiUrl = 'https://musicbrainz.org/ws/2/';
$coverArchiveApiUrl = 'https://coverartarchive.org/release/';
// Fonction qui fait la requête et renvoie le résultat
function curl_get_contents($url, $avecInfos = false) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0');
$data = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if ($avecInfos) return ['result' => $data, 'info' => $info];
else return $data;
}
// Fonction qui demande le JSON d'information sur un album
function getMbJson($entity, $id = '', $inc = '', $query = '') {
$mbResult = curl_get_contents($this->mbApiUrl.$entity.(empty($id) ? '' : "/$id")."?fmt=json".(empty($inc) ? '' : "&inc=$inc").(empty($query) ? '' : '&query='.urlencode($query)));
if ($mbResult == false || empty($mbResult)) {
Messages::erreur('La requête à la base de données MusicBrainz n\'a pas aboutie', 'MusicBrainz');
return null;
} else return json_decode($mbResult);
}
// Fonction qui demande les informations sur la pochette
function getCover($releaseId) {
$result = curl_get_contents($this->coverArchiveApiUrl.$releaseId, true);
if ($result['result'] == false || empty($result['result'])) {
Messages::erreur('La requête à la base de données Cover Art Archive n\'a pas aboutie', 'MusicBrainz');
return null;
} else return json_decode($result['result']);
}
// ID de l'album à chercher
$releaseId = '99769b03-eb81-4f6b-ab4e-b5d2fdb0d590';
// Récupérer le JSON de l'album
$album = getMbJson('release', $releaseId, 'recordings+release-groups+labels'); // Ca marche bien, j'ai mes infos en JSON
// Récupérer le JSON de la pochette
$cover = getCover($releaseId); // Ca ne marche pas ! curl_exec() renvoi false. |
Partager