I am trying to get a bunch of covers from the MB API but I keep getting 503 errors and other CORS things:
Does anybody know what my issue is? This is what I’m doing (hacky but it’s the best I can do with last.fm…)
async function getArt(
trackMbid: string,
title: string,
artistMbid: string
): Promise<string | null> {
let res = await fetch(`https://musicbrainz.org/ws/2/recording/${trackMbid}?inc=releases&fmt=json`).catch(() => null);
if (!res || res.status === 503) return null;
if (!res.ok) {
let searchData = await (await fetch(`https://musicbrainz.org/ws/2/recording?query=recording:"${encodeURIComponent(title)}" AND arid:${artistMbid}&fmt=json`)).json();
trackMbid = searchData.recordings?.[0]?.id;
if (!trackMbid) return null;
res = await fetch(`https://musicbrainz.org/ws/2/recording/${trackMbid}?inc=releases&fmt=json`).catch(() => null);
}
if (!res) return null;
let response: Response = res;
let data = await response.json();
return data.releases?.[0]?.id ? `https://coverartarchive.org/release/${data.releases[0].id}/front` : null;
}
Thanks