feat: implement iTunes API for release year detection and bulk refresh

This commit is contained in:
Hördle Bot
2025-11-24 14:23:07 +01:00
parent cd30476349
commit 3309b5c5ee
6 changed files with 242 additions and 10 deletions

View File

@@ -208,16 +208,26 @@ export async function POST(request: Request) {
console.error('Failed to extract cover image:', e);
}
// Fetch release year from MusicBrainz
// Fetch release year (iTunes first, then MusicBrainz)
let releaseYear = null;
try {
const { getReleaseYear } = await import('@/lib/musicbrainz');
releaseYear = await getReleaseYear(artist, title);
// Try iTunes first
const { getReleaseYearFromItunes } = await import('@/lib/itunes');
releaseYear = await getReleaseYearFromItunes(artist, title);
if (releaseYear) {
console.log(`Fetched release year ${releaseYear} for "${title}" by "${artist}"`);
console.log(`Fetched release year ${releaseYear} from iTunes for "${title}" by "${artist}"`);
} else {
// Fallback to MusicBrainz
console.log(`iTunes yielded no year, falling back to MusicBrainz for "${title}" by "${artist}"`);
const { getReleaseYear } = await import('@/lib/musicbrainz');
releaseYear = await getReleaseYear(artist, title);
if (releaseYear) {
console.log(`Fetched release year ${releaseYear} from MusicBrainz for "${title}" by "${artist}"`);
}
}
} catch (e) {
console.error('Failed to fetch release year from MusicBrainz:', e);
console.error('Failed to fetch release year:', e);
}
const song = await prisma.song.create({