- 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.
70 lines
2.8 KiB
Plaintext
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} />
|