Skip to content

feat: add direct play and 4K streaming guide sections#1

Merged
bakerboy448 merged 4 commits intomainfrom
feat/4k-direct-play
Mar 12, 2026
Merged

feat: add direct play and 4K streaming guide sections#1
bakerboy448 merged 4 commits intomainfrom
feat/4k-direct-play

Conversation

@bakerboy448
Copy link
Copy Markdown
Contributor

@bakerboy448 bakerboy448 commented Mar 12, 2026

Summary

  • Adds Direct Play section — general guidance on getting the best streaming quality (set quality to Original, use native app, check transcoding status)
  • Adds 4K Streaming section — specific 4K considerations: device compatibility table, bandwidth requirements, why transcoding 4K is counterproductive
  • Two distinct sections that reference each other naturally
  • Controlled by has_4k_content variable (default: true)

Changes

  • plex-guide/docs/index.md — two new sections between Smart TV Limitations and More Help
  • plex-guide/mkdocs.sample.yml — new has_4k_content variable
  • plex-guide/setup.sh — prompt and config update for has_4k_content
  • README.md — variable reference updated

Checklist

  • Template builds successfully (mkdocs build)
  • Variables render correctly (no raw {{ }} in output)
  • Conditional sections toggle cleanly
  • setup.sh still works (if modified)
  • README updated (if new variables or features added)
  • markdownlint passes
  • shellcheck passes

Summary by CodeRabbit

  • Documentation

    • Added Direct Play (Best Quality) and 4K Streaming guides with setup tips, device/quality guidance, direct-play checks, transcoding troubleshooting, bandwidth recommendations, and a quick reference.
    • Added top-of-doc badges and a Theme Features section describing improved navigation, instant loading, search suggestions/highlighting, and enhanced code UX.
  • Chores

    • Added user-facing toggles (enabled by default) and initial setup prompts to show or hide the Direct Play and 4K Streaming sections.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 12, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6dd75cb4-986d-4bcd-a780-e931a63d7721

📥 Commits

Reviewing files that changed from the base of the PR and between b5c81c2 and 7c4d931.

📒 Files selected for processing (1)
  • CLAUDE.md
✅ Files skipped from review due to trivial changes (1)
  • CLAUDE.md

📝 Walkthrough

Walkthrough

Adds two new optional feature flags (has_direct_play, has_4k_content), surfaces them in sample config and interactive setup, and inserts conditional Direct Play and 4K Streaming documentation sections into the docs and README.

Changes

Cohort / File(s) Summary
Docs: Direct Play & 4K content
plex-guide/docs/index.md
Added two large conditional sections (Direct Play / Best Quality and 4K Streaming), duplicated in two gated locations; includes guidance, direct-play checks, device and bandwidth notes, and quick reference content.
Configuration & README
README.md, plex-guide/mkdocs.sample.yml
Added has_direct_play: true and has_4k_content: true under extra in sample config; enabled theme features including navigation.instant and content.code.annotate; added three badges to README.
Interactive Setup
plex-guide/setup.sh
Added two interactive boolean prompts (has_direct_play, has_4k_content) and wired them into configuration update steps.
Minor formatting
CLAUDE.md
Whitespace/formatting adjustments around an existing code block.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped in docs to plant two seeds,
Flags for Direct Play and 4K feeds,
Setup asks kindly, config lights the way,
Streams sing clearer — bright pixels at play. ✨📺

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main changes: adding two new documentation sections (Direct Play and 4K Streaming guide sections) that are the primary substantive addition across multiple files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/4k-direct-play

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
plex-guide/docs/index.md (1)

537-538: Minor: Consider moving the separator inside the conditional block.

When has_4k_content is false, this results in two consecutive --- separators (one at the end of Smart TV Limitations and this one), creating extra whitespace. This is a cosmetic issue but could be cleaner.

🔧 Suggested fix
 | Watch 1080p if 4K transcodes | Force 4K on a device that can't handle it |

+---
+
 {% endif %}
