[GH-ISSUE #25] [Feature request] Use app or content thumbnails instead of default gray placeholder #24

Closed
opened 2026-03-03 16:45:00 +03:00 by kerem · 4 comments
Owner

Originally created by @bornefierce on GitHub (Feb 17, 2026).
Original GitHub issue: https://github.com/nickustinov/itsytv-macos/issues/25

Itsytv currently shows rich thumbnails only for content played in the Apple TV app, but all other apps just display a gray box, which looks pretty rough visually. Please make it so by default, Itsytv showed a high‑resolution thumbnail for the active app (like YouTube, Tubi) but when content is playing from the TV app, it continued to show the specific movie/episode artwork as it does now. If possible within tvOS limitations, showing the actual movie/episode artwork for other apps as well would be even better. Even just replacing the gray box with per‑app icons or artwork would make the remote feel much more polished.

Originally created by @bornefierce on GitHub (Feb 17, 2026). Original GitHub issue: https://github.com/nickustinov/itsytv-macos/issues/25 Itsytv currently shows rich thumbnails only for content played in the Apple TV app, but all other apps just display a gray box, which looks pretty rough visually. Please make it so by default, Itsytv showed a high‑resolution thumbnail for the active app (like YouTube, Tubi) but when content is playing from the TV app, it continued to show the specific movie/episode artwork as it does now. If possible within tvOS limitations, showing the actual movie/episode artwork for other apps as well would be even better. Even just replacing the gray box with per‑app icons or artwork would make the remote feel much more polished.
kerem closed this issue 2026-03-03 16:45:00 +03:00
Author
Owner

@nickustinov commented on GitHub (Feb 17, 2026):

Hi! It shows now playing for all apps, like Netflix, HBO, Spotify and similar. Could you clarify - do you only see Now playing for Apple TV+? If so, have you tried restarting Apple TV?

<!-- gh-comment-id:3916718845 --> @nickustinov commented on GitHub (Feb 17, 2026): Hi! It shows now playing for all apps, like Netflix, HBO, Spotify and similar. Could you clarify - do you only see Now playing for Apple TV+? If so, have you tried restarting Apple TV?
Author
Owner

@bornefierce commented on GitHub (Feb 17, 2026):

It displays the title but no thumbnail. This is from YouTube. Just restarted the Apple TV 4K I use, tvOS 26.3, and restarted Itsytv, v1.4.1.

Image
<!-- gh-comment-id:3916766527 --> @bornefierce commented on GitHub (Feb 17, 2026): It displays the title but no thumbnail. This is from YouTube. Just restarted the Apple TV 4K I use, tvOS 26.3, and restarted Itsytv, v1.4.1. <img width="322" height="1456" alt="Image" src="https://github.com/user-attachments/assets/4afc0be2-e508-4b13-bd67-c3de0e23ea9a" />
Author
Owner

@nickustinov commented on GitHub (Feb 17, 2026):

Thanks for the suggestion! I investigated this thoroughly and unfortunately it's a tvOS/MRP protocol limitation.

The Apple TV uses the Media Remote Protocol (MRP) to report now playing information. When an app properly registers as a "now playing client," it sends its bundle identifier, metadata, and artwork. The Apple TV app does this correctly, which is why it shows rich thumbnails.

However, many third-party apps (YouTube, Tubi, and others) either:

  • Don't register as now playing clients at all, so the protocol reports a stale/previous app's bundle ID
  • Don't provide artwork data through the MRP playback queue

I checked all available MRP message types (SetNowPlayingClientMessage, UpdateClientMessage, SetDefaultSupportedCommandsMessage, SetStateMessage playerPath) and none of them reliably identify the actual foreground app for these cases. This is a limitation of how these apps integrate with tvOS's MediaRemote framework – not something that can be worked around from the remote side.

Since we can't reliably identify the active app, showing an app icon would risk displaying the wrong app's icon (e.g., showing HBO's icon while watching YouTube), which would be more confusing than the current placeholder.

Closing this as won't fix due to the protocol limitation.

<!-- gh-comment-id:3917007960 --> @nickustinov commented on GitHub (Feb 17, 2026): Thanks for the suggestion! I investigated this thoroughly and unfortunately it's a tvOS/MRP protocol limitation. The Apple TV uses the Media Remote Protocol (MRP) to report now playing information. When an app properly registers as a "now playing client," it sends its bundle identifier, metadata, and artwork. The Apple TV app does this correctly, which is why it shows rich thumbnails. However, many third-party apps (YouTube, Tubi, and others) either: - Don't register as now playing clients at all, so the protocol reports a stale/previous app's bundle ID - Don't provide artwork data through the MRP playback queue I checked all available MRP message types (`SetNowPlayingClientMessage`, `UpdateClientMessage`, `SetDefaultSupportedCommandsMessage`, `SetStateMessage` playerPath) and none of them reliably identify the actual foreground app for these cases. This is a limitation of how these apps integrate with tvOS's MediaRemote framework – not something that can be worked around from the remote side. Since we can't reliably identify the active app, showing an app icon would risk displaying the wrong app's icon (e.g., showing HBO's icon while watching YouTube), which would be more confusing than the current placeholder. Closing this as won't fix due to the protocol limitation.
Author
Owner

@bornefierce commented on GitHub (Feb 17, 2026):

Thanks for the detailed breakdown of the MRP limitations. It makes sense why the media layer is unreliable for this.

I was curious if you’ve looked into the Companion protocol (port 49153) instead? Since that’s what the official iOS remote and Shortcuts use for app-level control, it might be more reliable for identifying the active bundle ID than the media-centric MRP messages.

Also, for the stale icon concern, if the bundle ID can be identified, could Itsytv fetch the icon from the App Store API as a fallback? That way you wouldn’t need the third-party app to provide its own artwork data. To prevent showing the wrong icon, you could perhaps clear it whenever the client ID returns com.apple.HeadBoard (the Home Screen).

I totally understand if this is out of scope for now, but I thought it might be a way to bypass the Now Playing metadata limitations.

<!-- gh-comment-id:3917458829 --> @bornefierce commented on GitHub (Feb 17, 2026): Thanks for the detailed breakdown of the MRP limitations. It makes sense why the media layer is unreliable for this. I was curious if you’ve looked into the Companion protocol (port 49153) instead? Since that’s what the official iOS remote and Shortcuts use for app-level control, it might be more reliable for identifying the active bundle ID than the media-centric MRP messages. Also, for the stale icon concern, if the bundle ID can be identified, could Itsytv fetch the icon from the App Store API as a fallback? That way you wouldn’t need the third-party app to provide its own artwork data. To prevent showing the wrong icon, you could perhaps clear it whenever the client ID returns com.apple.HeadBoard (the Home Screen). I totally understand if this is out of scope for now, but I thought it might be a way to bypass the Now Playing metadata limitations.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/itsytv-macos#24
No description provided.