mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Enhancement]: Customizing the placeholder/default cover image #3018
Open
opened 2026-04-25 00:13:00 +02:00 by adam
·
8 comments
No Branch/Tag Specified
master
book_tags_genres_dedupe
episode_download_fallback
Issue-4540-SortBy-StartedDate-and-FinishedDate
episode_meta_tagging
fix_authorize_race_condition
redirect_transcode_requests
progress_updated_sort
fix_ereader_socket_event
fix_change_empty_root_password
fix_podcast_session_track_index
fix_set_token
session_modal_user
localize_durations
fix_oidc_create_user
jwt_auth_refactor
fix_scanner_deleting_single_file_books
fix_mediaprogress_updatedat_2
experimental_next_client
podcast_episode_duration
episode-timestamps-clickable
book_author_secondary_sort_title
podcast_useragents
pathexists_user_access
fix_pathexists_join
book_author_secondary_sort
clean_duplicate_mediaprogress
sanitize_html_description
trix_prevent_attachments
check_path_api_fix
fix_mediaprogress_updatedat
increase_express_json_limit
fix_dockerfile_nunicode
search_episodes
audiobook_tools_update
episode_secondary_sorts
hls_stream_url_update
new_session_track_endpoint
audiobook_tools_enhancements
watcher_rescans_update
player_track_tooltip
fix_exclude_prefixes_crash
socket_item_events
fix_podcast_episode_scanner_promise
new_stats_controller
count_cache_for_userpermissions
parsing-opf-v3
validate_migration_files
fix-quick-match-all-crash
fix-chapter-end-sleep-timer
stringify_sequelize_query
remove-col-ambiguity
fix_next_prev_edit_description
details_trim_whitespace
fix_content_url_basepath
fix_logger_fatal
progress_bar_visibility
batch-edit-populate-map-details
feed_generator_updates
bookmark-modal-updates
migrate-library-item-in-scanner
migrate-new-library-items
migrate-podcasts-new-library-item-2
migrate-podcasts-new-library-item
fix-remove-episode-from-playlist
playback-session-use-new-library-item
refactor-library-item
fix-heatmap-caption
feed-episodes-upsert
share-media-player-media-session-api
remove-old-playlist
remove_old_collection_object
plugin-implementation-demo
feed_migration
refactor-feeds-from-item
fix_remove_authors_no_books
v2.17.3-fk-constraints-migration
migrations-first-upgrade
sqlite_2
feature/nuxt-target-server
waveform
sqlite
playlists
video
v2.35.1
v2.35.0
v2.34.0
v2.33.2
v2.33.1
v2.33.0
v2.32.1
v2.32.0
v2.31.0
v2.30.0
v2.29.0
v2.28.0
v2.27.0
v2.26.3
v2.26.2
v2.26.1
v2.26.0
v2.25.1
v2.25.0
v2.24.0
v2.23.0
v2.22.0
v2.21.0
v2.20.0
v2.19.5
v2.19.4
v2.19.3
v2.19.2
v2.19.1
v2.19.0
v2.18.1
v2.18.0
v2.17.7
v2.17.6
v2.17.5
v2.17.4
v2.17.3
v2.17.2
v2.17.1
v2.17.0
v2.16.2
v2.16.1
v2.16.0
v2.15.1
v2.15.0
v2.14.0
v2.13.4
v2.13.3
v2.13.2
v2.13.1
v2.13.0
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.11.0
v2.10.1
v2.10.0
v2.9.0
v2.8.1
v2.8.0
v2.7.2
v2.7.1
v2.7.0
v2.6.0
v2.5.0
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.23
v2.2.22
v2.2.21
v2.2.20
v2.2.19
v2.2.18
v2.2.17
v2.2.16
v2.2.15
v2.2.14
v2.2.13
v2.2.12
v2.2.11
v2.2.10
v2.2.9
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.5
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.24
v2.0.23
v2.0.22
v2.0.21
v2.0.20
v2.0.19
v2.0.18
v2.0.17
v2.0.16
v2.0.15
v2.0.14
v2.0.13
v2.0.12
v2.0.11
v2.0.10
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v1.7.2
v1.7.1
v1.7.0
v1.6.0
v1.5.5
v1.5.0
v1.4.11
v1.4.9
v1.4.7
v1.4.6
v1.4.4
v1.4.2
v1.4.0
v1.4.1
v1.3.4
v1.3.3
v1.3.1
v1.2.8
v1.2.6
v1.2.5
v1.2.4
v1.2.1
v1.1.15
v1.1.14
v1.1.13
v1.1.12
v1.1.11
v1.1.10
v1.1.9
v1.1.8
v1.0.0
0.9.61-beta.0
0.9.61-beta
Labels
Clear labels
authentication
backlog
bug
chapter editor
config-issue
ebooks
encoding/embedding
enhancement
help wanted
listening sessions & progress
planned
possible plugin
progress sync
pull-request
sorting/filtering/searching
unable to reproduce
upload
users & permissions
waiting
Mirrored from GitHub Pull Request
No Label
enhancement
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/audiobookshelf#3018
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @sinofski on GitHub (Sep 26, 2025).
Type of Enhancement
None
Describe the Feature/Enhancement
all default covers are red.
Why would this be helpful?
I hate the default red cover.
Future Implementation (Screenshot)
no screenshot
Audiobookshelf Server Version
v2.29
Current Implementation (Screenshot)
No response
@advplyr commented on GitHub (Sep 26, 2025):
Do you have a suggestion? We're working on a new client and I agree that red cover does not fit the look of Abs anymore.
Ideally you set your own covers so I'm not sure we should make that customizable but we can find a more suitable alternative.
@Vito0912 commented on GitHub (Sep 26, 2025):
Can't we just have a media directory with static files and reserve a dir for mountable media? It's more or less what Authentik does, and I think it's genius. You can't upload anything (so no logic there), but you can mount files directly to the "public" media e.g. via docker and reference them via a path (native would then have to put it there manually ofc ). Then it would just be a different path that is served on no-cover-books.
Just an idea to not have to setup new upload ui and api routes etc.
Edit: Or not even customize the path, but let users override the actual image via a mnt
@jmswangit commented on GitHub (Sep 26, 2025):
I’m already doing this with the ABS logo, as seen below:

