diff --git a/main.go b/main.go index 12c8624..23b3ec9 100644 --- a/main.go +++ b/main.go @@ -818,15 +818,17 @@ func writeM4a(w *mp4.Writer, info *SongInfo, meta *AutoGenerated, data []byte, t } } - if len(meta.Data[0].Relationships.Tracks.Data[index].Relationships.Artists.Data[0].ID) > 0 { - atID, err := strconv.ParseUint(meta.Data[0].Relationships.Tracks.Data[index].Relationships.Artists.Data[0].ID, 10, 32) - if err != nil { - return err - } + if len(meta.Data[0].Relationships.Tracks.Data[index].Relationships.Artists.Data) > 0 { + if len(meta.Data[0].Relationships.Tracks.Data[index].Relationships.Artists.Data[0].ID) > 0 { + atID, err := strconv.ParseUint(meta.Data[0].Relationships.Tracks.Data[index].Relationships.Artists.Data[0].ID, 10, 32) + if err != nil { + return err + } - err = addMeta(mp4.BoxType{'a', 't', 'I', 'D'}, uint32(atID)) - if err != nil { - return err + err = addMeta(mp4.BoxType{'a', 't', 'I', 'D'}, uint32(atID)) + if err != nil { + return err + } } } trkn := make([]byte, 8) diff --git a/main_select.go b/main_select.go index 8584ad8..82b8321 100644 --- a/main_select.go +++ b/main_select.go @@ -812,16 +812,17 @@ func writeM4a(w *mp4.Writer, info *SongInfo, meta *AutoGenerated, data []byte, t } } } + if len(meta.Data[0].Relationships.Tracks.Data[index].Relationships.Artists.Data) > 0 { + if len(meta.Data[0].Relationships.Tracks.Data[index].Relationships.Artists.Data[0].ID) > 0 { + atID, err := strconv.ParseUint(meta.Data[0].Relationships.Tracks.Data[index].Relationships.Artists.Data[0].ID, 10, 32) + if err != nil { + return err + } - if len(meta.Data[0].Relationships.Tracks.Data[index].Relationships.Artists.Data[0].ID) > 0 { - atID, err := strconv.ParseUint(meta.Data[0].Relationships.Tracks.Data[index].Relationships.Artists.Data[0].ID, 10, 32) - if err != nil { - return err - } - - err = addMeta(mp4.BoxType{'a', 't', 'I', 'D'}, uint32(atID)) - if err != nil { - return err + err = addMeta(mp4.BoxType{'a', 't', 'I', 'D'}, uint32(atID)) + if err != nil { + return err + } } } trkn := make([]byte, 8)