fix: allow downloads without premium account

This commit is contained in:
Mathis Maquenne
2025-06-16 16:36:14 -04:00
parent ce1690137e
commit 327d55cff5
2 changed files with 8 additions and 3 deletions
+4 -3
View File
@@ -29,6 +29,7 @@ type Session struct {
APIToken string
LicenseToken string
HttpClient *http.Client
Premium bool
}
func Authenticate(ctx context.Context, arlCookie string) (*Session, error) {
@@ -75,14 +76,14 @@ func Authenticate(ctx context.Context, arlCookie string) (*Session, error) {
if res.Results.User.Id == 0 {
return nil, fmt.Errorf("invalid arl cookie")
}
if !res.Results.User.Options.MobileOffline && !res.Results.User.Options.WebOffline {
return nil, fmt.Errorf("premium account required")
}
isPremium := res.Results.User.Options.MobileOffline || res.Results.User.Options.WebOffline
return &Session{
ArlCookie: arlCookie,
APIToken: res.Results.APIToken,
LicenseToken: res.Results.User.Options.LicenseToken,
HttpClient: client,
Premium: isPremium,
}, nil
}
+4
View File
@@ -47,6 +47,10 @@ func (c *Client) Run(ctx context.Context, opts Options, id string) error {
return err
}
if !c.deezerClient.Session.Premium && (opts.Quality == "mp3_320" || opts.Quality == "flac") {
return fmt.Errorf("premium account required for %s quality", opts.Quality)
}
var resource deezer.Resource
switch c.resourceType {
case "album":