----
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@plex-guide/docs/index.md` around lines 537 - 538, The trailing horizontal
rule is rendered unconditionally after the `{% endif %}`, causing duplicate
`---` separators when `has_4k_content` is false; move the `---` separator inside
the conditional that depends on `has_4k_content` (i.e., include the `---` before
the `{% endif %}` within the same block that renders Smart TV Limitations/4K
content) so the separator is only emitted when `has_4k_content` is true.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@plex-guide/docs/index.md`:
- Around line 537-538: The trailing horizontal rule is rendered unconditionally
after the `{% endif %}`, causing duplicate `---` separators when
`has_4k_content` is false; move the `---` separator inside the conditional that
depends on `has_4k_content` (i.e., include the `---` before the `{% endif %}`
within the same block that renders Smart TV Limitations/4K content) so the
separator is only emitted when `has_4k_content` is true.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a3459cab-6b9b-4ad0-bdbb-3a9b0e577533

📥 Commits

Reviewing files that changed from the base of the PR and between 516a316 and b586b33.

📒 Files selected for processing (4)
  • README.md
  • plex-guide/docs/index.md
  • plex-guide/mkdocs.sample.yml
  • plex-guide/setup.sh

Adds two new sections to the plex guide template:
- Direct Play: general guidance on getting the best quality
- 4K Streaming: specific 4K considerations, device compatibility, bandwidth

Controlled by has_4k_content variable (default: true).
Add has_direct_play variable to independently toggle the direct play
optimization section from the 4K streaming section.
Add build/lint/preview badges, document each Material for MkDocs theme
feature with descriptions. Add navigation.instant and
content.code.annotate to the template.
@bakerboy448 bakerboy448 force-pushed the feat/4k-direct-play branch from 8cfcff3 to b5c81c2 Compare March 12, 2026 05:15
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
plex-guide/docs/index.md (2)

532-539: Excellent summary table.

The Quick Reference provides an at-a-glance guide that reinforces the key advice from both new sections. The do/don't format is user-friendly and actionable.

Optional: Add cross-reference to Direct Play section

To complete the "natural reference" relationship mentioned in the PR objectives, consider adding a note above the Quick Reference:

!!! tip "See Also"
    For general direct play guidance on any quality, see [Direct Play (Best Quality)](`#direct-play-best-quality`) above.

### Quick Reference

This would help users navigate between the related sections.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@plex-guide/docs/index.md` around lines 532 - 539, Add the suggested "See
Also" tip above the "Quick Reference" table: insert a short tip block
referencing the existing "Direct Play (Best Quality)" anchor (use the link text
[Direct Play (Best Quality)](`#direct-play-best-quality`)) immediately before the
"Quick Reference" heading so users can easily navigate between the related
sections; ensure the tip uses the same markdown admonition style shown (e.g.,
!!! tip "See Also") and is placed directly above the table.

440-492: Excellent addition! Clear, actionable guidance.

The Direct Play section provides valuable user-facing documentation with practical steps and important warnings. The web browser transcoding caveat is particularly well-highlighted.

Minor enhancement: Add cross-reference to 4K section

Consider adding a cross-reference to help users with 4K content navigate between related sections:

After line 491, you could add:

!!! tip "Watching 4K Content?"
    See the [4K Streaming](`#4k-streaming`) section below for device requirements and bandwidth considerations.

