File "/home/panso/Music/amd/AppleMusicDecrypt/.venv/lib/python3.14/site-packages/tenacity/asyncio/__init__.py", line 116, in __call__
result = await fn(*args, **kwargs)
│ │ └ {}
│ └ (<src.grpc.manager.WrapperManager object at 0x7feaf13f7620>, '1867428347', 'en-GB', 'gr')
└ <function WrapperManager.lyrics at 0x7feaf1fefa00>
File "/home/panso/Music/amd/AppleMusicDecrypt/src/grpc/manager.py", line 159, in lyrics
raise WrapperManagerException(resp.header.msg)
│ └ header {
│ code: -1
│ msg: "failed to get lyrics: 401"
│ }
│
└ <class 'src.grpc.manager.WrapperManagerException'>
src.grpc.manager.WrapperManagerException: failed to get lyrics: 401
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/panso/Music/amd/AppleMusicDecrypt/main.py", line 23, in <module>
loop.run_until_complete(cmd.start())
│ │ │ └ <function InteractiveShell.start at 0x7feaf13c8eb0>
│ │ └ <src.cmd.InteractiveShell object at 0x7feaf14be900>
│ └ <function BaseEventLoop.run_until_complete at 0x7feaf5fc5380>
└ <_UnixSelectorEventLoop running=True closed=False debug=False>
File "/usr/lib/python3.14/asyncio/base_events.py", line 706, in run_until_complete
self.run_forever()
│ └ <function BaseEventLoop.run_forever at 0x7feaf5fc52d0>
└ <_UnixSelectorEventLoop running=True closed=False debug=False>
File "/usr/lib/python3.14/asyncio/base_events.py", line 677, in run_forever
self._run_once()
│ └ <function BaseEventLoop._run_once at 0x7feaf5fc73d0>
└ <_UnixSelectorEventLoop running=True closed=False debug=False>
File "/usr/lib/python3.14/asyncio/base_events.py", line 2057, in _run_once
handle._run()
│ └ <function Handle._run at 0x7feaf5f43740>
└ <Handle Task.task_wakeup()>
File "/usr/lib/python3.14/asyncio/events.py", line 94, in _run
self._context.run(self._callback, *self._args)
│ │ │ │ │ └ <member '_args' of 'Handle' objects>
│ │ │ │ └ <Handle Task.task_wakeup()>
│ │ │ └ <member '_callback' of 'Handle' objects>
│ │ └ <Handle Task.task_wakeup()>
│ └ <member '_context' of 'Handle' objects>
└ <Handle Task.task_wakeup()>
> File "/home/panso/Music/amd/AppleMusicDecrypt/src/rip.py", line 101, in rip_song
task.metadata.lyrics = await it(WrapperManager).lyrics(task.adamId, flags.language, url.storefront)
│ │ │ │ │ │ │ │ │ │ └ 'gr'
│ │ │ │ │ │ │ │ │ └ Song(url='https://music.apple.com/gr/song/fanatika/1867428347', storefront='gr', type='song', id='1867428347')
│ │ │ │ │ │ │ │ └ 'en-GB'
│ │ │ │ │ │ │ └ Flags(force_save=False, include_participate_in_works=False, language='en-GB')
│ │ │ │ │ │ └ '1867428347'
│ │ │ │ │ └ Task(adamId='1867428347', parentDone=None, playlist=None, status=<Status.WAITING: 'WAITING'>, info=None, m3u8Info=None, metad...
│ │ │ │ └ <class 'src.grpc.manager.WrapperManager'>
│ │ │ └ <function create at 0x7feaf5d58510>
│ │ └ ''
│ └ SongMetadata(song_id='1867428347', title='FANATIKA', artist='12os Pithikos, DJ Waif & Rjay', album_id='1867427796', album_art...
└ Task(adamId='1867428347', parentDone=None, playlist=None, status=<Status.WAITING: 'WAITING'>, info=None, m3u8Info=None, metad...
File "/home/panso/Music/amd/AppleMusicDecrypt/.venv/lib/python3.14/site-packages/tenacity/asyncio/__init__.py", line 193, in async_wrapped
return await copy(fn, *args, **kwargs)
│ │ │ └ {}
│ │ └ (<src.grpc.manager.WrapperManager object at 0x7feaf13f7620>, '1867428347', 'en-GB', 'gr')
│ └ <function WrapperManager.lyrics at 0x7feaf1fefa00>
└ <AsyncRetrying object at 0x7feaf0f82890 (stop=<tenacity.stop.stop_after_attempt object at 0x7feaf2173890>, wait=<tenacity.wai...
File "/home/panso/Music/amd/AppleMusicDecrypt/.venv/lib/python3.14/site-packages/tenacity/asyncio/__init__.py", line 112, in __call__
do = await self.iter(retry_state=retry_state)
│ │ └ <RetryCallState 140647041023504: attempt #8; slept for 59.59; last result: failed (WrapperManagerException failed to get lyri...
│ └ <function AsyncRetrying.iter at 0x7feaf40f5c70>
└ <AsyncRetrying object at 0x7feaf0f82890 (stop=<tenacity.stop.stop_after_attempt object at 0x7feaf2173890>, wait=<tenacity.wai...
File "/home/panso/Music/amd/AppleMusicDecrypt/.venv/lib/python3.14/site-packages/tenacity/asyncio/__init__.py", line 157, in iter
result = await action(retry_state)
│ └ <RetryCallState 140647041023504: attempt #8; slept for 59.59; last result: failed (WrapperManagerException failed to get lyri...
└ <function wrap_to_async_func.<locals>.inner at 0x7feaefde1dd0>
File "/home/panso/Music/amd/AppleMusicDecrypt/.venv/lib/python3.14/site-packages/tenacity/_utils.py", line 111, in inner
return call(*args, **kwargs)
│ │ └ {}
│ └ (<RetryCallState 140647041023504: attempt #8; slept for 59.59; last result: failed (WrapperManagerException failed to get lyr...
└ <function BaseRetrying._post_stop_check_actions.<locals>.exc_check at 0x7feaefde24b0>
File "/home/panso/Music/amd/AppleMusicDecrypt/.venv/lib/python3.14/site-packages/tenacity/__init__.py", line 414, in exc_check
raise retry_exc from fut.exception()
│ │ └ <function Future.exception at 0x7feaf6a62ae0>
│ └ <Future at 0x7feaf0f55e50 state=finished raised WrapperManagerException>
└ RetryError(<Future at 0x7feaf0f55e50 state=finished raised WrapperManagerException>)
tenacity.RetryError: RetryError[<Future at 0x7feaf0f55e50 state=finished raised WrapperManagerException>]
even persists after disabling lyrics from the config.toml file. and this happens to every song no matter the wrapper manager instance (public or self hosted)
even persists after disabling lyrics from the config.toml file. and this happens to every song no matter the wrapper manager instance (public or self hosted)