nathom / streamrip

A scriptable music downloader for Qobuz, Tidal, SoundCloud, and Deezer
GNU General Public License v3.0
2.73k stars 247 forks source link

[BUG] When downloading an album from Deezer which has tracks unavailable, Streamrip fatal crashes #735

Open dejl opened 2 months ago

dejl commented 2 months ago

Describe the bug

This album has the voice memo tracks unavailable, so it looks like Streamrip will except and fatal exit.. when desired behaviour would be to skip those tracks and alert the user.

https://www.deezer.com/us/album/9007781

I am using Streamrip 2.0.3 as newer versions result in corrupt downloads, even the beta version., when used with deezer.

Command Used

rip -ndb url -vvvv https://deezer.page.link/VE8vptMZGDpxczEF8

Debug Traceback

│                                                                                                  │
│lib/python3.10/site-packages/streamrip/client/d │
│ eezer.py:175 in get_downloadable                                                                 │
│                                                                                                  │
│   172 │   │   │   )                                                                              │
│   173 │   │   except deezer.WrongGeolocation:                                                    │
│   174 │   │   │   if not is_retry:                                                               │
│ ❱ 175 │   │   │   │   return await self.get_downloadable(fallback_id, quality, is_retry=True)    │
│   176 │   │   │   raise NonStreamableError(                                                      │
│   177 │   │   │   │   "The requested track is not available. This may be due to your country/l   │
│   178 │   │   │   )                                                                              │
│                                                                                                  │
│ lib/python3.10/site-packages/streamrip/client/d │
│ eezer.py:141 in get_downloadable                                                                 │
│                                                                                                  │
│   138 │   │   is_retry: bool = False,                                                            │
│   139 │   ) -> DeezerDownloadable:                                                               │
│   140 │   │   if item_id is None:                                                                │
│ ❱ 141 │   │   │   raise NonStreamableError(                                                      │
│   142 │   │   │   │   "No item id provided. This can happen when searching for fallback songs.   │
│   143 │   │   │   )                                                                              │
│   144 │   │   # TODO: optimize such that all of the ids are requested at once

Config File

default, with deezer creds

Operating System

Linux

streamrip version

2.0.3

Screenshots and recordings

No response

Additional context

No response

dejl commented 2 months ago

I manually applied this https://github.com/nathom/streamrip/pull/707/commits/7b28802c979179c4de32e3c0ead79b4d6bd229e9

I believe it is fine now, skipping unavailable.