tautulli_transcode_stats
Analyze Plex transcoding patterns by platform to identify which devices require the most video conversion, helping optimize server performance and bandwidth usage.
Instructions
Get direct play vs transcode breakdown by platform — shows which devices cause the most transcoding load.
Args: days: Time range in days (default 30).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| days | No |
Output Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- tautulli.py:446-490 (handler)The tool 'tautulli_transcode_stats' implementation in 'tautulli.py', including its signature, docstring, and logic to fetch and format transcode data.
async def tautulli_transcode_stats(days: int = 30) -> str: """Get direct play vs transcode breakdown by platform — shows which devices cause the most transcoding load. Args: days: Time range in days (default 30). """ days = _clamp_days(days) data = await _api("get_stream_type_by_top_10_platforms", time_range=str(days)) rows = _chart_totals(data) if not rows: return f"No stream data for the last {days} days." # Compute overall totals all_dp = sum(r.get("Direct Play", 0) for r in rows) all_ds = sum(r.get("Direct Stream", 0) for r in rows) all_tc = sum(r.get("Transcode", 0) for r in rows) all_total = all_dp + all_ds + all_tc lines = [f"Stream type by platform (last {days} days, {all_total} total plays):\n"] for r in rows: dp = r.get("Direct Play", 0) ds = r.get("Direct Stream", 0) tc = r.get("Transcode", 0) total = r["total"] if total == 0: continue tc_pct = tc / total * 100 parts = [] if dp: parts.append(f"{dp} direct play") if ds: parts.append(f"{ds} direct stream") if tc: parts.append(f"{tc} transcode") lines.append(f" • {r['name']}: {total} plays — {', '.join(parts)} ({tc_pct:.0f}% transcode)") if all_total: overall_tc_pct = all_tc / all_total * 100 lines.append(f"\nOverall: {all_dp} direct play, {all_ds} direct stream, {all_tc} transcode ({overall_tc_pct:.0f}% transcode)") return "\n".join(lines)