Mounting files to the
/app/client/dist/_nuxt/img/works for now, but a supported solution would be even better.@Vito0912 commented on GitHub (Sep 26, 2025):
Ah I thought the file name is random for nuxt. But nice to know.
But if that's possible I think that could be made the "offical" solution. It's probably too small to add completely new routes if one can simply replace the file (which add the end uploading would be). I am not sure what @advplyr opinion is on that
(And that would the probably also work for authors. So no code needed for that too)
@jmswangit commented on GitHub (Sep 26, 2025):
While it works for Docker Compose, I assume it doesn’t work for all installations, like I would guess a windows installation. I think for that reason it can’t really be considered an official or supported solution, as much as I’d like it to be. Audiobookshelf doesn’t even currently have the ability to be adjusted with CSS or JS without massively breaking things. I think some moderate changes, like you were suggesting before, Vito, would be enormously beneficial.
@Vito0912 commented on GitHub (Sep 26, 2025):
As the Windows installation is only a wrapper and not ABS itself, there would need to be an option to access the underlying files within. This would be the same as allowing custom media to be mounted to a media directory (unless we allowed the whole file system to be used, but that was not what I meant).
This should not mean it's the best solution!
Offtopic regarding this:
Yes ABS has no support for it, but why should adding a CSS sheet or JS break the functionality, unless overwriting some code. There are some css unfriedly HTML elements, but nothing that should "massivley break things". Or do I overlook something. If so I might try to fix
@advplyr commented on GitHub (Sep 26, 2025):
Thanks for pointing this out.
I agree this is the official solution. We won't be making this customizable through the interface or any other way.
As I mentioned I think we are due for an update on that default cover image. I put that in the very first release when Abs looked much different than it does now. Let me know if you have suggestions.
Also note that we are working on an entirely new client. We are building that with theming in mind. Meaning that we'll try to put a lot of the styles into CSS variables.
@Vito0912 commented on GitHub (Sep 27, 2025):
I would add this to a page in the new docs then, if nothing speaks against it?