Version 1.6.0 Released
■ Easier first-time setup
On the first launch, the app now walks you through choosing what to share —
a folder or your device's media — offers ready-made Videos / Photos / Music
labels, and starts the server, so your TV can play your media right away.
Notification permission is asked only when the server first starts. Starting
the server with nothing shared now points you to adding a folder instead of
running an empty server.
■ Device name
On a new install, the server's device name now defaults to your phone's own
device name, so it is recognizable on the TV right away. Existing
installations keep their current name; you can change it any time in
Settings → Media server.
■ Library
"Select" on the Library tab now does more than playback: checking labels
shows an action bar that plays, groups, enables, disables or deletes them
at once — swipe it up to review the selection in play order. The label list
gains a name search box, and an open label can be duplicated to tweak a
copy of its rule.
■ Server status while starting
While a large library is read at server start (noticeable on USB hard
drives), the status and the notification now show "Reading your media
library…" instead of looking ready before players can see the server. On
the free version this read no longer freezes the app on first start.
■ Help
A new "Two ways to use it" section walks through two complete setups:
casting the phone's own media with smart labels, and serving a stored
library on USB storage (with its caveats).
■ Connection check
New "Connection check" in Settings: when a TV or player can't find the
server, it checks the common causes automatically — shared content, server
state, Wi-Fi, VPN, and whether the network blocks device discovery (router
"AP isolation") — and tells you what to do.
■ Clearer status when Wi-Fi is unavailable
"Waiting for Wi-Fi" now says why: on wired LAN, while the phone is a hotspot,
or with a VPN on mobile data, the status and the notification explain that the
server runs on Wi-Fi only and what to do. Help's troubleshooting section says
so too.
■ Free version transparency
When the free limit (up to 1,000 files of each type) leaves files unserved,
the app now says so instead of hiding them silently: the server card and the
Files tab show how many files players don't see, and tapping the notice opens
the Plus upgrade.
■ Debug log
The debug log (Log tab, opt-in) gains category filter buttons — All / HTTP /
Connections / Transfer / Cast / Library — and now records library scans:
how many files each shared folder contributed and how long the scan took,
plus the free-limit outcome. Useful for judging slow USB-drive scans.
■ Bug fixes / stability
The app download is now about 25% smaller, thanks to removing unused
resources from the release build.
Version 1.5.0 Released
■ Labels
New folder labels: pick a shared folder and it becomes a label. Everything
inside it — subfolders included — stays collected automatically as files are
added or removed. When creating one you choose which media to collect (all,
video, audio or image). Create one from "New label → Folder label", or add a
folder condition to any smart label from its advanced filters.
A folder label can now mirror the folder tree: choose "One per subfolder" when
picking the folder and you get one label per subfolder that holds media, nested
just like the folders themselves. Re-run it later and only the new folders are
added. Folder labels are now listed in name order by default.
New group labels: bundle existing labels into one. It plays its member labels
in the order you arranged them, and a file that appears in more than one label
plays once.
The Library tab can now filter the list by media type: tap Video, Audio or
Image to show only the labels for that kind of media (judged from each
label's settings), or All to show everything.
Every label now has a play button: tap it and the label plays as a playlist
on your player, right from the Library tab, with the player picker and
automatic server start built in. The list was also visually refreshed
to match the rest of the app.
Tapping a label now opens its contents: play from any file or use "Play
all"; editing and deleting moved into this view. A new "Select" mode plays
several labels as one queue, in the order you check them; a file that appears
in more than one label plays once.
■ Cast
Playlists now play gaplessly on players that support it: the next track is
handed to the player in advance, so the silence between tracks is gone. Players
that don't support it fall back to the previous behaviour automatically.
Each connected player now has a settings button in the player list. If automatic
detection gets a player wrong, you can override gapless, seeking, or the volume
scale by hand; the choice is remembered per player. Leave everything on Auto and
nothing changes.
When the selected player declares its supported formats, the Files list shows
only the files that player can play, the label list hides labels whose kind of
media the player can't receive, and a note shows how many were hidden. The
selected player's row lists the media types it accepts (video / audio / image)
at a glance. Players that don't declare their formats keep showing everything.
While something is casting, a mini player now stays at the bottom of every
tab: it shows the current track, the player and the queue position, with
play/pause and next buttons. Tap it to open full controls — play/pause,
stop, previous/next, seek and volume — for every player that is playing,
so several players are controlled from any screen. The label name shown
there is a shortcut: tap it to open the label at the playing track.
On-screen volume is now adjusted with −5/−1/+1/+5 buttons instead of a
slider, so a slip of the finger can't jump an amplifier to full volume.
Picking a player is now a chip at the top of the Library and Files tabs that
opens a player list, instead of a list always taking up the screen. The app reconnects to
the last player automatically, and players that are already playing are
marked in the list — playing on several players at once keeps working.
Starting playback now also starts a stopped server automatically, after a
one-time confirmation (a setting turns this off).
Photos in a queue now play as a slideshow: each picture stays on screen for
the interval chosen in Settings (10 seconds by default) and then advances by
itself. Play/pause freezes the slideshow, and in a mixed queue photos advance
on the timer while music and videos advance at the end of the track as before.
■ Media
The debug log can now be filtered by text — type "[cast]" to see only the
cast entries, for example. Player discovery also logs each player it finds
by name, making "player not found" issues easier to pin down.
The accessed-media list can now be filtered by device: when several players
have fetched media, chips at the top narrow the list to one of them, and
players known from cast discovery appear by name.
■ UI
The tabs were reorganised around your content: the app now opens on the
Library (your labels), followed by Files for browsing everything shared and
the Log; the server controls and settings moved to a Settings tab
(the former Media tab is now called Log). The former
CAST tab is gone — its playback controls live in the mini player's panel
(now with a tappable queue list), and the player picker opens from the
connection chip on the Library and Files tabs, or automatically when you
press play.
On phones the app now stays in portrait. The landscape layout was too cramped
to use on small screens. Tablets still rotate freely and keep the side-by-side
landscape layout.
The How-to-use screen now explains casting, and the Files tab has a help
button that jumps straight to that section — the same way the Library tab
does for labels.
The How-to-use and Open Source Licenses screens now use the same edge-to-edge
display as the rest of the app on all Android versions.
■ Performance
The app is now built with updated optimization tools, reducing memory use and
improving performance.
Version 3.2.0 Released
■ Automation
A Quick Settings tile lets you start or stop the server with one tap — add it from your Quick Settings edit screen (it stays greyed out until you have shared a folder). Automation apps like Tasker can also start, stop, or toggle the server; see Settings → About → How to use for the intent actions.
■ Security / stability
Hardened the file server against a malformed upload request that could make it stop responding, and an upload cut off midway no longer leaves a partial file behind. HTTPS now uses only TLS 1.2 / 1.3 (older, weaker versions are refused). Digest Authentication was also strengthened so a captured request can no longer be replayed indefinitely or reused against a different path.
■ Digest Authentication
Your username and password are now kept in a separate area that is excluded from cloud backup and phone-to-phone transfer, so the server password no longer leaves the device (the HTTPS private key was already protected this way). Also, if Digest Authentication is on but the password is left empty, the server now refuses every request until you set one — previously it fell back to a blank default that anyone on the network could get past. Set a username and password to serve files.
■ Media sharing
The "Use MediaStore" option now shares external storage only — internal system media (ringtones and other bundled files) is no longer served. Settings also states more clearly, and warns when you turn it on, that this shares every readable image, audio and video file on external storage, not just your selected folders.
■ Bug fixes / stability
Fixed a rare crash when tapping "Official website" or the privacy-policy link on a device that has no app able to open a web link; a short message is now shown instead.
■ File sharing
Media files on USB / removable storage whose file type Android does not report are now served with the correct type (derived from the file extension), so browsers can play or display them instead of only offering a download. Non-standard type names Android sometimes reports (for example for .m4a music) are also corrected to the standard ones, so those files play in the browser instead of failing or downloading.
■ Performance
The app is now built with updated optimization tools, reducing memory use and
improving performance.
Version 1.2.0 Released
■ Cast (new, beta)
A new CAST tab turns the app into a UPnP remote: pick a player on your
network (a DLNA TV, an AV receiver, Kodi, …), tap one of your shared files
and it plays there — with play/pause, seek and volume controls. Your labels
work as playlists: pick a label, tap "Play all" (or any item) and the tracks
play in the label's order, advancing automatically with previous/next
controls. Files the selected player cannot handle are marked "not supported",
and each player keeps its own playback state, so you can switch between
players (or leave the tab) without losing what's playing where. While casting,
a media notification on the shade and lock screen offers play/pause, next/
previous and stop without opening the app, and the hardware volume keys
adjust the player's volume. The server streams the files directly, so keep it
running while casting.
■ Quick Settings tile and automation
You can now start and stop the media server from a Quick Settings tile — add
the "Simple UPnP Server" tile to your Quick Settings panel. Automation apps
(Tasker, MacroDroid) and adb can also start, stop or toggle the server via
intent actions; see Help → Automation.
■ Stability
Opening the Website or Privacy Policy link in Settings (and the system settings
screens offered from permission dialogs) no longer crashes on devices with no
app able to handle the link (for example, no or a disabled browser); a message
is shown instead.
■ Security
The media server now rejects HTTP requests with oversized headers, so a
misbehaving or malicious client on the network can no longer tie up the server
with a pathological request.
■ Bug fixes / stability
Fixed an issue where, after the device woke from sleep, the media server could
stay paused as "Wi-Fi changed" even though you were still on an allowed Wi-Fi
(when "Only on selected Wi-Fi networks" is enabled). The server now tells this
apart from a real network change, keeps re-checking, and resumes automatically
when you open the app.
Version 3.1.0 Released
■ Downloads
You can now download a whole folder as a single ZIP file. Open a folder in the browser and tap "Download this folder as ZIP"; the archive is built on the fly and streamed, so nothing extra is stored on the device. Sub-folders are included. A new "ZIP folder download" setting lets you turn the feature off — the link disappears from folder pages and ?zip requests fall through to the normal listing.
■ Shared folders
Each shared folder now has a switch in Settings to allow or block writes individually. Turn it off to keep a folder read-only even while uploads are on globally — handy when you want to share one folder for upload and others for download only.
■ HTTPS
You can now run HTTP alongside HTTPS. In Settings, the new "HTTP" and "HTTPS" categories collect each scheme's settings together; when HTTPS is on, the "HTTP listener" option lets you also serve plain HTTP on the regular port, or redirect HTTP to HTTPS with a 307 Temporary Redirect (so a multipart upload reaches HTTPS without losing its data). When the HTTP listener is in serve mode, the certificate download URL is also reachable over plain HTTP, which makes the first-time trust-install easier. The MAIN screen shows both URLs when both schemes serve content, and an "Active listeners" row in Settings shows which listeners are actually bound.
■ Accessibility
Tap targets on the per-folder Read/Write switch and the URL Copy / QR / Share buttons now meet the 48dp minimum, and the outlined buttons on the MAIN screen and the EditText hint colour in Settings dialogs were pinned to values that clear WCAG AA contrast. No visible change if things already worked for you — this closes recurring Google Play accessibility warnings.
■ Default HTTP port
Fresh installs now default to port 8080 (the conventional HTTP alternate) instead of 12345. Existing installs keep whatever port you set — only new installs see the change.
Version 1.1.0 Released
■ Display / Android 15
Improved edge-to-edge display so the app draws correctly behind the status and
navigation bars on Android 15 and newer, and removed use of display APIs that
Android 15 deprecated.
■ Settings
Added a "Website" link in Settings, under About.
■ Media details
Media now carries richer details — track length, artist, album, track number and
video/photo resolution — so players can display and sort them properly (for
example, playing an album in track order). This works both for your device's
managed media and for files in your shared folders, including media on USB / SD
storage; for shared folders the details are read on demand as you browse.
■ Shared folders
Hidden and system files (such as .DS_Store, ._* and Thumbs.db) are now excluded
from shared folders by default, so they no longer clutter your players. You can
turn this off under Settings → Shared Folders.
■ Labels
You can now create a label in one tap from a preset — Videos, Photos, Music,
Recently added, This week, This month, or This year — and tweak it afterwards.
The "recently added / this week / this month" presets keep up to date as time
passes.
In a manual label, you can drag the files you picked into the order you want them
to play in.
A label's contents can now be ordered by track number (album order) or shuffled,
in addition to name, date and size.
■ Free version
The free version now shares up to 1000 each of images, audio and video (was 50).
A one-time Plus purchase still removes the limits and the single-source cap.
■ Bug fixes / stability
Fixed an issue where the server could be hard to find from some players (such as
VLC): it now keeps announcing itself on the network at short intervals, so players
that are already open discover it within about a minute — without having to
restart the server.
Fixed media on USB / external drives shared from a folder not appearing in smart
labels on some devices: media files are now recognized by their file extension
even when the storage doesn't report a media type, so they show up in labels and
are served with the correct type.
Version 3.0.0 Released
■ HTTPS
You can now serve over HTTPS (TLS). Turn on "Use HTTPS" in Settings to encrypt the connection. The app creates a self-signed certificate on this device, so a browser shows a one-time security warning on a local network — this is expected. Settings shows the certificate's SHA-256 fingerprint (tap to copy) so you can verify it. To remove the warning, trust the certificate on the client: save it with "Download certificate", or open the certificate URL shown in Settings (https://PHONE-IP:8443/.well-known/server-cert.crt) from the client. The certificate is valid for the address shown on the MAIN screen, so connect using that address; if the device's IP changes, the certificate is reissued and must be installed again. Only self-signed certificates are supported — you cannot install your own CA-issued certificate.
■ Uploads
You can now upload files from a browser into your shared folders. Turn on "Allow uploads" in Settings, then use the upload box shown at the top of any writable folder's page. Existing folders added by an earlier version are read-only — remove and add them again to allow uploads. Files are never overwritten: an upload whose name already exists is saved as "name (1)", "name (2)", and so on. If you enable uploads without authentication, anyone on your network can add files, so consider turning on Digest Authentication (or HTTPS).
■ Help
Added a "How to use" guide under Settings → About, covering getting started, uploads, command-line examples for uploading with curl, and HTTPS (the certificate warning, verifying the fingerprint, installing the certificate, and curl's -k / --cacert options).
■ Accessibility
Settings rows now meet the minimum touch-target size, so every row is easier to tap. The app bar's title and subtitle now grow with your system font-size setting instead of being clipped. Text contrast was improved for links, section headings, the selected navigation tab, and snackbar action buttons so they meet WCAG AA.
■ Update notices
After updating, a short "What's new" summary now highlights new features and things to watch out for. When you turn on uploads, the app also points out any existing folder that is still read-only, so you know to remove and add it again.
Version 2.2.0 Released
■ Compatibility
Updated to target the latest Android (Android 16) and switched to an edge-to-edge layout that draws under the transparent status and navigation bars.
■ MediaStore
"Use MediaStore" now asks for media access the moment you turn it on, so the listing isn't silently empty. If access is denied or has been revoked, the setting row and a snackbar make the missing permission visible with a shortcut to the app's permission screen.
■ About
Added an "Open source licenses" entry under Settings → About that lists the bundled third-party libraries and shows the full Apache License, Version 2.0 text. A "More apps from us" link is also shown on the main screen, pointing to the developer's other apps.
■ Bug fixes / stability
Seeking deep into a video over HTTP no longer slows down with offset — the server now seeks in constant time for file-backed responses, instead of reading-and-discarding from the start of the file.
A transient network error while accepting a new connection no longer kills the server: the listener now backs off briefly and keeps serving.
■ Performance
File transfers use a larger 64 KB copy buffer instead of 4 KB, raising per-connection throughput on large files (especially helpful for video streaming).
Version 1.0.0 Released
■ Media server (UPnP)
Works as a UPnP media server: TVs, game consoles, and players (such as VLC and
Kodi) on the same network discover it and browse and play your shared folders and
managed media (photos, music, video) directly — including seeking. You can set a
device name shown to clients and limit DLNA to chosen Wi-Fi networks (e.g. only at
home). The server also shows its own app icon in the device list, so it is easy to
spot among other media servers. Photos, music and videos you add to or remove from the device are picked up
automatically — players that refresh see the change without restarting the server.
External subtitles are picked up too: a subtitle file placed next to a video with
the same name (e.g. movie.mp4 + movie.srt) is offered to the TV automatically.
Music shows its embedded album art and photos show thumbnails in the client's
browse view, so lists look right instead of blank. When you share your device's
media, a "Music" section also lets clients browse it by Album, Artist or Genre,
not just by folder.
■ Local network only
The server listens on Wi-Fi only and is never exposed over mobile data, so your
media stays on your home network.
■ Labels
A Labels tab lets you tag your media and browse it by label on DLNA. Create smart
labels just by typing a plain search — for example "2024 videos trip -mp4" — that
matches on filename words, year or date range, media type, and file extension. Put
a minus in front of any term to exclude it — a type, an extension, or a filename
keyword (e.g. "-mp4", "-work") — with a live preview of what matches as you type;
finer filters (source folder/category, exact dates) stay in a collapsible Advanced
section. Or create manual labels, where you hand-pick files: browse folders, or use
the same search and advanced filters to narrow a flat list and tick the ones you
want — your picks stay selected as you change the filter, and you can add or remove
all current matches at once. Each label appears as a virtual folder on DLNA,
gathering every matching file regardless of where it is stored. Sort a label's
contents by name (natural order, so "file2" before "file10"), date or size —
ascending or descending — or leave it in the default order. A switch on each label
hides it from DLNA without deleting it. Use "/" in a label's name to nest it — e.g.
"Trips/2024/Japan" shows up on DLNA as folders Trips → 2024 → Japan.
■ Media diagnostics
A Media tab lists the media that DLNA clients have actually fetched, aggregated
per file — each with a thumbnail and badges for resolution (4K / FullHD / HD, with a
"+" when it is close but not exactly that standard), video and audio codec, and the
requesting client (PlayStation, VLC, Kodi, …), plus a playback-compatibility hint
that flags formats many TVs can't play (e.g. HEVC, MKV, DTS, 4K) so you can tell at
a glance which files are likely to fail. Tap an item for the full technical
details — handy for working out why a particular player refuses to play a file. The
detail view also shows two small graphs of the file's recent transfers — throughput
over time and the read position within the file — making it easy to tell smooth
streaming apart from a player stalling on a spot it can't decode (the read position
stays flat while throughput stays high). A raw access log is available as an optional
developer view (Settings → "Show debug log").
■ Performance
Media streams to players with a generous buffer, raising throughput for smoother
playback of high-bitrate video.
■ Free version & Plus
The free version shares one source (a single folder or MediaStore) and up to 50 each
of images, audio and video. A one-time Plus purchase removes these limits. Labels
are unrestricted.
■ Getting started & permissions
On first run the app points you to the one step that gets DLNA going — pick a folder
to share. Permissions are now asked only when a feature actually needs them: the
photos/music/video permission is requested when you turn on sharing your device's
media, not up front on first launch.
■ Help & licenses
A "How to use" guide under Settings → About walks you through the basics in three
steps — sharing media and playing it on a TV — with an overview of Labels plus a few
tips and troubleshooting notes. The Accessed media and Labels screens also have a
help (?) button that explains what they do on the spot. An "Open Source Licenses" screen lists the open
source libraries the app is built with and their licenses.
■ Appearance
Material 3 (Material You) design with a violet accent and an edge-to-edge layout for
modern Android. Choose the app's theme — follow the system, always light, or always
dark — under Settings → Appearance.
■ Reliability
Settings apply to the running server instantly — no manual restart. The status on
the main screen updates the moment the server starts, stops, or hits an error. When
a Wi-Fi change pauses DLNA (or Wi-Fi drops out), the main screen turns the indicator
amber and explains what happened. When you restrict UPnP to specific networks, you can
optionally also verify the access point (BSSID), not just the network name, to
block a look-alike Wi-Fi that reuses a trusted name; and the app now prompts you
to turn on Location Services when they are off and the network name can't be read.
DLNA no longer pauses for a moment when the device wakes from sleep just because
the Wi-Fi name isn't readable for an instant — it waits for the network to settle
and stays up if you're still on the same Wi-Fi. When the server stops or the
network changes, it tells DLNA clients to drop it
reliably, so a stale "ghost" entry does not linger on TVs and players; and a
settings change (such as turning a label on or off) refreshes the content without
making the server vanish and reappear in the client's device list. You can optionally
have the server push updates to players, so a player that supports it refreshes the
open folder the moment your shared content or a smart label changes — off by default,
since some players don't subscribe to these notifications.
Version 2.1.0 Released
■ Tablet UI
On large landscape screens, the server controls and the log are shown side by side instead of leaving the extra width empty. A Settings button swaps the right pane between the log and settings.
■ Refreshed main screen
The main screen has a cleaner look: a coloured status banner showing whether the server is running, the address with one-tap Copy / QR / Share, and Start/Stop and Restart buttons.
■ Shared folders
You can now mark one shared folder as the root with a radio button. Its contents are served directly at "/", and the other folders appear beneath it as subfolders. With no root selected, behaviour is unchanged.
■ Browsing
Directory listings are now readable on phones: they fit the screen width with larger text, full-width tappable rows, and follow the device's light/dark theme.
■ Other
The privacy policy link now opens a page in your device's language (Japanese or English).
■ Bug fixes / stability
Fixed a crash that could occur when the server started, especially via launch-on-open.
On tablets, rotating from landscape to portrait no longer leaves the bottom tab out of sync with the screen being shown.
Version 2.0.4 Released
■ Accessibility
Improved contrast for section headings, bottom navigation labels, the server status banner, and URL links so the UI passes WCAG AA. Added labels to the input fields in the settings dialogs (port number, content provider prefix, Digest auth username/password) so screen readers can announce them. The "Add folder" row is now taller to meet the minimum tap target size.
■ Settings
Editing a setting while the server is running now shows a Snackbar with a Restart action so the change can be applied immediately, instead of silently waiting for a manual restart.
■ Bug fixes / stability
- Files whose names contain '+' or '%' now open correctly.
- Adding or removing shared folders is reflected immediately without restarting the server.
- Large POST request bodies are no longer buffered into memory.
- Cleaner server shutdown: no stray worker threads, and quick stop→start cycles no longer hit "Address already in use".
- mDNS (Bonjour) advertising registers cleanly after server toggles.
Version 2.0.2 Released
■ QR code
Each server URL now has a QR button. Tap it to display a scannable QR code — useful for quickly connecting phones and tablets without typing the address.
■ Share URL
Each server URL also has a Share button to send the address via any installed app (messaging, clipboard managers, etc.).
■ Translations
UI now available in German, French, Spanish, and Brazilian Portuguese, in addition to English and Japanese.
■ Bug fixes
Fixed a crash on tablets in landscape orientation (NullPointerException in activity layout).
Version 2.0.1 Released
■ Bug fixes
Fixed a crash (NoSuchMethodError) when browsing directory listings on Android 12 and earlier.
Fixed a foreground service error (ForegroundServiceStartNotAllowedException) on Android 14 and later, caused by the 6-hour time limit on dataSync services.
Version 2.0.0 Released
■ Multiple shared folders
You can now add multiple folders to serve over HTTP. Each folder appears as a top-level directory in the browser.
■ Storage Access Framework
Folder selection now uses the system file picker — no special storage permissions required.
■ Network interface selection
Choose which network the server listens on: Wi-Fi only (default), all networks, or localhost only.
■ Material Design 3 UI
Bottom navigation, refreshed log screen, and improved layout.
■ Privacy policy
In-app link added under Settings → About.
■ Bug fixes
Improved HTTP Range request handling (fixes video seek in some players). Fixed notification icon display on Android 5+.