Files
homarr/apps/docs/docs/widgets/media-server/index.mdx
T
Bergasha 76ba13fbad Address Codex review feedback on PR #6627
- Classify IPv4/IPv6 link-local addresses (169.254.0.0/16, fe80::/10) as
  LAN in Jellyfin location parsing - they can't traverse a router, so a
  false WAN reading was possible for common autoconfig/link-local sessions.
- Fix portrait video resolution mislabeling - a 1080x1920 clip was
  classified off its long-axis height (1920) and showed as 1440p. Classify
  by the short axis instead so orientation doesn't flip the result.
- Raise the compact-mode status column breakpoint from 420 to 540px - at
  420 the fixed-width user (200px) and status (190px) columns left almost
  no room for the currentlyPlaying column, the widget's primary content.
- Document the new resolution indicator in the media-server widget docs.
2026-08-19 16:45:09 +10:00

70 lines
2.8 KiB
Plaintext

---
title: "Media server streams"
description: "Show the current streams on your media servers"
hide_title: true
---
import { WidgetInteractionGuide } from "@site/src/components/widgets/interactions";
import { WidgetHeader } from "@site/src/components/widgets/header";
import { AddingWidget } from "@site/src/components/widgets/adding";
import { WidgetConfig } from "@site/src/components/widgets/configuration";
import { WidgetIntegrations } from "@site/src/components/widgets/integrations";
import { IconAd } from "@tabler/icons-react";
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
import { mediaServerWidget } from ".";
import { embyIntegration } from "@site/docs/integrations/emby";
import { jellyfinIntegration } from "@site/docs/integrations/jellyfin";
import { navidromeIntegration } from "@site/docs/integrations/navidrome";
import { plexIntegration } from "@site/docs/integrations/plex";
<WidgetHeader widget={mediaServerWidget} categories={["Media server"]} />
The media server widget shows active sessions across your media servers.
It shows playback progress, pause state, time remaining, the streaming resolution (e.g. `1080p`), and whether each session is direct play, direct stream, or transcoding audio or video. Location and bitrate can be toggled independently.
Select a session to inspect its media metadata in an anchored popover. Advanced mode adds search, sorting, location, bitrate, and a summary of playing and transcoding sessions while keeping separate integration instances identifiable. Compact visibility switches do not hide location or bitrate from the complete advanced session view.
If one selected server is unavailable, a warning indicator identifies the degraded result while sessions from healthy servers remain usable.
Sessions without user metadata remain visible and are labeled as an unknown user.
### Screenshots
import mediaTable from "./img/table.png";
import mediaAdvancedView from "./img/advanced-view.png";
<div className="flex flex-col gap-1">
<img src={mediaTable} alt="Media server compact streams table" width={303} height={198} />
<img src={mediaAdvancedView} alt="Media server advanced view with stream summary" width={800} height={484} />
</div>
### Supported Integrations
<WidgetIntegrations
items={[
{
integration: embyIntegration,
},
{
integration: jellyfinIntegration,
},
{
integration: navidromeIntegration,
note: "Will always show only currently playing audio streams, not all active sessions.",
},
{
integration: plexIntegration,
note: "Will always show only currently playing streams, not all active sessions.",
},
]}
/>
<WidgetInteractionGuide />
### Adding the widget
<AddingWidget />
### Configuration
<WidgetConfig configuration={mediaServerWidget.configuration} />