and another DuckTales audiobook shows this error, I think this is also due to the ytmusicapi.
2025-12-05 06:05:53.867 WARNING (MainThread) [music_assistant] Exception in task Task-5089 - target: <function MediaControllerBase.get_provider_item at 0x7fc856c2f920>: "Unable to find 'playNavigationEndpoint' using path ['contents', 0, 'musicResponsiveListItemRenderer', 'overlay', 'musicItemThumbnailOverlayRenderer', 'content', 'musicPlayButtonRenderer', 'playNavigationEndpoint', 'watchEndpoint', 'playlistId'] on {'trackingParams': 'CGwQyN4CIhMIk-2Fs9alkQMVNER6BR0VZCC2', 'playIcon': {'iconType': 'PLAY_ARROW'}, 'pauseIcon': {'iconType': 'PAUSE'}, 'iconColor': 4294967295, 'backgroundColor': 0, 'activeBackgroundColor': 0, 'loadingIndicatorColor': 14745645, 'playingIcon': {'iconType': 'VOLUME_UP'}, 'iconLoadingColor': 0, 'activeScaleFactor': 1, 'buttonSize': 'MUSIC_PLAY_BUTTON_SIZE_SMALL', 'rippleTarget': 'MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF'}, exception: 'playNavigationEndpoint'"
Traceback (most recent call last):
File "/app/venv/lib/python3.13/site-packages/ytmusicapi/navigation.py", line 122, in nav
root = root[k] # type: ignore[index]
~~~~^^^
KeyError: 'playNavigationEndpoint'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/venv/lib/python3.13/site-packages/music_assistant/controllers/media/base.py", line 507, in get_provider_item
return cast("ItemCls", await provider.get_item(self.media_type, item_id))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/venv/lib/python3.13/site-packages/music_assistant/models/music_provider.py", line 478, in get_item
return await self.get_album(prov_item_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/venv/lib/python3.13/site-packages/music_assistant/controllers/cache.py", line 414, in wrapper
result = await func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/venv/lib/python3.13/site-packages/music_assistant/providers/ytmusic/__init__.py", line 328, in get_album
if album_obj := await get_album(prov_album_id=prov_album_id, language=self.language):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/venv/lib/python3.13/site-packages/music_assistant/providers/ytmusic/helpers.py", line 63, in get_album
return await asyncio.to_thread(_get_album)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/asyncio/threads.py", line 25, in to_thread
return await loop.run_in_executor(None, func_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
File "/app/venv/lib/python3.13/site-packages/music_assistant/providers/ytmusic/helpers.py", line 49, in _get_album
album_playlist = ytm.get_playlist(playlistId=album["audioPlaylistId"], limit=None)
File "/app/venv/lib/python3.13/site-packages/ytmusicapi/mixins/playlists.py", line 142, in get_playlist
return parse_audio_playlist(response, limit, request_func_continuations)
File "/app/venv/lib/python3.13/site-packages/ytmusicapi/parsers/playlists.py", line 112, in parse_audio_playlist
playlist["id"] = nav(
~~~^
content_data, [*CONTENT, MRLIR, *PLAY_BUTTON, "playNavigationEndpoint", *WATCH_PLAYLIST_ID]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/app/venv/lib/python3.13/site-packages/ytmusicapi/navigation.py", line 126, in nav
raise type(e)(f"Unable to find '{k}' using path {items!r} on {root!r}, exception: {e}")
KeyError: "Unable to find 'playNavigationEndpoint' using path ['contents', 0, 'musicResponsiveListItemRenderer', 'overlay', 'musicItemThumbnailOverlayRenderer', 'content', 'musicPlayButtonRenderer', 'playNavigationEndpoint', 'watchEndpoint', 'playlistId'] on {'trackingParams': 'CGwQyN4CIhMIk-2Fs9alkQMVNER6BR0VZCC2', 'playIcon': {'iconType': 'PLAY_ARROW'}, 'pauseIcon': {'iconType': 'PAUSE'}, 'iconColor': 4294967295, 'backgroundColor': 0, 'activeBackgroundColor': 0, 'loadingIndicatorColor': 14745645, 'playingIcon': {'iconType': 'VOLUME_UP'}, 'iconLoadingColor': 0, 'activeScaleFactor': 1, 'buttonSize': 'MUSIC_PLAY_BUTTON_SIZE_SMALL', 'rippleTarget': 'MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF'}, exception: 'playNavigationEndpoint'"
2025-12-05 06:05:53.870 ERROR (MainThread) [music_assistant.webserver] Error handling message: CommandMessage(message_id='c0321f65-85c1-43cb-ac53-1484dfdad89a', command='player_queues/play_media', args={'queue_id': '60196686-12e2-b5aa-1bee-3b61e4a9bfc0', 'media': ['ytmusic://album/MPREb_OJkxCUCP5hF'], 'option': 'replace'})
Traceback (most recent call last):
File "/app/venv/lib/python3.13/site-packages/ytmusicapi/navigation.py", line 122, in nav
root = root[k] # type: ignore[index]
~~~~^^^
KeyError: 'playNavigationEndpoint'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/venv/lib/python3.13/site-packages/music_assistant/controllers/webserver/websocket_client.py", line 232, in _run_handler
result = await result
^^^^^^^^^^^^
File "/app/venv/lib/python3.13/site-packages/music_assistant/controllers/player_queues.py", line 427, in play_media
media_item = await self.mass.music.get_item_by_uri(item)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/venv/lib/python3.13/site-packages/music_assistant/controllers/music.py", line 599, in get_item_by_uri
return await self.get_item(
^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
)
^
File "/app/venv/lib/python3.13/site-packages/music_assistant/controllers/music.py", line 647, in get_item
return await ctrl.get(
^^^^^^^^^^^^^^^
...<2 lines>...
)
^
File "/app/venv/lib/python3.13/site-packages/music_assistant/controllers/media/albums.py", line 81, in get
album = await super().get(
^^^^^^^^^^^^^^^^^^
...<2 lines>...
)
^
File "/app/venv/lib/python3.13/site-packages/music_assistant/controllers/media/base.py", line 300, in get
return await self.get_provider_item(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<2 lines>...
)
^
File "/app/venv/lib/python3.13/site-packages/music_assistant/helpers/util.py", line 818, in wrapper
return await task
^^^^^^^^^^
File "/app/venv/lib/python3.13/site-packages/music_assistant/controllers/media/base.py", line 507, in get_provider_item
return cast("ItemCls", await provider.get_item(self.media_type, item_id))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/venv/lib/python3.13/site-packages/music_assistant/models/music_provider.py", line 478, in get_item
return await self.get_album(prov_item_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/venv/lib/python3.13/site-packages/music_assistant/controllers/cache.py", line 414, in wrapper
result = await func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/venv/lib/python3.13/site-packages/music_assistant/providers/ytmusic/__init__.py", line 328, in get_album
if album_obj := await get_album(prov_album_id=prov_album_id, language=self.language):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/venv/lib/python3.13/site-packages/music_assistant/providers/ytmusic/helpers.py", line 63, in get_album
return await asyncio.to_thread(_get_album)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/asyncio/threads.py", line 25, in to_thread
return await loop.run_in_executor(None, func_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
File "/app/venv/lib/python3.13/site-packages/music_assistant/providers/ytmusic/helpers.py", line 49, in _get_album
album_playlist = ytm.get_playlist(playlistId=album["audioPlaylistId"], limit=None)
File "/app/venv/lib/python3.13/site-packages/ytmusicapi/mixins/playlists.py", line 142, in get_playlist
return parse_audio_playlist(response, limit, request_func_continuations)
File "/app/venv/lib/python3.13/site-packages/ytmusicapi/parsers/playlists.py", line 112, in parse_audio_playlist
playlist["id"] = nav(
~~~^
content_data, [*CONTENT, MRLIR, *PLAY_BUTTON, "playNavigationEndpoint", *WATCH_PLAYLIST_ID]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/app/venv/lib/python3.13/site-packages/ytmusicapi/navigation.py", line 126, in nav
raise type(e)(f"Unable to find '{k}' using path {items!r} on {root!r}, exception: {e}")
KeyError: "Unable to find 'playNavigationEndpoint' using path ['contents', 0, 'musicResponsiveListItemRenderer', 'overlay', 'musicItemThumbnailOverlayRenderer', 'content', 'musicPlayButtonRenderer', 'playNavigationEndpoint', 'watchEndpoint', 'playlistId'] on {'trackingParams': 'CGwQyN4CIhMIk-2Fs9alkQMVNER6BR0VZCC2', 'playIcon': {'iconType': 'PLAY_ARROW'}, 'pauseIcon': {'iconType': 'PAUSE'}, 'iconColor': 4294967295, 'backgroundColor': 0, 'activeBackgroundColor': 0, 'loadingIndicatorColor': 14745645, 'playingIcon': {'iconType': 'VOLUME_UP'}, 'iconLoadingColor': 0, 'activeScaleFactor': 1, 'buttonSize': 'MUSIC_PLAY_BUTTON_SIZE_SMALL', 'rippleTarget': 'MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF'}, exception: 'playNavigationEndpoint'"
And generally, I'm having trouble finding and playing a complete album in the audiobooks. If I want to play Gigantosaurus Episode 3, it's not found; only the artist or the individual track is found.

Originally reported by @Thorsten1982
and another DuckTales audiobook shows this error, I think this is also due to the ytmusicapi.
And generally, I'm having trouble finding and playing a complete album in the audiobooks. If I want to play Gigantosaurus Episode 3, it's not found; only the artist or the individual track is found.
