Jdiesel 1500 Posted 1 hour ago Posted 1 hour ago (edited) Hi everyone, I've been slowly learning and building something I'm excited to finally share with this community. It's called Embrr, a from-scratch Android TV client for Emby, written in Kotlin with Jetpack Compose for TV, Hilt, Retrofit, Coil, and Media3 ExoPlayer. This post is a sneak peek only. Embrr is still in active development, but I'm planning a limited beta test in the near future for Emby forum members who want to kick the tires and give feedback. I'll share signup details in a follow-up once the build is stable enough for outside testers. For now, I want to show what's coming and what makes Embrr different. What sets Embrr apart from the official Emby app: Smart bandwidth monitoring & connection-quality health checks Embrr watches your network conditions in real time and adapts. A connection-quality health check runs during playback so transcode decisions, bitrate caps, and direct-play fallbacks are made against your actual current throughput, not a static setting you configured once and forgot. Bad Wi-Fi? Embrr notices and degrades gracefully instead of stalling into an endless buffer. Embrr doesn't just trust the "max streaming bitrate" number you set once in a menu and hope for the best. Here's how it works. In the background, Embrr requests a representative chunk of real media bytes from your Emby server over the same HTTP path a transcode or direct-stream would use — same TLS, same reverse proxy, same CDN hop, same server-side decode overhead. That's the critical difference from a generic bandwidth test: it measures the end-to-end path your video actually travels, including any buffering, contention, or transcoding latency the server introduces under load. A plain ping or throughput test to a fast CDN won't tell you that your Emby box is choking on a transcode at 9 PM when the whole house is streaming. From those probes Embrr computes a sustained-throughput figure with headroom built in, it doesn't recommend right at the measured ceiling, because real-world bandwidth varies second to second and a recommendation that stalls into buffering is worse than one that plays cleanly at a lower bitrate. The result is an accurate, current bitrate recommendation tuned to your setup right now: a wired gigabit link to a local server will get a very different recommendation than Wi-Fi across the house to a remote Emby instance through a tunnel. That recommendation then feeds directly into the playback decision engine, direct-play vs. transcode, and which transcode bitrate cap to request so the choice is made against live conditions rather than a stale config value. If conditions degrade mid-session, Embrr notices and can renegotiate down instead of endless buffering. If you'd rather force a fixed cap, that's still available in settings; the adaptive mode is opt-in but on by default. "What to Watch" wizard + natural-language search, powered by an LLM Can't decide what to watch? Embrr's guided wizard walks you through a handful of branch-aware questions (format commitment, mood, intensity, dealbreakers, language preferences, etc.) and returns six ranked picks, each with a human-readable explanation of why it matched you, plus vibe tags. The questions adapt based on your prior answers, so you never get conflicting or redundant prompts. Prefer to just describe what you're in the mood for? The natural-language search takes a free-text query ("something atmospheric and slow-burn, foreign language, under two hours") and returns the same kind of ranked, explained results. Both paths are powered by an LLM via a companion Emby server plugin (Embrr-Helper) so the heavy lifting happens server-side. Library view with hero sections Library browsing isn't a flat grid. Embrr uses a dynamic, per-user home screen driven by your Emby home-section configuration, with hero backdrops, resume rows, next-up, latest media, and per-library rows. Library views lead with a hero section so the first thing you see is a cinematic backdrop of a featured item, not just a wall of posters. It's all designed on finding something to watch with the fewest clicks possible. Last.fm top tracks & popularity metadata For music libraries, Embrr enriches albums and artists with Last.fm top-track rankings and popularity signals. Instead of just listing tracks in album order, you get a sense of what's actually popular with other listeners. It makes music browsing feel curated rather than just a file listing. Music mini-player When you play music, Embrr keeps it in a mini-player that persists while you browse. Track info, and controls docked and visible without taking over the screen. You can keep exploring your library while your music keeps playing What's next A limited beta is coming soon. If you'd like to be considered, keep an eye on this thread. I'll post beta signup instructions once the build is ready for outside testers. Feedback from this community will directly shape what ships first. Happy to answer questions about architecture, the Embrr-Helper plugin, or anything else. Thanks for reading, and thanks to the Emby team for building such a great server to build a client against. Edited 1 hour ago by Jdiesel 2
IAmHugh 82 Posted 22 minutes ago Posted 22 minutes ago (edited) 50 minutes ago, Jdiesel said: Smart bandwidth monitoring & connection-quality health checks I like that with a recent issue I ran into with buffering issues in Emby. 50 minutes ago, Jdiesel said: powered by an LLM Now that's a no go. Need to ask even though the Emby devs will probably have strokes, are you including a per library search and perhaps a proper search for settings? Thanks Edited 18 minutes ago by IAmHugh
Jdiesel 1500 Posted 20 minutes ago Author Posted 20 minutes ago 1 minute ago, IAmHugh said: I like that with a recent issue I ran into. Now that's a no go. Completely optional. If you don't configure it, it's not available.
IAmHugh 82 Posted 4 minutes ago Posted 4 minutes ago Please reread my previous post. I edited it for clarity.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now