-
Notifications
You must be signed in to change notification settings - Fork 1
Plex Media Server
URL can also point at a Plex Media Server:
tvdinner 'plex://host:port?X-Plex-Token=...'
Use plexs:// instead of plex:// if the server is served over
https. Plex is the odd one out among tvdinner's sources: there's no
live channel list or EPG at all — it's a library browser instead,
entirely on-demand.
Finding your token: play anything in Plex Web, open your browser's
dev tools → Network tab, and look for X-Plex-Token=... in any
request's query string (or see
Plex's own instructions).
On connecting, tvdinner lists the server's movie and TV-show libraries as a full-screen overlay, plus a synthetic On Deck row first — pulled from Plex's own server-wide on-deck feed (movies you left partway through, and the next unwatched episode of any show you're partway through), so picking up where you left off doesn't need navigating into a specific library first. In the On Deck row an episode is shown under its season poster rather than an episode screengrab — an at-a-glance "which show am I mid-way through" cue. Everywhere else (inside a season's own episode list, search results) an episode keeps its own still.
Each row shows its poster/cover art plus year, content rating, Plex's
own audience score, and (for a movie or episode) resolution
(1080p/4K/SD), all straight from Plex with no extra lookups:
-
UP/DOWN/PGUP/PGDWN— move the selection -
ENTER— drill in (library → show → season → episode) or play a movie/episode -
ESC/LEFT— go back a level, or close the browser from the top level -
l— reopen the browser later, right back where you left off (not the library root) — even after starting playback -
g— switch between Grid view (large poster tiles, the default) and List view (a scrolling row per item); your choice persists as you keep browsing - Any letter/digit (except
g/h/v/l/y) — jump to the next title starting with it, while browsing a flat list of movies or shows specifically -
/— search the whole server via Plex's own search API, not just what's on screen -
y— filter by release year instead: every movie, show, and individual episode (matched by its own air date, not the show's premiere year) across every library released that year, movies always ahead of TV -
h— favorite the selected movie or show (never a season or episode);vshows only favorited movies/shows -
ENTER(hold) — on a movie, show, or episode: a small menu ("Play from Start" — bypasses any resume position, "Mark as Watched", "Mark as Unwatched")
Playback is always direct-play — the file's own container/codecs, streamed straight from Plex. tvdinner never asks Plex to transcode, so a file mpv can't decode on its own won't play here even if it would in Plex's official apps.
Once something's playing, i shows a poster/synopsis/rating/
director/progress overlay pulled from Plex's own metadata, plus a
technical-details block (container, video/audio bitrate, every
audio/subtitle track the file has). Resuming and reconnecting on a
dropped connection work the same as any other
on-demand source — with one Plex-specific
twist: the first time you play something tvdinner has no local
resume position for yet, it falls back to Plex's own reported
progress instead, so picking up something you left partway through
in Plex's official apps resumes from there too, not just from where
tvdinner itself last left off.
When the source file has real embedded chapters (e.g. a Blu-ray/DVD
rip), they show as tick marks on the progress bar, and UP/DOWN
preview the next/previous chapter instead of doing a plain seek — a
small panel shows its thumbnail (Plex's own, when it generated one, or
a frame grabbed on the fly otherwise) and title without seeking yet.
Keep pressing UP/DOWN to move further through the list, ENTER to
jump there immediately, ESC to cancel, or just stop pressing keys
for a couple of seconds to jump there automatically. Turn this off
with --no-chapter-skip to get mpv's plain 60-second seek instead.
When Plex's own intro/credits detection has run on the item's library
(a Plex Pass feature — most libraries don't have this enabled, so
don't be surprised if it never shows up), a small "Skip Intro"/"Skip
Credits" prompt appears while playback is inside one of those windows,
confirmed with j or ENTER (--no-skip-markers to turn it off).
When a TV episode plays through to a real end, an "Up Next" prompt
offers the next episode with a cancellable countdown (ESC to cancel;
--no-autoplay-next-episode to disable it entirely,
--autoplay-countdown-seconds to change how long it waits).
Playback is reported to Plex's server as a real session — the same
timeline API Plex's own Web/mobile apps use — so what's playing via
tvdinner shows up in Plex's own dashboard and in third-party tools
like Tautulli, and Plex's watched status/resume position for the item
gets updated too. On by default; --no-plex-activity turns it off
(reading Plex's own watched/resume status is unaffected either way).
Browsing a show plays a short loop of its theme music, the same
ambience the official Plex clients add to a show's library page —
starts after a brief pause on a show (so it doesn't fire while quickly
scrolling past it) and fades out on navigating away or picking
something to actually watch, via a second, fully separate audio-only
mpv instance so it never interferes with anything actually playing.
On by default; --no-plex-theme-music to turn it off.
Unlike every other source, ESC/GO_BACK and BS behave specially
in a Plex session: with nothing open (just watching), GO_BACK (and
BS) stop the current item and drop you back into the library browser
exactly where you left off, rather than quitting tvdinner outright —
there's always a browser to fall back into here, so "stop" means "stop
this and pick something else." See the
Keybindings Reference for the full picture.
Like the Xtream Codes/Stalker Portal cases, a plex:// URL's token is
stored as plain text wherever the source URL itself is stored (a saved
bookmark's bookmarks.json, backup
archives); it's shown redacted (first four characters kept, the rest
masked) in the log file.
- VOD Browsing & Resume — how resume/reconnect works in general.
- Casting to Chromecast — casting a Plex item works the same as any other.
- Keybindings Reference