Respect MP3 release year when fetching iTunes metadata
This commit is contained in:
@@ -214,6 +214,7 @@ export async function POST(request: Request) {
|
|||||||
|
|
||||||
// Validate and extract metadata from file
|
// Validate and extract metadata from file
|
||||||
let metadata;
|
let metadata;
|
||||||
|
let releaseYear: number | null = null;
|
||||||
let validationInfo = {
|
let validationInfo = {
|
||||||
isValid: true,
|
isValid: true,
|
||||||
hasCover: false,
|
hasCover: false,
|
||||||
@@ -244,6 +245,11 @@ export async function POST(request: Request) {
|
|||||||
artist = metadata.common.albumartist;
|
artist = metadata.common.albumartist;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Try to extract release year from tags (preferred over external APIs)
|
||||||
|
if (typeof metadata.common.year === 'number') {
|
||||||
|
releaseYear = metadata.common.year;
|
||||||
|
}
|
||||||
|
|
||||||
// Validation info
|
// Validation info
|
||||||
validationInfo.hasCover = !!metadata.common.picture?.[0];
|
validationInfo.hasCover = !!metadata.common.picture?.[0];
|
||||||
validationInfo.format = metadata.format.container || 'unknown';
|
validationInfo.format = metadata.format.container || 'unknown';
|
||||||
@@ -338,17 +344,19 @@ export async function POST(request: Request) {
|
|||||||
console.error('Failed to extract cover image:', e);
|
console.error('Failed to extract cover image:', e);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fetch release year from iTunes
|
// Fetch release year from iTunes only if not already present from tags
|
||||||
let releaseYear = null;
|
if (releaseYear == null) {
|
||||||
try {
|
try {
|
||||||
const { getReleaseYearFromItunes } = await import('@/lib/itunes');
|
const { getReleaseYearFromItunes } = await import('@/lib/itunes');
|
||||||
releaseYear = await getReleaseYearFromItunes(artist, title);
|
const fetchedYear = await getReleaseYearFromItunes(artist, title);
|
||||||
|
|
||||||
if (releaseYear) {
|
if (fetchedYear) {
|
||||||
console.log(`Fetched release year ${releaseYear} from iTunes for "${title}" by "${artist}"`);
|
releaseYear = fetchedYear;
|
||||||
|
console.log(`Fetched release year ${releaseYear} from iTunes for "${title}" by "${artist}"`);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error('Failed to fetch release year:', e);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
|
||||||
console.error('Failed to fetch release year:', e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const song = await prisma.song.create({
|
const song = await prisma.song.create({
|
||||||
|
|||||||
Reference in New Issue
Block a user