▶Aura Install on your TV ITDemo samudev
ANDROID TV · KOTLIN + JETPACK COMPOSE FOR TV · v1.0

Your NAS becomes a streaming platform.

Aura automatically finds the UGREEN NAS on your local network via DLNA/UPnP, reads movies and TV series and presents them the way a streaming platform would: hero banner, poster rows, detail view with seasons, built-in player. No local copies, no cloud.

Aura — project card
0 copiesdirect streaming from the NAS, nothing leaves home
Depth 6recursive scan of DLNA folders
3 levelsHome → Series detail → Player
AES-256preferences and credentials encrypted on the device

From network discovery to poster, in six steps

Every launch runs the same pipeline: the library builds itself, even with "dirty" file names from old releases.

SsdpDiscovery.discover()

DLNA discovery

UDP multicast M-SEARCH with MulticastLock: finds the MediaServers on the network, including the UGREEN NAS running UGOS Pro.

ContentDirectoryClient.browse()

Reading the library

UPnP Browse action over SOAP with recursive scanning and folder path tracking.

DidlParser.parse()

DIDL-Lite parsing

XML responses become MediaItem objects, with handling of the dc:/upnp: prefixes.

FilenameParser.parse()

Name cleanup

"Il.Padrino.1972.iTALiAN.DVDRip.avi" becomes title + year; the S01E01 and 1x01 patterns identify episodes.

LibraryRepository.classify()

Classification

Movies and episodes are told apart by the path (S1, Season 1, Stagione 1) and by parsing the file name.

TmdbClient.lookup()

Metadata and covers

Poster, plot, rating and year from TMDB. If the title is not recognised, a cover with a deterministic gradient takes its place — with the golden "generated" badge.

Made for the couch, built to last

Native Compose for TV interface, remote-control navigation, ExoPlayer (Media3) player for mp4, mkv, H.264 and H.265.

📡

Zero configuration

No IP address to type: the NAS is discovered on its own. Just be on the same network, without AP isolation.

🎞️

Hero banner and rows

Streaming-style home with a featured banner, horizontal rows for movies and series, cards with poster and rating.

📺

Detail view with seasons

Each series has its own screen with a tab per season and an episode list, rebuilt from the folder structure.

🎨

Generated covers

Title not recognised? Aura draws a cover with a gradient and text, so the library stays uniform.

▶️

Built-in player

ExoPlayer plays by direct HTTP streaming from the NAS: the file starts right away, with no intermediate downloads.

🔑

Optional TMDB key

The key lives in local.properties, outside the source code. Without a key the app still works, with generated covers.

Everything stays on your local network

Streaming happens entirely inside your home: files do not pass through any external server. The only outgoing requests are metadata lookups to TMDB, if the key is configured.

  • Credentials and last-used server encrypted with AES-256 (EncryptedSharedPreferences)
  • No telemetry, no account, no proprietary cloud
  • Aura only plays files you already own: it neither provides nor distributes content
  • No AI system in the app

Two ways to get it onto your TV

The package is an Android Studio project ready to open (JDK 17, Android Studio Giraffe or later). The first Build/Sync is the real test: check the versions in gradle/libs.versions.toml and the TMDB key.

METHOD A · RECOMMENDED

Direct run via ADB

Enable Developer Options and USB/Wireless Debugging on the TV, then adb connect IP:5555 and Run from Android Studio. The app reaches the TV in a few seconds, logs included.

METHOD B

APK and sideload

Generate the APK with Build → Build APK(s) and install it via USB stick or the "Downloader" app, with unknown sources enabled on the TV.

Your library deserves a showcase.

Before opening Aura, prepare the NAS: enable the DLNA app from the UGOS Pro App Center and point it at your movie folders. Aura takes care of the rest.

Start with Method A
Samuele Rota
Made by samudev · Samuele Rota

I built Aura myself, on my own — and I'm looking for my first role as a junior developer.

I'm Samuele Rota, a self-taught full-stack developer: this is one of eight projects I designed, wrote and published end to end. If your company is looking for a junior who delivers, get in touch.