Skip to content

Also available: a show or season copy shows no runtime (#814) - #897

Merged
GLinnik21 merged 2 commits into
mainfrom
fix/814-alt-runtime
Oct 22, 2026
Merged

GLinnik21 merged 2 commits into
mainfrom
fix/814-alt-runtime

Conversation

@GLinnik21

Copy link
Copy Markdown
Owner

Closes #814

What was wrong

Both screenshots in the report are show pages. On a show page, "Also available" looks up plex://show/… on each server, and each row printed the show container's Metadata.duration. That value is the metadata agent's nominal per-episode runtime: a rounded figure that differs per server and matches no episode. So the rows read "49 min" / "1 h 40" beside a hero showing the next episode's real 45 / 48 min.

Measured on a real PMS with GET requests only:

  • Shows read 49 min with episodes of 42–54 min, and 2 min with episodes of 1–2 min.
  • For movies and episodes, Metadata.duration equals /library/metadata/<rk> and every Media.duration.

About's "Runtime" row had the same flaw on show and season pages.

Fix

  • New predicate metadata::has_runtime(kind): false for show, season, artist, album, collection and playlist.
  • alt_copies_from, the projection extracted from resolve_alt_sources so it can be tested, gives a container copy no runtime. The row's existing empty-slot rule leaves the sub-line to the owner alone.
  • About prints Runtime for leaf items only. This drops its old fallback to the first episode's runtime on a season page, which named one episode's length as the season's.

Verification

  • alt_runtime_tests: 3 tests. Before the fix: FAILED. 1 passed; 2 failed. After: ok. 3 passed.
  • a_show_or_season_has_no_runtime_row_and_a_leaf_keeps_its_own: FAILED, then ok.
  • make check passes, and make check-nodef is clean. No capture or replay anchor changed.

🤖 Generated with Claude Code

…minal duration is no episode's (#814)

The cross-server projection is now a pure fn (alt_copies_from), and one predicate
(metadata::has_runtime) decides leaf vs container for both the rows and About's Runtime.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@GLinnik21
GLinnik21 enabled auto-merge (squash) October 22, 2026 12:35
# Conflicts:
#	rust-modules/screens/src/detail/about.rs
@GLinnik21
GLinnik21 merged commit 2302e3e into main Oct 22, 2026
19 checks passed
@GLinnik21
GLinnik21 deleted the fix/814-alt-runtime branch October 22, 2026 13:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Wrong video duration in "Also available" menu

1 participant