Rivulet is built for Apple TV first. I care a lot about its speed, performance, and simplicity in tvOS.
If you like it, please share it around.
This project is opinionated. All suggestions and ideas are always welcome, but please don’t be offended if I decline an enhancement or feature suggestion.
A camel is a horse designed by a committee. I don’t want Rivulet to be a camel.
I began this project in Decemeber 2025. At the time there was quite a lack of Plex player alternatives, especially for tvOS (not much so anymore). My goals for the app were/are:
- 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.
- 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.
- Apple-Esque: I enjoy Apple’s designs and apps, and enjoy the challenge of creating an app that feels native to the Apple ecosystem.
Rivulet works with several kinds of Live TV source. You don't need a Plex or Jellyfin server. Add just a Live TV source and the app opens straight to Live TV.
This is a fun one. Open insights from the bottom row buttons while playing media. You get trivia about the movie or episode you’re watching: production stories, casting, adaptation changes, fan lore, and more.
Playback runs on AetherEngine.
The iOS app follows the Apple TV app and should have all the features one needs. It shares the same Core code as the tvOS app.
[!IMPORTANT]
Rivulet is free, but not for sale.
Licensed under PolyForm Noncommercial 1.0.0. You may clone it, run it, modify it, share it, and contribute back for personal, educational, research, hobby, or any other noncommercial use.
You may not sell Rivulet, charge for access to it, or bundle it (or any derivative of it) into a paid app, product, or service. Anything derived from this code inherits the same restriction. I'd rather give this away than watch someone else charge for it.
Requires Xcode 27. Copy the secrets template once (placeholder values are fine), then open the project:
cp RivuletCore/Config/Secrets.swift.template RivuletCore/Config/Secrets.swift
open Rivulet.xcodeproj
Rivulet is the tvOS scheme and Rivulet iOS is the iPhone and iPad scheme. Rivulet/ holds the tvOS app, RivuletiOS/ the iOS app, and RivuletCore/ the code both share. See CLAUDE.md for the architecture.
Found a bug? Open an issue and pick the platform (tvOS or iOS). If the same bug shows up on both, open one issue per platform so each fix is tracked on its own.
I welcome all contributions from any level of developer. I welcome contributions from LLMs too as long as they are checked and tested.
If you do contribute, please build and test on an actual Apple TV. The simulator is close, but does not mimic the Apple TV fully.
By submitting a pull request, you agree to license your contribution under the same terms as Rivulet (PolyForm Noncommercial 1.0.0, see LICENSE).
Rivulet is licensed under the PolyForm Noncommercial License 1.0.0.
Everything here is free to use, read, fork, and build on. The only thing you can't do is sell it. I'd rather give this away than watch someone else charge for it.
In short: clone it, run it, modify it, share it, contribute back, for personal, educational, research, hobby, or other noncommercial use. You may not use Rivulet (or anything derived from it) for commercial purposes, including selling it, charging for access to it, or bundling it into a paid product or service.
This restriction is not decorative. If you ship Rivulet's code (in whole or in part, modified or not) inside something you sell, you are infringing the copyright in this project. If you spot a commercial app built on this code, please open an issue so it can be reported to the relevant platform (App Store, GitHub, etc.).
Third-party components retain their original licenses. FFmpeg is included under LGPL-2.1+; libdovi under MIT. See LICENSE for details.
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|