[Enhancement][DB/API]: BlurHash for Library Item #2066

Closed
opened 2026-04-25 00:03:09 +02:00 by adam · 2 comments
Owner

Originally created by @Dr-Blank on GitHub (Jun 20, 2024).

Type of Enhancement

Server Backend

Describe the Feature/Enhancement

BlurHash implementation for database so client can display them while loading images.

This would be a data field alongside the coverurl of the type String.

Here is the github repo for this algorithm with sdk ready to use in various languages.

Why would this be helpful?

I believe https://blurha.sh/ does a good job explaining the need of this in a short time.

This will be useful to other unofficial apps that use abs as a back-end.

Future Implementation (Screenshot)

directly from the website, cover images will be blurred until the images are fetched.

Audiobookshelf Server Version

v2.10.1

Current Implementation (Screenshot)

Looking a blank grey squares in the app home screen and then all the images appear at once.

Originally created by @Dr-Blank on GitHub (Jun 20, 2024). ### Type of Enhancement Server Backend ### Describe the Feature/Enhancement [BlurHash](https://blurha.sh/) implementation for database so client can display them while loading images. This would be a data field alongside the coverurl of the type String. [Here](https://github.com/woltapp/blurhash) is the github repo for this algorithm with sdk ready to use in various languages. ### Why would this be helpful? I believe https://blurha.sh/ does a good job explaining the need of this in a short time. This will be useful to other unofficial apps that use abs as a back-end. ### Future Implementation (Screenshot) directly from the website, cover images will be blurred until the images are fetched. ![](https://blurha.sh/795ed289706e62297532.png) ### Audiobookshelf Server Version v2.10.1 ### Current Implementation (Screenshot) Looking a blank grey squares in the app home screen and then all the images appear at once.
adam added the enhancement label 2026-04-25 00:03:09 +02:00
adam closed this issue 2026-04-25 00:03:09 +02:00
Author
Owner

@advplyr commented on GitHub (Sep 28, 2024):

I remember talking about this in Discord and I believe the actual problem wasn't that the images were loading it was that the items were still being requested from the server. So we can't show the blur hash image until the items are retrieved.
Since this is specific to the mobile app we should cache those images to improve the load speed instead of adding blur hash
Feature requested here https://github.com/advplyr/audiobookshelf-app/issues/907

@advplyr commented on GitHub (Sep 28, 2024): I remember talking about this in Discord and I believe the actual problem wasn't that the images were loading it was that the items were still being requested from the server. So we can't show the blur hash image until the items are retrieved. Since this is specific to the mobile app we should cache those images to improve the load speed instead of adding blur hash Feature requested here https://github.com/advplyr/audiobookshelf-app/issues/907
Author
Owner

@Dr-Blank commented on GitHub (Sep 29, 2024):

Sure, caching of images should be addressed by the client but this issue is, although similar, different.

To cache images one must need to fetch them first, and until that is done this would be a placeholder. Caching can be done for frequently used images (like continue listening) but pre caching every image on the server is not feasible, hence when browsing library, and showing recommendations, most of the images would be fetched for the first time, where a blur hash would be a nice UI improvement as it would be part of the JSON libItem.

Another limitation of caching is size limit of the device, aggressive caching would forfeit the need of a server.

Consider keeping this issue open and putting it on the back-burner for now instead of closing it as not planned or not related to audiobookshelf server.

I hope I was able to make a case for this feature.

Jellyfin uses this for its blurred image placeholder until full res image is fetched
ref: https://github.com/woltapp/blurhash?tab=readme-ov-file#users

@Dr-Blank commented on GitHub (Sep 29, 2024): Sure, caching of images should be addressed by the client but this issue is, although similar, different. To cache images one must need to fetch them first, and until that is done this would be a placeholder. Caching can be done for frequently used images (like continue listening) but pre caching every image on the server is not feasible, hence when browsing library, and showing recommendations, most of the images would be fetched for the first time, where a blur hash would be a nice UI improvement as it would be part of the JSON libItem. Another limitation of caching is size limit of the device, aggressive caching would forfeit the need of a server. Consider keeping this issue open and putting it on the back-burner for now instead of closing it as not planned or not related to audiobookshelf server. I hope I was able to make a case for this feature. Jellyfin uses this for its blurred image placeholder until full res image is fetched ref: https://github.com/woltapp/blurhash?tab=readme-ov-file#users
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#2066