Jump to content

Embrr — A Premium Android TV Client for Emby


Recommended Posts

Jdiesel
Posted (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.    

                                                              screenshot.thumb.png.a5250641fc81d9d0ade5195c4aed6af2.png                                                                                                                                   
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.                                                                                                                                                                        
screenshot11.thumb.png.21ac0977c422f6f2e7db94ddb7204834.png                                                                                                                                                                                                                                                                                                                   
     

"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.                                               screenshot9.thumb.png.17f38e074a72b5c196d44380bc939021.png                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                   
 

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.

screenshot2.thumb.png.6d5e1305945a6ae52752fe7ccf7123ca.png

 

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.                                                                                                                                                                                                                       screenshot4.thumb.png.c56670bfe6fbde686e368475226d48c4.png                                                                                                                                                                                                                                                  

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                                                                                                                                                                                                screenshot8.thumb.png.593471e0a70670e6367917f979d98b9e.png                                                                           
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

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.                  

screenshot3.png

screenshot5.png

screenshot6.png

screenshot7.png

screenshot10.png

screenshot12.png

Edited by Jdiesel
  • Like 1

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...