diff --git a/main.go b/main.go index 8509bb1..7c2de19 100644 --- a/main.go +++ b/main.go @@ -815,10 +815,6 @@ func rip(albumId string, token string, storefront string, userToken string) erro func writeMP4Tags(trackPath string, meta *structs.AutoGenerated, trackNum, trackTotal int) error { index := trackNum - 1 - artistID, err := strconv.ParseUint(meta.Data[0].Relationships.Tracks.Data[index].Relationships.Artists.Data[0].ID, 10, 32) - if err != nil { - return err - } albumID, err := strconv.ParseUint(meta.Data[0].ID, 10, 32) if err != nil { return err @@ -839,14 +835,21 @@ func writeMP4Tags(trackPath string, meta *structs.AutoGenerated, trackNum, track "LABEL": meta.Data[0].Attributes.RecordLabel, "UPC": meta.Data[0].Attributes.Upc, }, - ItunesAlbumID: int32(albumID), - Composer: meta.Data[0].Relationships.Tracks.Data[index].Attributes.ComposerName, - ComposerSort: meta.Data[0].Relationships.Tracks.Data[index].Attributes.ComposerName, - Date: meta.Data[0].Attributes.ReleaseDate, - CustomGenre: meta.Data[0].Relationships.Tracks.Data[index].Attributes.GenreNames[0], - Copyright: meta.Data[0].Attributes.Copyright, - Publisher: meta.Data[0].Attributes.RecordLabel, - ItunesArtistID: int32(artistID), + ItunesAlbumID: int32(albumID), + Composer: meta.Data[0].Relationships.Tracks.Data[index].Attributes.ComposerName, + ComposerSort: meta.Data[0].Relationships.Tracks.Data[index].Attributes.ComposerName, + Date: meta.Data[0].Attributes.ReleaseDate, + CustomGenre: meta.Data[0].Relationships.Tracks.Data[index].Attributes.GenreNames[0], + Copyright: meta.Data[0].Attributes.Copyright, + Publisher: meta.Data[0].Attributes.RecordLabel, + } + + if len(meta.Data[0].Relationships.Artists.Data) > 0 { + artistID, err := strconv.ParseUint(meta.Data[0].Relationships.Tracks.Data[index].Relationships.Artists.Data[0].ID, 10, 32) + if err != nil { + return err + } + t.ItunesArtistID = int32(artistID) } if strings.Contains(meta.Data[0].ID, "pl.") && !Config.UseSongInfoForPlaylist {