Own your Feed
Documentation
Everything ApexPlayer does and how to use it — connecting a server, getting playback right, fixing subtitles, and what each setting actually changes.
Getting started
ApexPlayer plays media from a server you run. Before you start, make sure your ApexFeeder, Plex, Jellyfin or Emby server is switched on and reachable from the same network as your device.
- 1 Open ApexPlayer and go to Settings → Servers → Add Server.
- 2 Wait a moment while ApexPlayer scans the network. Servers that answer appear in the list, labelled by type.
- 3 Pick your server. If it did not appear, choose to enter an address manually and type the server URL.
- 4 Sign in. Each server type has its own flow — see the table below.
- 5 Your library syncs and you land on Home.
| Server | How you sign in | Discovery port |
|---|---|---|
| ApexFeeder | A four-digit code, approved in ApexFeeder's own admin UI on the machine it runs on | 27359 |
| Plex | A link code entered at plex.tv/link | 32414 (GDM) |
| Jellyfin | Username and password | 7359 |
| Emby | Username and password | 7359 |
Adding a second server needs no extra setup. Every connected server stays active, and their libraries merge into one — there is nothing to nominate as primary and no server picker to switch between.
ApexFeeder
ApexFeeder is our own media server, and it is free. It works differently from Plex, Jellyfin and Emby: rather than asking you to build and curate a library, it serves connected folders. You tell it where your media is — including cloud storage — and it does the rest.
It is optional. ApexPlayer works exactly the same against Plex, Jellyfin or Emby, and you can run ApexFeeder alongside them. Full setup and configuration is documented on ApexFeeder's own pages; what follows is what matters from the player's side.
- Connected folders
- A folder on the machine ApexFeeder runs on — an internal drive, an external one, a mounted network share.
- Connected cloud accounts
- Dropbox, OneDrive and Google Drive. Link the account and ApexFeeder reads what is in it; your files stay where they are.
- One merged library
- Local and cloud sources are combined into a single catalogue. ApexPlayer sees one library, not a source per provider.
- Metadata and artwork
- ApexFeeder scrapes posters, backdrops, descriptions, cast and episode data for everything it finds, and holds it all in one place.
Identification works off your filenames, and the parser handles the conventions people actually use — plain titles, titles with a year, scene release names, Season folders and SxxExx numbering:
Movies/
Pulp Fiction (1994).mkv
The.Matrix.1999.1080p.BluRay.x264-GROUP.mkv
TV/
The Wire/
Season 01/
S01E03.mkv - Titles are looked up on TMDB, which is where the posters and descriptions come from.
- When ApexFeeder is unsure — two films share a title, or a year does not line up — the file lands in a Review tab with its best guess, and confirming is one click.
- A confirmed match is locked and no later scan second-guesses it, even if you rename the file.
- Nothing is ever written to your media folders.
ApexFeeder always direct-streams and never transcodes. That keeps it fast and simple, but it means playback compatibility is on you: the file has to be in a format your Apple TV, iPhone, iPad, Mac or Vision Pro can decode natively. An exotic codec or container that your device does not support will fail to play, where a transcoding server would have quietly converted it. If a file will not play, that is almost always why.
- Pairing is approved locally. The app shows a four-digit code that has to be approved in ApexFeeder's own admin UI, on the machine ApexFeeder is running on. It cannot be approved remotely.
- It is discovered like everything else — a broadcast on port 27359, no Bonjour required.
- There is no ApexFeeder account. The only cloud accounts involved are the storage providers you choose to connect.
Because ApexFeeder only direct-streams, the Advanced playback overrides do not apply to it — there is nothing to negotiate. They still apply to Plex, Jellyfin and Emby.
Your library
ApexPlayer keeps a local cache of your library so browsing is instant rather than a request per screen. The cache refreshes when the app syncs with your server. The library grid, shelves and detail screens are native UIKit, which is why focus and scrolling stay responsive on a large library.
- Sort order
- Recently Added, Alphabetical, or Release Date. Settings → General → Library Sort Order.
- Filters
- The sidebar filters narrow the grid to a library, genre or collection without leaving the screen.
- Favorites and watched
- Both write straight back to your server, so the state matches everywhere else you watch.
- Detail layout
- Modern is a collapsing cinematic hero, Minimal strips it back, and Premium keeps a fixed hero with cast and related shelves scrolling below. Settings → General → Content Detail.
Playback
Every playback request tells your server what this specific device can handle. When the server can send the file as-is, it does — that is direct play. When it cannot, it transcodes. Getting the device profile right is what keeps you on the fast path.
- Detected automatically
- Hardware HEVC and AV1 decode, the maximum channel count of your current audio route, and Dolby Vision / HDR10 output eligibility.
- Advanced overrides
- Settings → Playback → Advanced forces any of those on or off, for when a TV or receiver misreports what it supports.
- Bitrate cap
- Also under Advanced. Set a ceiling in Mbps for constrained connections; unlimited by default.
- Scrub previews
- Hold the scrub bar for a thumbnail of the frame you are heading to. Uses Jellyfin trickplay data; titles without it scrub normally.
- Autoplay next episode
- On by default, and it only fires when an episode reaches its real end — pausing never triggers it.
If something transcodes when you think it should not, Advanced is the first place to look — a capability switched off there, or a bitrate cap left low, will do it every time.
Subtitles
ApexPlayer renders text subtitles itself instead of handing them to the system player. That is what makes the timing adjustable — and it is why the appearance settings exist at all.
- Preferred language
- Settings → Playback → Subtitle Language picks a track automatically when one matches. Forced-only is a separate switch.
- Sync tool
- In the player drawer. The video keeps playing while you shift the track: 0.1-second fine steps, 1-second jumps. Save keeps the offset, Cancel puts it back.
- Find Subtitles
- Searches OpenSubtitles for what you are watching and loads a track into the current session. No setup needed; sign in for your own download quota.
- Appearance (Pro)
- Text size, color, background style and screen position. Subtitles themselves work identically without Pro.
Image-based subtitles (PGS, VOBSUB) and burned-in tracks are drawn by the player or your server, so the sync and appearance controls do not apply to them.
Settings reference
- General
- Appearance (Default, Light, Dark), background style, content detail layout, library sort order, and iCloud sync — on by default.
- Playback
- Audio, subtitle and metadata language, forced subtitles, autoplay next episode, subtitle appearance, OpenSubtitles sign-in, and the Advanced device-profile overrides.
- Servers
- Add, edit, re-authenticate or remove servers, and add one manually by address. Every server listed here is live at once; removing one takes its titles out of the merged library and leaves the rest untouched.
- Storage & Data
- Cache management, plus Share Diagnostics & Crash Reports — off unless you turn it on, and on-device even then.
- ApexPlayer Pro
- Purchase, restore, and what the unlock covers.
- About & Support
- Version, feedback, and links out.
Interface languages available today: English, Español, Français, Deutsch and 日本語, plus Auto, which follows your system setting.
Free and Pro
ApexPlayer Pro is a one-time purchase of $9.99, not a subscription, and it covers your family through Family Sharing. The free version is a real, working player — the limit is how much of your library it caches, not what it can do.
| Free | Pro | |
|---|---|---|
| Cached library | 10 movies, 1 series | No cap |
| Connected servers | Unlimited | Unlimited |
| Playback, HDR, surround | Yes | Yes |
| Subtitle sync and search | Yes | Yes |
| Subtitle size, color, position | No | Yes |
Already bought it and switched devices? Settings → ApexPlayer Pro → Restore Purchase, signed in with the same Apple ID.
Privacy in one paragraph
ApexPlayer has no backend, no account system and no analytics. Server credentials live in your device Keychain. Settings sync through your own iCloud account. Diagnostics are off by default and stay on the device when enabled. The only outbound connections are to your own servers, to plex.tv when you sign in to Plex, and to OpenSubtitles when you search for subtitles.
FAQs
No. It is a client, not a service. ApexPlayer plays what is on a server you run — ApexFeeder, Plex, Jellyfin or Emby. It does not host, index, provide or help you find any content.
ApexFeeder is our own media server, and it is free. Unlike Plex or Jellyfin it does not ask you to build a library — you connect folders and it serves them. Those folders can be on the machine it runs on, or in Dropbox, OneDrive or Google Drive, and it merges all of them into one catalogue with artwork and metadata it fetches itself. It is entirely optional; ApexPlayer works the same against Plex, Jellyfin or Emby.
No. ApexFeeder is free. ApexPlayer Pro is a separate, optional one-time purchase that affects the app, not the server.
Yes — connect the account and the files in it become part of your library alongside anything on local drives. You do not download or duplicate anything to make that work, and in ApexPlayer there is no distinction between a film stored locally and one stored in the cloud.
Movies go straight into a movies folder named after the film, like /Movies/Arrival.mkv. TV goes in a folder per show, with episodes named by season and episode number, like /TVShows/Severance/01_02.mkv. That is what the metadata scraper matches against — files it cannot match still show up, just without artwork until the name is corrected.
Almost certainly format compatibility. ApexFeeder always direct-streams and never transcodes, so the file has to be something your Apple device can decode natively. A container or codec your Apple TV does not support will fail rather than being converted for you — that is the trade for how fast and simple direct streaming is. Re-encoding that file, or serving it through Plex, Jellyfin or Emby instead, both solve it.
There is no account, because there is no ApexPlayer server to hold one. You sign in to your own media server, and those credentials are stored in your device Keychain, scoped to your user profile.
No. ApexPlayer Pro is a single $9.99 unlock that stays unlocked, and it works with Family Sharing. There is no recurring charge, because there is no ongoing cost on our end to justify one.
The size of the cached library: your 10 most recently added movies and 1 most recently added series. Nothing else changes. Playback, subtitles, subtitle search, scrub previews, favorites and watched state all behave normally on whatever is shown, and you can connect as many servers as you like.
Discovery broadcasts on the local network, so it needs the device and the server on the same subnet with the server answering on its discovery port — 7359 for Jellyfin and Emby, 32414 for Plex, 27359 for ApexFeeder. VLANs, guest networks and access-point isolation all block that. You can always add the server by typing its address instead.
Something in the device profile is telling your server it cannot send the file as-is. Check Settings → Playback → Advanced: a codec switched off, an audio channel limit, or a low bitrate cap will each force a transcode. Clearing an override returns that field to what the device actually reports. This only applies to Plex, Jellyfin and Emby — ApexFeeder never transcodes at all.
Open the sync tool in the player drawer. The video keeps playing while you shift the track — 0.1-second steps for fine work, 1-second jumps to get close fast — so you line it up by eye and save.
Scrub previews come from image data your server generates ahead of time. ApexPlayer reads Jellyfin trickplay today; Plex BIF support is planned. If your server has not generated it for that title — or does not support it — the scrub bar simply works without the preview.
No. Find Subtitles works immediately. Searching is unlimited; downloads draw on a shared daily quota. Signing in with your own OpenSubtitles account under Settings → Playback gives you your own quota instead.
No. There is no analytics, no telemetry and no crash-reporting service. The Share Diagnostics toggle under Storage & Data is off by default, and even when you turn it on it only writes crash information to your device's own system log — nothing is transmitted anywhere.
Yes, as many as you like, on both free and Pro, and mixing types is fine. They all stay active and their contents merge into a single library — there is no primary server to nominate and nothing to switch between. A Plex box, a Jellyfin box and an ApexFeeder instance simply appear as one catalogue you browse and search together.
Yes, if iCloud sync is on — it is by default. Settings sync through your own iCloud account. Server credentials, being Keychain items, are entered on each device.
Where your hardware and display do. ApexPlayer measures decode support and audio channels directly and works out HDR output eligibility from the device, then tells your server. If your setup is unusual, the Advanced overrides let you state the truth by hand.
Didn't find it?
Ask in Discord. If enough people hit the same thing, it ends up on this page.
ApexPlayer Pro is a one-time $9.99 unlock. No subscription, no account, no backend.