Over the past few months I developed an Apple Watch app that connects to Plex so you can stream or download your audio library directly from your watch (TestFlight here if you’re interested).
While developing that app, I started considering developing an open source Apple TV app as well. The official Plex app is fine, but there are a few bugs that have never been addressed or fixed, and I am sick of my HomePod sitting useless because the Plex app cannot play to it correctly.
To solve my problems and have some fun, I have created Rivulet, a native tvOS app.
This project has fairly opinionated designs and logic, with a few focal points:
Simplicity - What is the best design to get me to the media I want to watch.
Live TV - Plex’s live TV is, to put it nicely, sub-par. I’ve spent too long trying to get it to work well for me (kudos if you don’t have this problem). I don’t want live TV in a separate app, so this solves my problems. You might could use this just for live tv. Go for it.
HomePod Integration - The Plex app has never worked well when setting HomePod as the default audio output on my Apple TV. It hurts to have a HomePod sitting there collecting dust while my sub-par tv speakers play sound. This app helps the hurt.
Vertical Scrolling - I have never liked scrolling sideways. I use horizontal scrolling for some of the “infinite” lists, but use vertical scrolling whenever practical.
Apple-esque - I like most of Apple’s designs. I want this to feel somewhat native.
I tried TestFlight version. Looks good. But it seems not working with Airplay. I use Airplay to stream Apple TV audio to other audio device. All apps on Apple TV work but this app has no audio output and it seems Airplay mode is not engaged with this new app.
It’s still being developed and I’m not planning on stopping. I haven’t released anything in a little over a month but have still been working on it (if you check the GitHub you can see some recent commits). I’m doing a bit of a makeover on some of the home page UI, but my main focus has been creating a custom video player using FFMPEG and AVSampleBufferDisplayLayer (MPV and AVPlayer both have limitations that are frustrating).
When the new video player is done, this should be as good as Infuse for playing videos (maybe better for some DV files), while having an interface tailored to Plex.
Also I’m a big believer in open source projects and will never put any of this behind a paywall, so if ever there comes a day I stop developing, someone else can pick up where I leave off.
You would become my absolute hero if you could get the watch app to play videos. Seems like it should be doable as I have YouTube apps on the watch that not only play video fine, but they allow me to change resolutions and quality. Plex has the ability to transcode, too.
My mind is blown! I just tried it on your update and it seems to work amazingly! I did not think you were going to pull that off, wow! Is there a way to access my “On Deck/Continue Watching”? I only changed to a different library and tried pulling up a video from there. Incredible work!
Have you looked at the GitHub to see if this has already been reported? I submitted a bug for this same thing for ‘Remote’ LiveTV viewing. Local LiveTV works fine for me, albeit it is not using Plex Server and goes directly to the HDHR.
If this was meant for me, I can add details to the GitHub issue if you’d like…
when ‘Remote’ (not on LAN), all LiveTV channels fail with the MPV error.
when ‘Local’ (same LAN as PMS & Tuners) LiveTV plays fine.
I was thinking this has something to do with the way Rivulet does not play liveTV from Plex itself, and actually starts the feeds from my HDHR’s. being that when I am local, it can see my tuners made me think that was the case for it to fail 100% when not on the same network as the tuners.
Yes, all LiveTV plays correctly via the official plex AppleTV app, both local and remote.
You are my hero! I can’t wait to show this off to some friends and blow their minds Having the Up Next/On Deck will make it super useful to sneak in a few minutes of watching shows here or there from wrist. I’ll be tripping you!