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
|
||||
let metadata;
|
||||
let releaseYear: number | null = null;
|
||||
let validationInfo = {
|
||||
isValid: true,
|
||||
hasCover: false,
|
||||
@@ -244,6 +245,11 @@ export async function POST(request: Request) {
|
||||
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
|
||||
validationInfo.hasCover = !!metadata.common.picture?.[0];
|
||||
validationInfo.format = metadata.format.container || 'unknown';
|
||||
@@ -338,18 +344,20 @@ export async function POST(request: Request) {
|
||||
console.error('Failed to extract cover image:', e);
|
||||
}
|
||||
|
||||
// Fetch release year from iTunes
|
||||
let releaseYear = null;
|
||||
// Fetch release year from iTunes only if not already present from tags
|
||||
if (releaseYear == null) {
|
||||
try {
|
||||
const { getReleaseYearFromItunes } = await import('@/lib/itunes');
|
||||
releaseYear = await getReleaseYearFromItunes(artist, title);
|
||||
const fetchedYear = await getReleaseYearFromItunes(artist, title);
|
||||
|
||||
if (releaseYear) {
|
||||
if (fetchedYear) {
|
||||
releaseYear = fetchedYear;
|
||||
console.log(`Fetched release year ${releaseYear} from iTunes for "${title}" by "${artist}"`);
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('Failed to fetch release year:', e);
|
||||
}
|
||||
}
|
||||
|
||||
const song = await prisma.song.create({
|
||||
data: {
|
||||
|
||||
Reference in New Issue
Block a user