This would strengthen the "natural reference" relationship mentioned in the PR objectives.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@plex-guide/docs/index.md` around lines 440 - 492, Add a short cross-reference
tip about 4K content immediately after the "Direct Play (Best Quality)" section
(i.e., just before the closing "{% endif %}" for that block). Insert an
admonition such as: '!!! tip "Watching 4K Content?" See the [4K
Streaming](`#4k-streaming`) section below for device requirements and bandwidth
considerations.' to point readers to the 4K Streaming section and improve
discoverability.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@plex-guide/docs/index.md`:
- Around line 506-513: Update the device capability table so it doesn't present
absolute Yes/No answers: change the "4K Direct Play" and "Lossless Audio" cells
(and the "HDR" column where applicable) to indicate "Depends on media
codec/container" or similar, and add a short clarifying sentence immediately
above or below the table stating that Direct Play support depends on the media's
video codec, audio codec, container, and subtitle format (e.g., TrueHD may force
transcoding on some devices); alternatively expand the table to include common
codec examples per device. Reference the table header ("Device | 4K Direct Play
| HDR | Lossless Audio") and update those cell values and the prose note
accordingly.

---

Nitpick comments:
In `@plex-guide/docs/index.md`:
- Around line 532-539: Add the suggested "See Also" tip above the "Quick
Reference" table: insert a short tip block referencing the existing "Direct Play
(Best Quality)" anchor (use the link text [Direct Play (Best
Quality)](`#direct-play-best-quality`)) immediately before the "Quick Reference"
heading so users can easily navigate between the related sections; ensure the
tip uses the same markdown admonition style shown (e.g., !!! tip "See Also") and
is placed directly above the table.
- Around line 440-492: Add a short cross-reference tip about 4K content
immediately after the "Direct Play (Best Quality)" section (i.e., just before
the closing "{% endif %}" for that block). Insert an admonition such as: '!!!
tip "Watching 4K Content?" See the [4K Streaming](`#4k-streaming`) section below
for device requirements and bandwidth considerations.' to point readers to the
4K Streaming section and improve discoverability.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ff24439c-6262-4762-a11c-46934fcbdbe3

📥 Commits

Reviewing files that changed from the base of the PR and between b586b33 and 8cfcff3.

📒 Files selected for processing (4)
  • README.md
  • plex-guide/docs/index.md
  • plex-guide/mkdocs.sample.yml
  • plex-guide/setup.sh
🚧 Files skipped from review as they are similar to previous changes (2)
  • plex-guide/mkdocs.sample.yml
  • plex-guide/setup.sh

Comment on lines +506 to +513
| Device | 4K Direct Play | HDR | Lossless Audio |
|--------|:-:|:-:|:-:|
| **Nvidia Shield TV Pro** | Yes | Yes | Yes |
| **Apple TV 4K** | Yes | Yes | Partial |
| **Fire TV Stick 4K Max** | Yes | Yes | No |
| **Onn 4K Google TV** | Yes | Yes | No |
| **Most Smart TVs** | Varies | Varies | No |
| **Web Browser** | No | No | No |
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Search for existing device capability references in the codebase
# and check if there's any version-specific documentation

rg -n "Shield TV Pro|Apple TV 4K|Fire TV Stick 4K Max|Onn 4K" --type md -C2

Repository: baker-scripts/docs-templates

Length of output: 1643


🌐 Web query:

Plex 4K direct play device compatibility 2026

💡 Result:

Plex doesn’t publish a single “4K Direct Play compatible devices” list for 2026—Direct Play is determined at playback time based on whether your client device/app supports the container + video codec + audio codec + subtitles you’re trying to play; otherwise Plex will Direct Stream (remux) or Transcode. [1]

Devices that are commonly recommended for 4K Direct Play (local network)

From Plex community support guidance, these external streamers are repeatedly recommended over most built-in TV apps for reliable 4K playback:

  • NVIDIA Shield TV / Shield TV Pro (Android TV)
  • Apple TV 4K
  • Amazon Fire TV Stick 4K Max (Gen 2)
  • Roku (e.g., higher-end models like Ultra)
    [2]

Common reasons your “4K” stops Direct Playing (even on good devices)

  • Unsupported audio (often the real culprit): if the client can’t bitstream/play the selected track (e.g., TrueHD / DTS variants), Plex may transcode audio and sometimes triggers other compatibility fallbacks. (General rule: any unsupported stream can force transcode.) [1]
  • Subtitles (burn-in): if the client can’t render the subtitle format, Plex may have to burn subtitles into the video, which forces transcoding. This is a frequent issue on some platforms (notably with image-based subs like PGS). [1][3]
  • Container mismatch: some clients/apps may not Direct Play certain containers (and will remux/Direct Stream instead). Plex’s “supported formats” guidance notes container limitations exist per app/platform. [4]

