diff --git a/internal/deezer/media.go b/internal/deezer/media.go index 84e4bbb..fae0bbc 100644 --- a/internal/deezer/media.go +++ b/internal/deezer/media.go @@ -17,6 +17,7 @@ type Media struct { Format string `json:"format"` Sources []Source `json:"sources"` } + Errors []MediaError `json:"errors"` } `json:"data"` } diff --git a/internal/deezer/song.go b/internal/deezer/song.go index 7de5805..e4a4782 100644 --- a/internal/deezer/song.go +++ b/internal/deezer/song.go @@ -68,6 +68,13 @@ func (s *Song) GetMediaData(quality string) (*Media, error) { return nil, fmt.Errorf("%s", media.Errors[0].Message) } + if len(media.Data) > 0 && len(media.Data[0].Errors) > 0 { + if media.Data[0].Errors[0].Code == 2002 { + return nil, fmt.Errorf("invalid track token") + } + + return nil, fmt.Errorf("%s", media.Data[0].Errors[0].Message) + } return &media, nil }