tautulli_stream_resolution
Analyze streaming resolution differences between source quality and client delivery to identify playback quality issues in your media library.
Instructions
Get source vs delivered resolution analysis — shows what quality your library serves and what clients actually receive.
Args: days: Time range in days (default 30).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| days | No |
Implementation Reference
- tautulli.py:522-567 (handler)The handler implementation for the tautulli_stream_resolution tool, which fetches stream resolution data from Tautulli and returns a formatted string.
async def tautulli_stream_resolution(days: int = 30) -> str: """Get source vs delivered resolution analysis — shows what quality your library serves and what clients actually receive. Args: days: Time range in days (default 30). """ days = _clamp_days(days) source = await _api("get_plays_by_source_resolution", time_range=str(days)) stream = await _api("get_plays_by_stream_resolution", time_range=str(days)) source_rows = _chart_totals(source) stream_rows = _chart_totals(stream) if not source_rows: return f"No resolution data for the last {days} days." lines = [f"Resolution analysis (last {days} days):\n"] # Source resolution lines.append("Source (file quality):") for r in source_rows: if r["total"] == 0: continue dp = r.get("Direct Play", 0) tc = r.get("Transcode", 0) ds = r.get("Direct Stream", 0) lines.append(f" • {r['name']}: {r['total']} plays (DP:{dp}, DS:{ds}, TC:{tc})") # Stream resolution lines.append("\nDelivered (what clients received):") for r in stream_rows: if r["total"] == 0: continue dp = r.get("Direct Play", 0) tc = r.get("Transcode", 0) ds = r.get("Direct Stream", 0) lines.append(f" • {r['name']}: {r['total']} plays (DP:{dp}, DS:{ds}, TC:{tc})") # Quick insight: 4K source vs stream src_4k = next((r["total"] for r in source_rows if r["name"] == "4k"), 0) str_4k = next((r["total"] for r in stream_rows if r["name"] == "4k"), 0) if src_4k > 0 and str_4k < src_4k: downgraded = src_4k - str_4k lines.append(f"\nNote: {downgraded} of {src_4k} 4K source plays were transcoded to lower resolution.") return "\n".join(lines) - tautulli.py:521-521 (registration)Registration of the tautulli_stream_resolution tool using the @mcp.tool() decorator.
@mcp.tool()