Linthra is an open-source, offline-first music player for Android. Play the
music stored on your device without an internet connection or a Linthra
account. Optionally connect to your own Jellyfin, Navidrome / Subsonic, or
Plex server to browse and stream your personal music library.
Linthra is an independent community client and is not affiliated with
Jellyfin, Navidrome, Subsonic, or Plex.
What Linthra offers:
* Local music playback: select a music folder or use the optional
"All music on this device" library, with support for common audio formats
including MP3 and FLAC.
* Browse songs, albums, and artists; search your library and use playlists,
favourites, queue / Up Next, shuffle, and repeat.
* Connect to self-hosted music servers when you want to stream your own
collection, including over HTTPS.
* Download selected tracks for offline listening with a configurable cache.
* Background playback with notification, lock-screen, Bluetooth, headset,
and Android Auto media controls.
* Album artwork, synced lyrics where available, and optional Chromecast
playback to compatible devices.
Privacy first:
* No ads, tracking, analytics, or telemetry SDKs.
* No Linthra cloud account and no forced synchronization.
* Your local files stay on your device. Network connections are optional
and used for the self-hosted sources and features you choose.
* Licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later), so anyone can inspect, build, and contribute to the code.
Linthra is actively developed, and some features depend on your Android
device or the capabilities of your connected music server. If something
does not work as expected, you can report it through the GitHub issue tracker.
Donate
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
-
x86_64
This version requires Android 7.0 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.
-
allow Wi-Fi Multicast reception
Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode.
-
run foreground service
Allows the app to make use of foreground services.
-
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.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
io.github.thezupzup.linthra.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
27 MiB
PGP Signature
|
Build Log
-
arm64-v8a
This version requires Android 7.0 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.
-
allow Wi-Fi Multicast reception
Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode.
-
run foreground service
Allows the app to make use of foreground services.
-
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.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
io.github.thezupzup.linthra.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
25 MiB
PGP Signature
|
Build Log
-
armeabi-v7a
This version requires Android 7.0 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.
-
allow Wi-Fi Multicast reception
Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode.
-
run foreground service
Allows the app to make use of foreground services.
-
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.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
io.github.thezupzup.linthra.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
23 MiB
PGP Signature
|
Build Log
-
x86_64
This version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
allow Wi-Fi Multicast reception
Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode.
-
run foreground service
Allows the app to make use of foreground services.
-
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.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
io.github.thezupzup.linthra.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
26 MiB
PGP Signature
|
Build Log
-
arm64-v8a
This version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
allow Wi-Fi Multicast reception
Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode.
-
run foreground service
Allows the app to make use of foreground services.
-
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.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
io.github.thezupzup.linthra.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
25 MiB
PGP Signature
|
Build Log
-
armeabi-v7a
This version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
allow Wi-Fi Multicast reception
Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode.
-
run foreground service
Allows the app to make use of foreground services.
-
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.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
io.github.thezupzup.linthra.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
23 MiB
PGP Signature
|
Build Log
-
x86_64
This version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
allow Wi-Fi Multicast reception
Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode.
-
run foreground service
Allows the app to make use of foreground services.
-
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.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
io.github.thezupzup.linthra.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
26 MiB
PGP Signature
|
Build Log
-
arm64-v8a
This version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
allow Wi-Fi Multicast reception
Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode.
-
run foreground service
Allows the app to make use of foreground services.
-
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.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
io.github.thezupzup.linthra.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
24 MiB
PGP Signature
|
Build Log
-
armeabi-v7a
This version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
allow Wi-Fi Multicast reception
Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode.
-
run foreground service
Allows the app to make use of foreground services.
-
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.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
io.github.thezupzup.linthra.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
22 MiB
PGP Signature
|
Build Log