Skip to content

Repository files navigation

PlayOnDlna

🌐 Official website · 🌶️ Spicy Sources · 📝 Tech blog · 📥 Download on F-Droid

📦 Version: 16 (1.15) ⚙️ Build-Tool: Gradle 8.14.3

✨ Highlights

Your media. Your player. Your network.

  • 🌍 More than YouTube — Share links from YouTube, YMusic, PeerTube, SoundCloud, Bandcamp, and media.ccc.de
  • 🎧 Video and audio — PlayOnDlna prepares compatible media, cover artwork, and subtitles for your DLNA player
  • 🎶 Playlists that just work — Enjoy continuous playback even when your player has no native playlist support
  • 📚 Your personal media library — Keep prepared videos and audio ready to play again whenever you like
  • 📡 Effortless discovery and control — Find compatible players automatically and control playback from the app
  • 🔒 Local by design — Media is served directly from your Android device over your local network

No account, no ads, and no complicated setup—just share a link, choose a player, and enjoy.

📱 Description

Play your media ad-free on DLNA players such as Kodi and Smart TVs in your local network! Simply share a supported media link with PlayOnDlna. The app prepares compatible video or audio and streams it directly to your selected player.

Supported sources include YouTube, YMusic, PeerTube, SoundCloud, Bandcamp, and media.ccc.de.

🔧 How it works

  1. Resolve the shared link. NewPipe Extractor reads the media information and provides the available video, audio, and subtitle streams.
  2. Prepare a compatible file. PlayOnDlna selects suitable streams, fetches them to the Android device, and uses FFmpeg to combine separate video and audio tracks. If necessary, incompatible audio is converted to AAC.
  3. Serve and play it locally. The app starts an HTTP server on the Android device, sends the local media URL and metadata to the selected player via UPnP AVTransport, and the player streams the prepared file directly from the device over the local network.

There is no cloud relay or separate media server to configure. For more background, read A media link is not a stream on the Spicy Sources tech blog.

🤖 Android Configuration

  • Application ID: io.github.scovillo.playondlna
  • Compile SDK: android-36
  • Min SDK: 26
  • Target SDK: 36

PlayOnDlna runs on Android 8.0 and newer.

The global configuration android:usesCleartextTraffic="true" is needed to communicate with DLNA devices in the local network and is never used in the public internet context.

The app is built entirely on free software libraries. All dependencies are compatible with the GNU GPLv3 license. The app itself is licensed under the GNU GPLv3. See the THIRD_PARTY_LICENSES.md for full license information.

🎁 Support PlayOnDlna

PlayOnDlna is free, open source, and developed independently.

If the app is useful to you, you can support its continued development with a voluntary donation.

Donations help with:

  • Maintenance, bug fixes, and new features
  • Testing on different devices and DLNA players
  • Continued development of this free and open-source project

PlayOnDlna will remain fully usable without any donation.

Donate using Liberapay

Donate using GitHub Sponsors

Donate using PayPal

You can also support the project without donating:

  • ⭐ Star the project on GitHub
  • Share PlayOnDlna with others
  • Send feedback or bug reports
  • Contribute code or translations

Thank you for every kind of support! ❤️

🛠️ Build Instructions

./gradlew build

📚 Dependencies

  • androidx.core:core-ktx:1.10.1
  • androidx.core:core-splashscreen:1.0.1
  • androidx.lifecycle:lifecycle-runtime-ktx:2.6.1
  • androidx.activity:activity-compose:1.8.0
  • androidx.compose:compose-bom:2024.09.00
  • androidx.compose.ui:ui:unspecified
  • androidx.compose.ui:ui-graphics:unspecified
  • androidx.compose.ui:ui-tooling-preview:unspecified
  • androidx.compose.material3:material3:unspecified
  • androidx.recyclerview:recyclerview:1.4.0
  • androidx.navigation:navigation-compose:2.9.3
  • androidx.datastore:datastore-preferences:1.1.7
  • androidx.appcompat:appcompat:1.7.1
  • androidx.lifecycle:lifecycle-viewmodel-compose:2.9.4
  • androidx.compose.material:material-icons-extended-android:1.7.8
  • io.github.scovillo:ffmpeg-kit:1.15
  • com.arthenica:smart-exception-java:0.2.1
  • org.nanohttpd:nanohttpd:2.3.1
  • com.github.teamnewpipe:NewPipeExtractor:v0.26.3
  • com.squareup.okhttp3:okhttp:4.12.0
  • com.arthenica:ffmpeg-kit-custom:main

📄 License

PlayOnDlna - An Android application to play media on dlna devices Copyright (C) 2025 Lukas Scheerer

Licensed under the GNU General Public License v3.0

You should have received a copy of the GNU GPL v3 in the LICENSE file along with this program. If not, see https://www.gnu.org/licenses/

About

Play videos ad-free on any DLNA devices (e.g. Kodi, SmartTVs) in your local network!

Topics

Resources

Stars

135 stars

Watchers

5 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages