Add timeout parameter to ABS (#2782)
authorFabian Munkes <105975993+fmunkes@users.noreply.github.com>
Tue, 9 Dec 2025 22:46:42 +0000 (23:46 +0100)
committerGitHub <noreply@github.com>
Tue, 9 Dec 2025 22:46:42 +0000 (23:46 +0100)
music_assistant/providers/audiobookshelf/__init__.py
music_assistant/providers/audiobookshelf/constants.py
music_assistant/providers/audiobookshelf/manifest.json
requirements_all.txt

index cf5d502fe359d7d5997516c470508ff2feae90fc..3f914f908d3bbdf65d255ba038a4fcae4d16f605 100644 (file)
@@ -2,6 +2,7 @@
 
 from __future__ import annotations
 
+import asyncio
 import functools
 import itertools
 import time
@@ -14,7 +15,6 @@ from aioaudiobookshelf.client.items import LibraryItemExpandedBook as AbsLibrary
 from aioaudiobookshelf.client.items import (
     LibraryItemExpandedPodcast as AbsLibraryItemExpandedPodcast,
 )
-from aioaudiobookshelf.client.session_configuration import asyncio
 from aioaudiobookshelf.exceptions import LoginError as AbsLoginError
 from aioaudiobookshelf.exceptions import RefreshTokenExpiredError
 from aioaudiobookshelf.schema.author import AuthorExpanded
@@ -73,6 +73,7 @@ from music_assistant.providers.audiobookshelf.parsers import (
 from .constants import (
     ABS_BROWSE_ITEMS_TO_PATH,
     ABS_SHELF_ID_ICONS,
+    AIOHTTP_TIMEOUT,
     CACHE_CATEGORY_LIBRARIES,
     CACHE_KEY_LIBRARIES,
     CONF_API_TOKEN,
@@ -237,6 +238,7 @@ class Audiobookshelf(MusicProvider):
             verify_ssl=verify_ssl,
             logger=self.logger,
             pagination_items_per_page=30,  # audible provider goes with 50 for pagination
+            timeout=AIOHTTP_TIMEOUT,
         )
         try:
             if token_api is not None or token_old is not None:
index 8ef7e37f35d87ee2e3911279b38fe2cf0bfc7784..d83deb3ce753b54ca487d55976f1d88601564ca9 100644 (file)
@@ -3,6 +3,11 @@
 from enum import StrEnum
 
 from aioaudiobookshelf.schema.shelf import ShelfId as AbsShelfId
+from aiohttp.client import ClientTimeout
+
+# AIOHTTP
+# we use twice the default values
+AIOHTTP_TIMEOUT = ClientTimeout(total=10 * 60, sock_connect=60)
 
 # CONFIG
 CONF_URL = "url"
index 96c0572bd7b3a8ae3a6bde1d276e8ee1d4a987e4..3a4d77866f660d1b2cd50c75f348913c4c632f73 100644 (file)
@@ -5,8 +5,8 @@
   "name": "Audiobookshelf",
   "description": "Stream audiobooks and podcasts from your personal Audiobookshelf server.",
   "codeowners": ["@fmunkes"],
-  "credits": ["[aioaudiobookshelf](https://github.com/fmunkes/aioaudiobookshelf)"],
-  "requirements": ["aioaudiobookshelf==0.1.9"],
+  "credits": ["[aioaudiobookshelf](https://github.com/music-assistant/aioaudiobookshelf)"],
+  "requirements": ["aioaudiobookshelf==0.1.10"],
   "documentation": "https://music-assistant.io/music-providers/audiobookshelf",
   "multi_instance": true
 }
index b492a1933992e20277815243302ca490ab58be1a..be84bff9f836b2d22d207b83184a402baa576424 100644 (file)
@@ -1,7 +1,7 @@
 # WARNING: this file is autogenerated!
 
 Brotli>=1.0.9
-aioaudiobookshelf==0.1.9
+aioaudiobookshelf==0.1.10
 aiodns>=3.2.0
 aiofiles==24.1.0
 aiohttp==3.13.2