Practical “most compatible” 4K Direct Play media profile (works on the widest range)

If you’re building/ripping/encoding for maximum odds of Direct Play across devices:

  • Video: HEVC (H.265), Main10 for HDR where applicable
  • Audio: AAC / EAC3 (Dolby Digital Plus) often travels better than TrueHD/DTS-HD across TVs/streamers
  • Subtitles: SRT (text-based) whenever possible (avoid PGS when you want to prevent burn-in)
  • Client setting: ensure “Original” quality / Direct Play enabled (per-client setting)

If you tell me (1) your target playback device(s), (2) whether you need Dolby Vision/HDR10(+), and (3) whether you need TrueHD/DTS-HD passthrough, I can give a tighter “will Direct Play / will transcode” matrix for your setup.

Sources: Plex Direct Play/Direct Stream/Transcoding overview [1], Plex forum device recommendations for 4K playback (Dec 2025 thread) [2], discussion of PGS subtitle incompatibility causing transcoding [3], Plex “What media formats are supported?” (platform/container limits vary) [4].


Clarify that device 4K capabilities depend on media codec, not just device hardware.

The table presents device capabilities as absolute (Yes/No), but Plex Direct Play depends on the specific media format being played—video codec, audio codec, container, and subtitle format all matter. A device marked "Yes" for 4K Direct Play may still transcode if the media uses unsupported codecs (e.g., TrueHD audio on some devices). The "Lossless Audio" column is particularly problematic since support varies by audio codec, not universally by device. Consider either adding codec-specific details or noting that Direct Play outcomes depend on media format compatibility, not device capability alone.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@plex-guide/docs/index.md` around lines 506 - 513, Update the device
capability table so it doesn't present absolute Yes/No answers: change the "4K
Direct Play" and "Lossless Audio" cells (and the "HDR" column where applicable)
to indicate "Depends on media codec/container" or similar, and add a short
clarifying sentence immediately above or below the table stating that Direct
Play support depends on the media's video codec, audio codec, container, and
subtitle format (e.g., TrueHD may force transcoding on some devices);
alternatively expand the table to include common codec examples per device.
Reference the table header ("Device | 4K Direct Play | HDR | Lossless Audio")
and update those cell values and the prose note accordingly.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
README.md (1)

142-142: Consider hyphenating the compound adjective.

The phrase "full page reload" should be "full-page reload" when used as a compound adjective modifying the noun (reload).

📝 Suggested fix
-| `navigation.instant` | Loads pages via XHR without full page reload for faster navigation |
+| `navigation.instant` | Loads pages via XHR without full-page reload for faster navigation |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 142, Update the README table cell for `navigation.instant`
to hyphenate the compound adjective: change "Loads pages via XHR without full
page reload for faster navigation" to "Loads pages via XHR without full-page
reload for faster navigation" so the phrase "full-page" correctly modifies
"reload".
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@README.md`:
- Line 142: Update the README table cell for `navigation.instant` to hyphenate
the compound adjective: change "Loads pages via XHR without full page reload for
faster navigation" to "Loads pages via XHR without full-page reload for faster
navigation" so the phrase "full-page" correctly modifies "reload".

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 2bb76ed3-aa43-48da-a64b-0da8e68c55a1

📥 Commits

Reviewing files that changed from the base of the PR and between 8cfcff3 and b5c81c2.

📒 Files selected for processing (4)
  • README.md
  • plex-guide/docs/index.md
  • plex-guide/mkdocs.sample.yml
  • plex-guide/setup.sh
🚧 Files skipped from review as they are similar to previous changes (3)
  • plex-guide/mkdocs.sample.yml
  • plex-guide/setup.sh
  • plex-guide/docs/index.md

@bakerboy448 bakerboy448 force-pushed the feat/4k-direct-play branch from eeb66c9 to b5c81c2 Compare March 12, 2026 05:35
@bakerboy448 bakerboy448 merged commit a6d2bd0 into main Mar 12, 2026
6 checks passed
@bakerboy448 bakerboy448 deleted the feat/4k-direct-play branch March 12, 2026 07:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant