package icon

ShelfDroid

Audiobookshelf Android client with playback, downloads, and server management
New in version 0.6.1
What's new:
• Customize the controls shown in your media notification, including playback speed and chapter skipping.
• Choose which screen opens when you tap the media notification.
• Find and manage books and podcasts more reliably, including when offline or after reinstalling the app.
ShelfDroid is a third-party Android client for self-hosted Audiobookshelf servers.

Use it to browse your audiobook and podcast libraries, stream playback from your server, keep listening offline on your Android device, and handle common server management tasks from the same app.

Features
- Browse audiobook and podcast libraries from your Audiobookshelf server
- Stream audiobooks and podcast episodes with synced progress
- Download books and episodes for durable offline playback
- Use chapters, bookmarks, sleep timer, playback speed, and player controls
- Manage backups, API keys, users, logs, and server settings when your account has permission
- Review listening sessions and other admin screens available to your account
- Customize sorting, display preferences, and playback settings

Requirements
- An Audiobookshelf server you can sign in to
- Android 10 or newer

ShelfDroid does not provide media, hosting, or a managed server. You bring your own Audiobookshelf library and account.

Versions

Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.

Download F-Droid
  • Version 0.6.1 (25) suggested Added on Oct 01, 2026

    arm64-v8a armeabi-v7a x86 x86_64

    This version requires Android 10 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • android.permission.ACCESS_LOCAL_NETWORK
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "dataSync"
      Allows the app to make use of foreground services with the type "dataSync"
    • run foreground service with the type "mediaPlayback"
      Allows the app to make use of foreground services with the type "mediaPlayback"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • read audio files from shared storage
      Allows the app to read audio files from your shared storage.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • dev.halim.shelfdroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 8.8 MiB PGP Signature | Build Log

  • New in version 0.6.0
    What's new:
    • Home sorting now supports duration, date added, author, and last progress update.
    • New library administration screens let you browse server folders, create and edit libraries, reorder them, and configure scanning and scheduling.
    • Add Item Metadata Utils implementation
  • Version 0.6.0 (24) - Added on Sep 12, 2026

    arm64-v8a armeabi-v7a x86 x86_64

    This version requires Android 10 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • android.permission.ACCESS_LOCAL_NETWORK
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "dataSync"
      Allows the app to make use of foreground services with the type "dataSync"
    • run foreground service with the type "mediaPlayback"
      Allows the app to make use of foreground services with the type "mediaPlayback"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • dev.halim.shelfdroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 8.7 MiB PGP Signature | Build Log

  • New in version 0.5.1
    What's new:
    • Allow login through local network.
    • Switching accounts and logging out now cleanly reset local app data and playback state.

    Fixes:
    • Fixed the Home screen sometimes appearing blank after API calls.
    • Fixed crashes and loading issues caused by missing optional library item information.
    • Fixed login access settings being restored or reset incorrectly when changing servers.
  • Version 0.5.1 (23) - Added on Aug 16, 2026

    arm64-v8a armeabi-v7a x86 x86_64

    This version requires Android 10 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • android.permission.ACCESS_LOCAL_NETWORK
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "dataSync"
      Allows the app to make use of foreground services with the type "dataSync"
    • run foreground service with the type "mediaPlayback"
      Allows the app to make use of foreground services with the type "mediaPlayback"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • dev.halim.shelfdroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 8.2 MiB PGP Signature | Build Log