Introducing Canopy+

github

A Plex frontend for tvOS

100% native SwiftUI, with a poster-centered interface that feels right at home on Apple TV. All UI is 100% human-coded.

Supports Movies and TV Shows

Canopy+ only supports movie and TV libraries. However, it has full extras, reviews, and cast information for movies and TV!

Integrates with Prowlarr and Seerr

Canopy+ can connect to Prowlarr and Seerr to enable one-click streaming of titles not in your library! Note: Canopy+ cannot search or download illegal content. It can only display results from a self-hosted Prowlarr instance.

Designed for videophiles

The most discerning Plex users play back their media on CoreELEC or Nvidia Shield, but who wants to browse their library on a laggy Android TV box with a 1080p SDR UI? Canopy+ supports PKC Companion and custom webhooks so you can control which playback device you'd like to use for every possible format. Home Assistant no longer required!

Add to Watchlist

Trying to decide on something to watch with your friends? Press and hold on a movie or TV show to add it to your watchlist for the evening before you whittle it down and decide!

Integrated with Infuse Beta

If enabled, can play HDR10+, Dolby Vision (Profiles 5/8), and Dolby Atmos (eAC3 only) media files in Infuse Pro. Does not support sessions or watched status syncing yet.

Custom Labels and Tags Beta

Add labels to display warnings or info, such as for media produced with generative AI.

Getting Started

Just install the app from the App Store and log in using the same account and server as the official Plex app on your Apple TV (and Shield, if using!). By default, pressing "Play" will open the official Plex app and begin playing your media!

Support

Questions? Feedback? Open an issue on GitHub!

AI Disclosure

The vast majority of Canopy+ is human-coded, including 100% of the UI. However, AI was used to help integrate Canopy+ with services like CPlus, Prowlarr, Seerr, and Plex Discover (separate from your Plex library; Plex Discover uses an undocumented and messy API).