Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Tidal track download JSONDecodeError: #797

Open
morgenstern72 opened this issue Jan 29, 2025 · 6 comments
Open

[BUG] Tidal track download JSONDecodeError: #797

morgenstern72 opened this issue Jan 29, 2025 · 6 comments
Labels
bug Something isn't working

Comments

@morgenstern72
Copy link

Describe the bug

C:\Windows\system32>rip search tidal track "All of me"
Select first entry from list from John Legend

┌─────────────────────────────── Traceback (most recent call last) ────────────────────────────────┐
│ in _run_module_as_main:198                                                                       │
│ in _run_code:88                                                                                  │
│                                                                                                  │
│                                     ... 16 frames hidden ...                                     │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py:337 in decode           │
│                                                                                                  │
│   334 │   │   containing a JSON document).                                                       │
│   335 │   │                                                                                      │
│   336 │   │   """                                                                                │
│ > 337 │   │   obj, end = self.raw_decode(s, idx=_w(s, 0).end())                                  │
│   338 │   │   end = _w(s, end).end()                                                             │
│   339 │   │   if end != len(s):                                                                  │
│   340 │   │   │   raise JSONDecodeError("Extra data", s, end)                                    │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py:355 in raw_decode       │
│                                                                                                  │
│   352 │   │   try:                                                                               │
│   353 │   │   │   obj, end = self.scan_once(s, idx)                                              │
│   354 │   │   except StopIteration as err:                                                       │
│ > 355 │   │   │   raise JSONDecodeError("Expecting value", s, err.value) from None               │
│   356 │   │   return obj, end                                                                    │
│   357                                                                                            │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Most tracks so far could download, but also happens with other tracks.

Command Used

rip search tidal track "All of me"

Debug Traceback

[11:54:49] DEBUG    Executing SELECT EXISTS(SELECT 1 FROM downloads WHERE id=?)                                                                                                                          db.py:108
⠋ Resolving URLs...           DEBUG    {'id': 21977343, 'title': 'All of Me', 'duration': 270, 'replayGain': -9.3, 'peak': 1.0, 'allowStreaming': True, 'streamReady': True, 'adSupportedStreamReady': True, 'djReady':  tidal.py:104
                    True, 'stemReady': False, 'streamStartDate': '2013-08-30T00:00:00.000+0000', 'premiumStreamingOnly': False, 'trackNumber': 6, 'volumeNumber': 1, 'version': None, 'popularity':
                    74, 'copyright': '(P) 2013 Getting Out Our Dreams and Columbia Records, a Division of Sony Music Entertainment', 'bpm': 126, 'url': 'http://www.tidal.com/track/21977343',
                    'isrc': 'USSM11303954', 'editable': False, 'explicit': False, 'audioQuality': 'LOSSLESS', 'audioModes': ['STEREO'], 'mediaMetadata': {'tags': ['LOSSLESS', 'HIRES_LOSSLESS']},
                    'artist': {'id': 490, 'name': 'John Legend', 'type': 'MAIN', 'picture': 'dbf17b28-b207-471a-b97d-34d94a339a41'}, 'artists': [{'id': 490, 'name': 'John Legend', 'type': 'MAIN',
                    'picture': 'dbf17b28-b207-471a-b97d-34d94a339a41'}], 'album': {'id': 21977337, 'title': 'Love In The Future (Expanded Edition)', 'cover': 'f1508275-3f24-4084-99aa-58ac09f5ceeb',
                    'vibrantColor': '#cc5b61', 'videoCover': None}, 'mixes': {'TRACK_MIX': '001fef1c9225987a0d24c67c15315b'}}
⠴ Resolving URLs...           DEBUG    {'trackId': 21977343, 'assetPresentation': 'FULL', 'audioMode': 'STEREO', 'audioQuality': 'HI_RES_LOSSLESS', 'manifestMimeType': 'application/dash+xml', 'manifestHash':          tidal.py:137
                    'f+iBmzVQKij4MFSVr21ZH3aad5nCJRA7+717fV/RpNo=', 'manifest':
                    'PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz48TVBEIHhtbG5zPSJ1cm46bXBlZzpkYXNoOnNjaGVtYTptcGQ6MjAxMSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5j
                    ZSIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zOmNlbmM9InVybjptcGVnOmNlbmM6MjAxMyIgeHNpOnNjaGVtYUxvY2F0aW9uPSJ1cm46bXBlZzpkYXNoOnNjaGVtYTptcGQ6MjAxMSBEQVNIL
                    U1QRC54c2QiIHByb2ZpbGVzPSJ1cm46bXBlZzpkYXNoOnByb2ZpbGU6aXNvZmYtbWFpbjoyMDExIiB0eXBlPSJzdGF0aWMiIG1pbkJ1ZmZlclRpbWU9IlBUMy45OTNTIiBtZWRpYVByZXNlbnRhdGlvbkR1cmF0aW9uPSJQVDRNMjkuNT
                    U2UyI+PFBlcmlvZCBpZD0iMCI+PEFkYXB0YXRpb25TZXQgaWQ9IjAiIGNvbnRlbnRUeXBlPSJhdWRpbyIgbWltZVR5cGU9ImF1ZGlvL21wNCIgc2VnbWVudEFsaWdubWVudD0idHJ1ZSI+PFJlcHJlc2VudGF0aW9uIGlkPSIwIiBjb2R
                    lY3M9ImZsYWMiIGJhbmR3aWR0aD0iMTUxMDQzMSIgYXVkaW9TYW1wbGluZ1JhdGU9IjQ0MTAwIj48U2VnbWVudFRlbXBsYXRlIHRpbWVzY2FsZT0iNDQxMDAiIGluaXRpYWxpemF0aW9uPSJodHRwczovL3NwLWFkLWZhLmF1ZGlvLnRp
                    ZGFsLmNvbS9tZWRpYXRyYWNrcy9HaXNJQXhJbk1qQTJaRFZrTVdNek1EWTROakF5TXpSaFlXRTJaalpqTkRnMU1UazBZbVpmTmpJdWJYQTBJaUFkQUFDQVFDQUNLaEFVaDBRdzhjTkhDZEhhdUhFUElQdlhNZ1VOQUFDZ1FRLzAubXA0P
                    3Rva2VuPTE3MzgxNTE2ODl+TDIxbFpHbGhkSEpoWTJ0ekwwZHBjMGxCZUVsdVRXcEJNbHBFVm10TlYwMTZUVVJaTkU1cVFYbE5lbEpvV1ZkRk1scHFXbXBPUkdjeFRWUnJNRmx0V21aT2FrbDFZbGhCTUVscFFXUkJRVU5CVVVOQlEwdG
                    9RVlZvTUZGM09HTk9TRU5rU0dGMVNFVlFTVkIyV0UxblZVNUJRVU5uVVZFdktuNDNZVFF4WmpkaE1HRmtOakEwWWpnek9EQmlNamhsWmpVeU1qazBOelUzTkdJM01UZ3lZakpqIiBtZWRpYT0iaHR0cHM6Ly9zcC1hZC1mYS5hdWRpby5
                    0aWRhbC5jb20vbWVkaWF0cmFja3MvR2lzSUF4SW5NakEyWkRWa01XTXpNRFk0TmpBeU16UmhZV0UyWmpaak5EZzFNVGswWW1aZk5qSXViWEEwSWlBZEFBQ0FRQ0FDS2hBVWgwUXc4Y05IQ2RIYXVIRVBJUHZYTWdVTkFBQ2dRUS8kTnVt
                    YmVyJC5tcDQ/dG9rZW49MTczODE1MTY4OX5MMjFsWkdsaGRISmhZMnR6TDBkcGMwbEJlRWx1VFdwQk1scEVWbXROVjAxNlRVUlpORTVxUVhsTmVsSm9XVmRGTWxwcVdtcE9SR2N4VFZSck1GbHRXbVpPYWtsMVlsaEJNRWxwUVdSQlFVT
                    kJVVU5CUTB0b1FWVm9NRkYzT0dOT1NFTmtTR0YxU0VWUVNWQjJXRTFuVlU1QlFVTm5VVkV2S240M1lUUXhaamRoTUdGa05qQTBZamd6T0RCaU1qaGxaalV5TWprME56VTNOR0kzTVRneVlqSmoiIHN0YXJ0TnVtYmVyPSIxIj48U2VnbW
                    VudFRpbWVsaW5lPjxTIGQ9IjE3NjEyOCIgcj0iNjYiLz48UyBkPSI4Njg4NiIvPjwvU2VnbWVudFRpbWVsaW5lPjwvU2VnbWVudFRlbXBsYXRlPjwvUmVwcmVzZW50YXRpb24+PC9BZGFwdGF0aW9uU2V0PjwvUGVyaW9kPjwvTVBEPg=
                    =', 'albumReplayGain': -9.3, 'albumPeakAmplitude': 1.0, 'trackReplayGain': -8.71, 'trackPeakAmplitude': 1.0, 'bitDepth': 24, 'sampleRate': 44100}
[11:54:50] DEBUG    Removing dirs {'D:\\Filebot\\streamrip\\downloads\\__artwork'}                                                                                                                   artwork.py:19
┌─────────────────────────────── Traceback (most recent call last) ────────────────────────────────┐
│ in _run_module_as_main:198                                                                       │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │   alter_argv = False                                                                         │ │
│ │         code = <code object <module> at 0x000002AB27886140, file                             │ │
│ │                "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\__main… │ │
│ │                line 1>                                                                       │ │
│ │ main_globals = {                                                                             │ │
│ │                │   '__name__': '__main__',                                                   │ │
│ │                │   '__doc__': None,                                                          │ │
│ │                │   '__package__': '',                                                        │ │
│ │                │   '__loader__': <zipimporter object                                         │ │
│ │                "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\">,     │ │
│ │                │   '__spec__': ModuleSpec(name='__main__', loader=<zipimporter object        │ │
│ │                "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\">,     │ │
│ │                origin='C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts… │ │
│ │                │   '__annotations__': {},                                                    │ │
│ │                │   '__builtins__': <module 'builtins' (built-in)>,                           │ │
│ │                │   '__file__':                                                               │ │
│ │                'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\rip.e… │ │
│ │                │   '__cached__':                                                             │ │
│ │                'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\rip.e… │ │
│ │                │   're': <module 're' from                                                   │ │
│ │                'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\re\\__ini… │ │
│ │                │   ... +2                                                                    │ │
│ │                }                                                                             │ │
│ │     mod_name = '__main__'                                                                    │ │
│ │     mod_spec = ModuleSpec(name='__main__', loader=<zipimporter object                        │ │
│ │                "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\">,     │ │
│ │                origin='C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts… │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│ in _run_code:88                                                                                  │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │       cached = 'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\rip.e… │ │
│ │         code = <code object <module> at 0x000002AB27886140, file                             │ │
│ │                "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\__main… │ │
│ │                line 1>                                                                       │ │
│ │        fname = 'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\rip.e… │ │
│ │ init_globals = None                                                                          │ │
│ │       loader = <zipimporter object                                                           │ │
│ │                "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\">      │ │
│ │     mod_name = '__main__'                                                                    │ │
│ │     mod_spec = ModuleSpec(name='__main__', loader=<zipimporter object                        │ │
│ │                "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\">,     │ │
│ │                origin='C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts… │ │
│ │     pkg_name = ''                                                                            │ │
│ │  run_globals = {                                                                             │ │
│ │                │   '__name__': '__main__',                                                   │ │
│ │                │   '__doc__': None,                                                          │ │
│ │                │   '__package__': '',                                                        │ │
│ │                │   '__loader__': <zipimporter object                                         │ │
│ │                "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\">,     │ │
│ │                │   '__spec__': ModuleSpec(name='__main__', loader=<zipimporter object        │ │
│ │                "C:\Users\trj\AppData\Local\Programs\Python\Python311\Scripts\rip.exe\">,     │ │
│ │                origin='C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts… │ │
│ │                │   '__annotations__': {},                                                    │ │
│ │                │   '__builtins__': <module 'builtins' (built-in)>,                           │ │
│ │                │   '__file__':                                                               │ │
│ │                'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\rip.e… │ │
│ │                │   '__cached__':                                                             │ │
│ │                'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\rip.e… │ │
│ │                │   're': <module 're' from                                                   │ │
│ │                'C:\\Users\\trj\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\re\\__ini… │ │
│ │                │   ... +2                                                                    │ │
│ │                }                                                                             │ │
│ │  script_name = None                                                                          │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│                                                                                                  │
│ in <module>:7                                                                                    │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py:1161 in     │
│ __call__                                                                                         │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py:1082 in     │
│ main                                                                                             │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py:1697 in     │
│ invoke                                                                                           │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py:1443 in     │
│ invoke                                                                                           │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py:788 in      │
│ invoke                                                                                           │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\decorators.py:33 in │
│ new_func                                                                                         │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\streamrip\rip\cli.py:28   │
│ in wrapper                                                                                       │
│                                                                                                  │
│    25 def coro(f):                                                                               │
│    26 │   @wraps(f)                                                                              │
│    27 │   def wrapper(*args, **kwargs):                                                          │
│ >  28 │   │   return asyncio.run(f(*args, **kwargs))                                             │
│    29 │                                                                                          │
│    30 │   return wrapper                                                                         │
│    31                                                                                            │
│                                                                                                  │
│ ┌─────────────────────────── locals ────────────────────────────┐                                │
│ │   args = (<click.core.Context object at 0x000002AB27DA6410>,) │                                │
│ │ kwargs = {                                                    │                                │
│ │          │   'source': 'tidal',                               │                                │
│ │          │   'media_type': 'track',                           │                                │
│ │          │   'query': 'All of me',                            │                                │
│ │          │   'first': False,                                  │                                │
│ │          │   'output_file': None,                             │                                │
│ │          │   'num_results': 100                               │                                │
│ │          }                                                    │                                │
│ └───────────────────────────────────────────────────────────────┘                                │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\asyncio\runners.py:190 in run           │
│                                                                                                  │
│   187 │   │   │   "asyncio.run() cannot be called from a running event loop")                    │
│   188 │                                                                                          │
│   189 │   with Runner(debug=debug) as runner:                                                    │
│ > 190 │   │   return runner.run(main)                                                            │
│   191                                                                                            │
│   192                                                                                            │
│   193 def _cancel_all_tasks(loop):                                                               │
│                                                                                                  │
│ ┌──────────────────────────── locals ────────────────────────────┐                               │
│ │  debug = None                                                  │                               │
│ │   main = <coroutine object search at 0x000002AB2A217880>       │                               │
│ │ runner = <asyncio.runners.Runner object at 0x000002AB2A67BC90> │                               │
│ └────────────────────────────────────────────────────────────────┘                               │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\asyncio\runners.py:118 in run           │
│                                                                                                  │
│   115 │   │                                                                                      │
│   116 │   │   self._interrupt_count = 0                                                          │
│   117 │   │   try:                                                                               │
│ > 118 │   │   │   return self._loop.run_until_complete(task)                                     │
│   119 │   │   except exceptions.CancelledError:                                                  │
│   120 │   │   │   if self._interrupt_count > 0:                                                  │
│   121 │   │   │   │   uncancel = getattr(task, "uncancel", None)                                 │
│                                                                                                  │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │        context = <_contextvars.Context object at 0x000002AB2A67A500>                         │ │
│ │           coro = <coroutine object search at 0x000002AB2A217880>                             │ │
│ │           self = <asyncio.runners.Runner object at 0x000002AB2A67BC90>                       │ │
│ │ sigint_handler = functools.partial(<bound method Runner._on_sigint of                        │ │
│ │                  <asyncio.runners.Runner object at 0x000002AB2A67BC90>>, main_task=<Task     │ │
│ │                  finished name='Task-1' coro=<search() done, defined at                      │ │
│ │                  C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\str… │ │
│ │                  exception=JSONDecodeError('Expecting value: line 1 column 1 (char 0)')>)    │ │
│ │           task = <Task finished name='Task-1' coro=<search() done, defined at                │ │
│ │                  C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\str… │ │
│ │                  exception=JSONDecodeError('Expecting value: line 1 column 1 (char 0)')>     │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\asyncio\base_events.py:654 in           │
│ run_until_complete                                                                               │
│                                                                                                  │
│    651 │   │   if not future.done():                                                             │
│    652 │   │   │   raise RuntimeError('Event loop stopped before Future completed.')             │
│    653 │   │                                                                                     │
│ >  654 │   │   return future.result()                                                            │
│    655 │                                                                                         │
│    656 │   def stop(self):                                                                       │
│    657 │   │   """Stop running the event loop.                                                   │
│                                                                                                  │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │   future = <Task finished name='Task-1' coro=<search() done, defined at                      │ │
│ │            C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\streamrip… │ │
│ │            exception=JSONDecodeError('Expecting value: line 1 column 1 (char 0)')>           │ │
│ │ new_task = False                                                                             │ │
│ │     self = <ProactorEventLoop running=False closed=True debug=False>                         │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\streamrip\rip\cli.py:372  │
│ in search                                                                                        │
│                                                                                                  │
│   369 │   │   │   │   )                                                                          │
│   370 │   │   │   else:                                                                          │
│   371 │   │   │   │   await main.search_interactive(source, media_type, query)                   │
│ > 372 │   │   │   await main.resolve()                                                           │
│   373 │   │   │   await main.rip()                                                               │
│   374                                                                                            │
│   375                                                                                            │
│                                                                                                  │
│ ┌─────────────────────────────── locals ───────────────────────────────┐                         │
│ │         cfg = <streamrip.config.Config object at 0x000002AB29BE6710> │                         │
│ │         ctx = <click.core.Context object at 0x000002AB27DA6410>      │                         │
│ │       first = False                                                  │                         │
│ │        main = <streamrip.rip.main.Main object at 0x000002AB2A679A10> │                         │
│ │  media_type = 'track'                                                │                         │
│ │ num_results = 100                                                    │                         │
│ │ output_file = None                                                   │                         │
│ │       query = 'All of me'                                            │                         │
│ │      source = 'tidal'                                                │                         │
│ └──────────────────────────────────────────────────────────────────────┘                         │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\streamrip\rip\main.py:157 │
│ in resolve                                                                                       │
│                                                                                                  │
│   154 │   │   with console.status("Resolving URLs...", spinner="dots"):                          │
│   155 │   │   │   coros = [p.resolve() for p in self.pending]                                    │
│   156 │   │   │   new_media: list[Media] = [                                                     │
│ > 157 │   │   │   │   m for m in await asyncio.gather(*coros) if m is not None                   │
│   158 │   │   │   ]                                                                              │
│   159 │   │                                                                                      │
│   160 │   │   self.media.extend(new_media)                                                       │
│                                                                                                  │
│ ┌───────────────────────────────── locals ─────────────────────────────────┐                     │
│ │ coros = [<coroutine object PendingSingle.resolve at 0x000002AB2A342260>] │                     │
│ │  self = <streamrip.rip.main.Main object at 0x000002AB2A679A10>           │                     │
│ └──────────────────────────────────────────────────────────────────────────┘                     │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\streamrip\media\track.py: │
│ 185 in resolve                                                                                   │
│                                                                                                  │
│   182 │   │                                                                                      │
│   183 │   │   os.makedirs(folder, exist_ok=True)                                                 │
│   184 │   │                                                                                      │
│ > 185 │   │   embedded_cover_path, downloadable = await asyncio.gather(                          │
│   186 │   │   │   self._download_cover(album.covers, folder),                                    │
│   187 │   │   │   self.client.get_downloadable(self.id, quality),                                │
│   188 │   │   )                                                                                  │
│                                                                                                  │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │   album = AlbumMetadata(                                                                     │ │
│ │           │   info=AlbumInfo(                                                                │ │
│ │           │   │   id='21977343',                                                             │ │
│ │           │   │   quality=2,                                                                 │ │
│ │           │   │   container='MP4',                                                           │ │
│ │           │   │   label=None,                                                                │ │
│ │           │   │   explicit=False,                                                            │ │
│ │           │   │   sampling_rate=44100,                                                       │ │
│ │           │   │   bit_depth=16,                                                              │ │
│ │           │   │   booklets=None                                                              │ │
│ │           │   ),                                                                             │ │
│ │           │   album='Love In The Future (Expanded Edition)',                                 │ │
│ │           │   albumartist='John Legend',                                                     │ │
│ │           │   year='2013',                                                                   │ │
│ │           │   genre=[],                                                                      │ │
│ │           │   covers=Covers(('original',                                                     │ │
│ │           'https://resources.tidal.com/images/f1508275/3f24/4084/99aa/58ac09f5ceeb/1280x128… │ │
│ │           'D:\\Filebot\\streamrip\\downloads\\cover.jpg')                                    │ │
│ │           ('large',                                                                          │ │
│ │           'https://resources.tidal.com/images/f1508275/3f24/4084/99aa/58ac09f5ceeb/640x640.… │ │
│ │           'D:\\Filebot\\streamrip\\downloads\\__artwork\\cover-4880630190446832370.jpg')     │ │
│ │           ('small',                                                                          │ │
│ │           'https://resources.tidal.com/images/f1508275/3f24/4084/99aa/58ac09f5ceeb/320x320.… │ │
│ │           None)                                                                              │ │
│ │           ('thumbnail',                                                                      │ │
│ │           'https://resources.tidal.com/images/f1508275/3f24/4084/99aa/58ac09f5ceeb/160x160.… │ │
│ │           None)),                                                                            │ │
│ │           │   tracktotal=1,                                                                  │ │
│ │           │   disctotal=1,                                                                   │ │
│ │           │   albumcomposer=None,                                                            │ │
│ │           │   comment=None,                                                                  │ │
│ │           │   compilation=None,                                                              │ │
│ │           │   copyright='(P) 2013 Getting Out Our Dreams and Columbia Records, a Division of │ │
│ │           Sony Music E'+12,                                                                  │ │
│ │           │   date='2013-08-30T00:00:00.000+0000',                                           │ │
│ │           │   description=None,                                                              │ │
│ │           │   encoder=None,                                                                  │ │
│ │           │   grouping=None,                                                                 │ │
│ │           │   lyrics=None,                                                                   │ │
│ │           │   purchase_date=None                                                             │ │
│ │           )                                                                                  │ │
│ │  config = ConfigData(                                                                        │ │
│ │           │   toml={'downloads': {'folder': 'D:\\Filebot\\streamrip\\downloads',             │ │
│ │           'source_subdirectories': False, 'concurrency': True, 'max_connections': 6,         │ │
│ │           'requests_per_minute': 60}, 'qobuz': {'quality': 3, 'download_booklets': False,    │ │
│ │           'use_auth_token': False, 'email_or_userid': '', 'password_or_token': '', 'app_id': │ │
│ │           '', 'secrets': []}, 'tidal': {'quality': 3, 'download_videos': False, 'user_id':   │ │
│ │           169818634, 'country_code': 'AT', 'access_token':                                   │ │
│ │           'eyJraWQiOiJ2OU1GbFhqWSIsImFsZyI6IkVTMjU2In0.eyJ0eXBlIjoibzJfYWNjZXNzIiwidWlkIjox… │ │
│ │           'refresh_token':                                                                   │ │
│ │           'eyJraWQiOiJoUzFKYTdVMCIsImFsZyI6IkVTNTEyIn0.eyJ0eXBlIjoibzJfcmVmcmVzaCIsInVpZCI6… │ │
│ │           'token_expiry': 1738501308.7026207}, 'deezer': {'quality': 2, 'arl': '',           │ │
│ │           'use_deezloader': True, 'deezloader_warnings': True}, 'soundcloud': {'quality': 0, │ │
│ │           'client_id': '', 'app_version': ''}, 'youtube': {'quality': 0, 'download_videos':  │ │
│ │           False, 'video_downloads_folder':                                                   │ │
│ │           'C:\\Users\\trj\\StreamripDownloads\\YouTubeVideos'}, 'database':                  │ │
│ │           {'downloads_enabled': True, 'downloads_path':                                      │ │
│ │           'C:\\Users\\trj\\AppData\\Roaming\\streamrip\\downloads.db',                       │ │
│ │           'failed_downloads_enabled': True, 'failed_downloads_path':                         │ │
│ │           'C:\\Users\\trj\\AppData\\Roaming\\streamrip\\failed_downloads.db'}, 'conversion': │ │
│ │           {'enabled': False, 'codec': 'ALAC', 'sampling_rate': 48000, 'bit_depth': 24,       │ │
│ │           'lossy_bitrate': 320}, 'qobuz_filters': {'extras': False, 'repeats': False,        │ │
│ │           'non_albums': False, 'features': False, 'non_studio_albums': False,                │ │
│ │           'non_remaster': False}, 'artwork': {'embed': True, 'embed_size': 'large',          │ │
│ │           'embed_max_width': -1, 'save_artwork': True, 'saved_max_width': -1}, 'metadata':   │ │
│ │           {'set_playlist_to_album': True, 'renumber_playlist_tracks': True, 'exclude': []},  │ │
│ │           'filepaths': {'add_singles_to_folder': False, 'folder_format': '{albumartist} -    │ │
│ │           {title} ({year}) [{container}] [{bit_depth}B-{sampling_rate}kHz]', 'track_format': │ │
│ │           '{tracknumber:02}. {artist} - {title}{explicit}', 'restrict_characters': False,    │ │
│ │           'truncate_to': 120}, 'lastfm': {'source': 'qobuz', 'fallback_source': ''}, 'cli':  │ │
│ │           {'text_output': True, 'progress_bars': True, 'max_search_results': 100}, 'misc':   │ │
│ │           {'version': '2.0.3', 'check_for_updates': True}},                                  │ │
│ │           │   downloads=DownloadsConfig(                                                     │ │
│ │           │   │   folder='D:\\Filebot\\streamrip\\downloads',                                │ │
│ │           │   │   source_subdirectories=False,                                               │ │
│ │           │   │   concurrency=True,                                                          │ │
│ │           │   │   max_connections=6,                                                         │ │
│ │           │   │   requests_per_minute=60                                                     │ │
│ │           │   ),                                                                             │ │
│ │           │   qobuz=QobuzConfig(                                                             │ │
│ │           │   │   use_auth_token=False,                                                      │ │
│ │           │   │   email_or_userid='',                                                        │ │
│ │           │   │   password_or_token='',                                                      │ │
│ │           │   │   app_id='',                                                                 │ │
│ │           │   │   quality=3,                                                                 │ │
│ │           │   │   download_booklets=False,                                                   │ │
│ │           │   │   secrets=[]                                                                 │ │
│ │           │   ),                                                                             │ │
│ │           │   tidal=TidalConfig(                                                             │ │
│ │           │   │   user_id=169818634,                                                         │ │
│ │           │   │   country_code='AT',                                                         │ │
│ │           │   │                                                                              │ │
│ │           access_token='eyJraWQiOiJ2OU1GbFhqWSIsImFsZyI6IkVTMjU2In0.eyJ0eXBlIjoibzJfYWNjZXN… │ │
│ │           │   │                                                                              │ │
│ │           refresh_token='eyJraWQiOiJoUzFKYTdVMCIsImFsZyI6IkVTNTEyIn0.eyJ0eXBlIjoibzJfcmVmcm… │ │
│ │           │   │   token_expiry=1738501308.7026207,                                           │ │
│ │           │   │   quality=3,                                                                 │ │
│ │           │   │   download_videos=False                                                      │ │
│ │           │   ),                                                                             │ │
│ │           │   deezer=DeezerConfig(                                                           │ │
│ │           │   │   arl='',                                                                    │ │
│ │           │   │   quality=2,                                                                 │ │
│ │           │   │   use_deezloader=True,                                                       │ │
│ │           │   │   deezloader_warnings=True                                                   │ │
│ │           │   ),                                                                             │ │
│ │           │   soundcloud=SoundcloudConfig(client_id='', app_version='', quality=0),          │ │
│ │           │   youtube=YoutubeConfig(                                                         │ │
│ │           │   │                                                                              │ │
│ │           video_downloads_folder='C:\\Users\\trj\\StreamripDownloads\\YouTubeVideos',        │ │
│ │           │   │   quality=0,                                                                 │ │
│ │           │   │   download_videos=False                                                      │ │
│ │           │   ),                                                                             │ │
│ │           │   lastfm=LastFmConfig(source='qobuz', fallback_source=''),                       │ │
│ │           │   filepaths=FilepathsConfig(                                                     │ │
│ │           │   │   add_singles_to_folder=False,                                               │ │
│ │           │   │   folder_format='{albumartist} - {title} ({year}) [{container}]              │ │
│ │           [{bit_depth}B-{sampling_rate}kHz]',                                                │ │
│ │           │   │   track_format='{tracknumber:02}. {artist} - {title}{explicit}',             │ │
│ │           │   │   restrict_characters=False,                                                 │ │
│ │           │   │   truncate_to=120                                                            │ │
│ │           │   ),                                                                             │ │
│ │           │   artwork=ArtworkConfig(                                                         │ │
│ │           │   │   embed=True,                                                                │ │
│ │           │   │   embed_size='large',                                                        │ │
│ │           │   │   embed_max_width=-1,                                                        │ │
│ │           │   │   save_artwork=True,                                                         │ │
│ │           │   │   saved_max_width=-1                                                         │ │
│ │           │   ),                                                                             │ │
│ │           │   metadata=MetadataConfig(                                                       │ │
│ │           │   │   set_playlist_to_album=True,                                                │ │
│ │           │   │   renumber_playlist_tracks=True,                                             │ │
│ │           │   │   exclude=[]                                                                 │ │
│ │           │   ),                                                                             │ │
│ │           │   qobuz_filters=QobuzDiscographyFilterConfig(                                    │ │
│ │           │   │   extras=False,                                                              │ │
│ │           │   │   repeats=False,                                                             │ │
│ │           │   │   non_albums=False,                                                          │ │
│ │           │   │   features=False,                                                            │ │
│ │           │   │   non_studio_albums=False,                                                   │ │
│ │           │   │   non_remaster=False                                                         │ │
│ │           │   ),                                                                             │ │
│ │           │   cli=CliConfig(text_output=True, progress_bars=True, max_search_results=100),   │ │
│ │           │   database=DatabaseConfig(                                                       │ │
│ │           │   │   downloads_enabled=True,                                                    │ │
│ │           │   │                                                                              │ │
│ │           downloads_path='C:\\Users\\trj\\AppData\\Roaming\\streamrip\\downloads.db',        │ │
│ │           │   │   failed_downloads_enabled=True,                                             │ │
│ │           │   │                                                                              │ │
│ │           failed_downloads_path='C:\\Users\\trj\\AppData\\Roaming\\streamrip\\failed_downlo… │ │
│ │           │   ),                                                                             │ │
│ │           │   conversion=ConversionConfig(                                                   │ │
│ │           │   │   enabled=False,                                                             │ │
│ │           │   │   codec='ALAC',                                                              │ │
│ │           │   │   sampling_rate=48000,                                                       │ │
│ │           │   │   bit_depth=24,                                                              │ │
│ │           │   │   lossy_bitrate=320                                                          │ │
│ │           │   ),                                                                             │ │
│ │           │   misc=MiscConfig(version='2.0.3', check_for_updates=True),                      │ │
│ │           │   _modified=False                                                                │ │
│ │           )                                                                                  │ │
│ │  folder = 'D:\\Filebot\\streamrip\\downloads'                                                │ │
│ │    meta = TrackMetadata(                                                                     │ │
│ │           │   info=TrackInfo(                                                                │ │
│ │           │   │   id='21977343',                                                             │ │
│ │           │   │   quality=2,                                                                 │ │
│ │           │   │   bit_depth=16,                                                              │ │
│ │           │   │   explicit=False,                                                            │ │
│ │           │   │   sampling_rate=44100,                                                       │ │
│ │           │   │   work=None                                                                  │ │
│ │           │   ),                                                                             │ │
│ │           │   title='All of Me',                                                             │ │
│ │           │   album=AlbumMetadata(                                                           │ │
│ │           │   │   info=AlbumInfo(                                                            │ │
│ │           │   │   │   id='21977343',                                                         │ │
│ │           │   │   │   quality=2,                                                             │ │
│ │           │   │   │   container='MP4',                                                       │ │
│ │           │   │   │   label=None,                                                            │ │
│ │           │   │   │   explicit=False,                                                        │ │
│ │           │   │   │   sampling_rate=44100,                                                   │ │
│ │           │   │   │   bit_depth=16,                                                          │ │
│ │           │   │   │   booklets=None                                                          │ │
│ │           │   │   ),                                                                         │ │
│ │           │   │   album='Love In The Future (Expanded Edition)',                             │ │
│ │           │   │   albumartist='John Legend',                                                 │ │
│ │           │   │   year='2013',                                                               │ │
│ │           │   │   genre=[],                                                                  │ │
│ │           │   │   covers=Covers(('original',                                                 │ │
│ │           'https://resources.tidal.com/images/f1508275/3f24/4084/99aa/58ac09f5ceeb/1280x128… │ │
│ │           'D:\\Filebot\\streamrip\\downloads\\cover.jpg')                                    │ │
│ │           ('large',                                                                          │ │
│ │           'https://resources.tidal.com/images/f1508275/3f24/4084/99aa/58ac09f5ceeb/640x640.… │ │
│ │           'D:\\Filebot\\streamrip\\downloads\\__artwork\\cover-4880630190446832370.jpg')     │ │
│ │           ('small',                                                                          │ │
│ │           'https://resources.tidal.com/images/f1508275/3f24/4084/99aa/58ac09f5ceeb/320x320.… │ │
│ │           None)                                                                              │ │
│ │           ('thumbnail',                                                                      │ │
│ │           'https://resources.tidal.com/images/f1508275/3f24/4084/99aa/58ac09f5ceeb/160x160.… │ │
│ │           None)),                                                                            │ │
│ │           │   │   tracktotal=1,                                                              │ │
│ │           │   │   disctotal=1,                                                               │ │
│ │           │   │   albumcomposer=None,                                                        │ │
│ │           │   │   comment=None,                                                              │ │
│ │           │   │   compilation=None,                                                          │ │
│ │           │   │   copyright='(P) 2013 Getting Out Our Dreams and Columbia Records, a         │ │
│ │           Division of Sony Music E'+12,                                                      │ │
│ │           │   │   date='2013-08-30T00:00:00.000+0000',                                       │ │
│ │           │   │   description=None,                                                          │ │
│ │           │   │   encoder=None,                                                              │ │
│ │           │   │   grouping=None,                                                             │ │
│ │           │   │   lyrics=None,                                                               │ │
│ │           │   │   purchase_date=None                                                         │ │
│ │           │   ),                                                                             │ │
│ │           │   artist='John Legend',                                                          │ │
│ │           │   tracknumber=6,                                                                 │ │
│ │           │   discnumber=1,                                                                  │ │
│ │           │   composer=None,                                                                 │ │
│ │           │   isrc='USSM11303954'                                                            │ │
│ │           )                                                                                  │ │
│ │  parent = 'D:\\Filebot\\streamrip\\downloads'                                                │ │
│ │ quality = 3                                                                                  │ │
│ │    resp = {                                                                                  │ │
│ │           │   'id': 21977343,                                                                │ │
│ │           │   'title': 'All of Me',                                                          │ │
│ │           │   'duration': 270,                                                               │ │
│ │           │   'replayGain': -9.3,                                                            │ │
│ │           │   'peak': 1.0,                                                                   │ │
│ │           │   'allowStreaming': True,                                                        │ │
│ │           │   'streamReady': True,                                                           │ │
│ │           │   'adSupportedStreamReady': True,                                                │ │
│ │           │   'djReady': True,                                                               │ │
│ │           │   'stemReady': False,                                                            │ │
│ │           │   ... +19                                                                        │ │
│ │           }                                                                                  │ │
│ │    self = PendingSingle(                                                                     │ │
│ │           │   id='21977343',                                                                 │ │
│ │           │   client=<streamrip.client.tidal.TidalClient object at 0x000002AB2A6794D0>,      │ │
│ │           │   config=<streamrip.config.Config object at 0x000002AB29BE6710>,                 │ │
│ │           │   db=Database(                                                                   │ │
│ │           │   │   downloads=<streamrip.db.Downloads object at 0x000002AB2A5D4A50>,           │ │
│ │           │   │   failed=<streamrip.db.Failed object at 0x000002AB2A5D4910>                  │ │
│ │           │   )                                                                              │ │
│ │           )                                                                                  │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\site-packages\streamrip\client\tidal.py │
│ :139 in get_downloadable                                                                         │
│                                                                                                  │
│   136 │   │   )                                                                                  │
│   137 │   │   logger.debug(resp)                                                                 │
│   138 │   │   try:                                                                               │
│ > 139 │   │   │   manifest = json.loads(base64.b64decode(resp["manifest"]).decode("utf-8"))      │
│   140 │   │   except KeyError:                                                                   │
│   141 │   │   │   raise Exception(resp["userMessage"])                                           │
│   142                                                                                            │
│                                                                                                  │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │   params = {                                                                                 │ │
│ │            │   'audioquality': 'HI_RES',                                                     │ │
│ │            │   'playbackmode': 'STREAM',                                                     │ │
│ │            │   'assetpresentation': 'FULL',                                                  │ │
│ │            │   'countryCode': 'AT',                                                          │ │
│ │            │   'limit': 100                                                                  │ │
│ │            }                                                                                 │ │
│ │  quality = 3                                                                                 │ │
│ │     resp = {                                                                                 │ │
│ │            │   'trackId': 21977343,                                                          │ │
│ │            │   'assetPresentation': 'FULL',                                                  │ │
│ │            │   'audioMode': 'STEREO',                                                        │ │
│ │            │   'audioQuality': 'HI_RES_LOSSLESS',                                            │ │
│ │            │   'manifestMimeType': 'application/dash+xml',                                   │ │
│ │            │   'manifestHash': 'f+iBmzVQKij4MFSVr21ZH3aad5nCJRA7+717fV/RpNo=',               │ │
│ │            │   'manifest':                                                                   │ │
│ │            'PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz48TVBEIHhtbG5zPSJ1cm46bXBlZzp… │ │
│ │            │   'albumReplayGain': -9.3,                                                      │ │
│ │            │   'albumPeakAmplitude': 1.0,                                                    │ │
│ │            │   'trackReplayGain': -8.71,                                                     │ │
│ │            │   ... +3                                                                        │ │
│ │            }                                                                                 │ │
│ │     self = <streamrip.client.tidal.TidalClient object at 0x000002AB2A6794D0>                 │ │
│ │ track_id = '21977343'                                                                        │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\json\__init__.py:346 in loads           │
│                                                                                                  │
│   343 │   if (cls is None and object_hook is None and                                            │
│   344 │   │   │   parse_int is None and parse_float is None and                                  │
│   345 │   │   │   parse_constant is None and object_pairs_hook is None and not kw):              │
│ > 346 │   │   return _default_decoder.decode(s)                                                  │
│   347 │   if cls is None:                                                                        │
│   348 │   │   cls = JSONDecoder                                                                  │
│   349 │   if object_hook is not None:                                                            │
│                                                                                                  │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │               cls = None                                                                     │ │
│ │                kw = {}                                                                       │ │
│ │       object_hook = None                                                                     │ │
│ │ object_pairs_hook = None                                                                     │ │
│ │    parse_constant = None                                                                     │ │
│ │       parse_float = None                                                                     │ │
│ │         parse_int = None                                                                     │ │
│ │                 s = '<?xml version=\'1.0\' encoding=\'UTF-8\'?><MPD                          │ │
│ │                     xmlns="urn:mpeg:dash:schema:mpd:2011"'+1511                              │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py:337 in decode           │
│                                                                                                  │
│   334 │   │   containing a JSON document).                                                       │
│   335 │   │                                                                                      │
│   336 │   │   """                                                                                │
│ > 337 │   │   obj, end = self.raw_decode(s, idx=_w(s, 0).end())                                  │
│   338 │   │   end = _w(s, end).end()                                                             │
│   339 │   │   if end != len(s):                                                                  │
│   340 │   │   │   raise JSONDecodeError("Extra data", s, end)                                    │
│                                                                                                  │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │   _w = <built-in method match of re.Pattern object at 0x000002AB28D78C70>                    │ │
│ │    s = '<?xml version=\'1.0\' encoding=\'UTF-8\'?><MPD                                       │ │
│ │        xmlns="urn:mpeg:dash:schema:mpd:2011"'+1511                                           │ │
│ │ self = <json.decoder.JSONDecoder object at 0x000002AB28D8C310>                               │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py:355 in raw_decode       │
│                                                                                                  │
│   352 │   │   try:                                                                               │
│   353 │   │   │   obj, end = self.scan_once(s, idx)                                              │
│   354 │   │   except StopIteration as err:                                                       │
│ > 355 │   │   │   raise JSONDecodeError("Expecting value", s, err.value) from None               │
│   356 │   │   return obj, end                                                                    │
│   357                                                                                            │
│                                                                                                  │
│ ┌─────────────────────────────────────────── locals ───────────────────────────────────────────┐ │
│ │  idx = 0                                                                                     │ │
│ │    s = '<?xml version=\'1.0\' encoding=\'UTF-8\'?><MPD                                       │ │
│ │        xmlns="urn:mpeg:dash:schema:mpd:2011"'+1511                                           │ │
│ │ self = <json.decoder.JSONDecoder object at 0x000002AB28D8C310>                               │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Config File

vanilla

Operating System

Windows 10 Pro 22H2

streamrip version

rip, version 2.0.5

Screenshots and recordings

No response

Additional context

No response

@morgenstern72 morgenstern72 added the bug Something isn't working label Jan 29, 2025
@morgenstern72
Copy link
Author

Another example, wehre some tracks are downloaded, but then it crashes


C:\Windows\system32>rip search tidal artist "Sirgun Kaur"
─────────────────────────────────────────────────────────────────── Downloading Mantraspheric: Aad Guray Nameh, For Pamela, The Cosmic Gift... ───────────────────────────────────────────────────────────────────
Track 1 ---------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------- 36.8% • 3.1 MB/s • 0:00:10
Track 2 ------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------- 21.3% • 3.1 MB/s • 0:00:18
Track 1 ------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------- 52.0% • 3.1 MB/s • 0:00:05
Track 2 -------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- 93.9% • 3.1 MB/s • 0:00:01
Track 3 ------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------- 24.7% • 3.1 MB/s • 0:00:15
Track 4 --- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2.3%  • 2.0 MB/s • 0:00:15
┌─────────────────────────────── Traceback (most recent call last) ────────────────────────────────┐
│ in _run_module_as_main:198                                                                       │
│ in _run_code:88                                                                                  │
│                                                                                                  │
│                                     ... 23 frames hidden ...                                     │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py:337 in decode           │
│                                                                                                  │
│   334 │   │   containing a JSON document).                                                       │
│   335 │   │                                                                                      │
│   336 │   │   """                                                                                │
│ > 337 │   │   obj, end = self.raw_decode(s, idx=_w(s, 0).end())                                  │
│   338 │   │   end = _w(s, end).end()                                                             │
│   339 │   │   if end != len(s):                                                                  │
│   340 │   │   │   raise JSONDecodeError("Extra data", s, end)                                    │
│                                                                                                  │
│ C:\Users\trj\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py:355 in raw_decode       │
│                                                                                                  │
│   352 │   │   try:                                                                               │
│   353 │   │   │   obj, end = self.scan_once(s, idx)                                              │
│   354 │   │   except StopIteration as err:                                                       │
│ > 355 │   │   │   raise JSONDecodeError("Expecting value", s, err.value) from None               │
│   356 │   │   return obj, end                                                                    │
│   357                                                                                            │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
sys:1: RuntimeWarning: coroutine 'Artist._download_async.<locals>._rip' was never awaited

@ppamorim
Copy link

I have the same issue.

@wilsonnkwan
Copy link

Same issue

@ppamorim
Copy link

ppamorim commented Feb 5, 2025

Same issue

Use the parameter -q 2 like rip -q 2 url "$URL", this will force rip to use the API v2.

@morgenstern72
Copy link
Author

Same issue

Use the parameter -q 2 like rip -q 2 url "$URL", this will force rip to use the API v2.

Thank you, both my examples work with this paramater:
rip -q 2 search tidal artist "Sirgun Kaur" and
rip -q 2 search tidal track "All of me"

Is it possible to modify the config so this parameter is used by default?

@morgenstern72
Copy link
Author

Just for information, since you used $URL in the example, I also tested this parameter with playlist download, but it does not resolve the issue there: #795

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants