From a1d7e3b5601c56f5c75514662fbcc0c4fba5898b Mon Sep 17 00:00:00 2001 From: Mathis Maquenne <124215603+mathismqn@users.noreply.github.com> Date: Wed, 9 Oct 2024 23:32:01 +0200 Subject: [PATCH] feat(media): check if a source exists --- internal/deezer/media.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/deezer/media.go b/internal/deezer/media.go index 74cc841..b8d558d 100644 --- a/internal/deezer/media.go +++ b/internal/deezer/media.go @@ -37,7 +37,17 @@ type Source struct { const ChunkSize = 2048 func (m *Media) Download(path, songID string) error { + if len(m.Data) == 0 || len(m.Data[0].Media) == 0 || len(m.Data[0].Media[0].Sources) == 0 { + return fmt.Errorf("no media sources found") + } + url := m.Data[0].Media[0].Sources[0].URL + for _, source := range m.Data[0].Media[0].Sources { + if source.Provider == "ak" { + url = source.URL + break + } + } resp, err := http.Get(url) if err != nil {