Roku · JSON Structure

External Control Protocol Media Player Structure

State of the active video player.

Type: object Properties: 11
StreamingTelevisionMediaEntertainmentConnected TVConsumer Electronics

MediaPlayer is a JSON Structure definition published by Roku, describing 11 properties. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

state error plugin format position duration is_live runtime buffering new_stream stream_segment

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-structure/external-control-protocol-media-player-structure.json",
  "name": "MediaPlayer",
  "description": "State of the active video player.",
  "type": "object",
  "properties": {
    "state": {
      "type": "string",
      "enum": [
        "none",
        "buffer",
        "play",
        "pause",
        "stop",
        "error",
        "finished",
        "startup",
        "open"
      ]
    },
    "error": {
      "type": "boolean"
    },
    "plugin": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "format": {
      "type": "object",
      "properties": {
        "audio": {
          "type": "string"
        },
        "captions": {
          "type": "string"
        },
        "container": {
          "type": "string"
        },
        "drm": {
          "type": "string"
        },
        "video": {
          "type": "string"
        },
        "videoRes": {
          "type": "string"
        }
      }
    },
    "position": {
      "type": "int32",
      "description": "Current playback position in milliseconds."
    },
    "duration": {
      "type": "int32",
      "description": "Total stream duration in milliseconds."
    },
    "is_live": {
      "type": "boolean"
    },
    "runtime": {
      "type": "int32"
    },
    "buffering": {
      "type": "object",
      "properties": {
        "current": {
          "type": "int32"
        },
        "max": {
          "type": "int32"
        },
        "target": {
          "type": "int32"
        }
      }
    },
    "new_stream": {
      "type": "object",
      "properties": {
        "speed": {
          "type": "int32"
        }
      }
    },
    "stream_segment": {
      "type": "object",
      "properties": {
        "bitrate": {
          "type": "int32"
        },
        "media_sequence": {
          "type": "int32"
        },
        "segment_type": {
          "type": "string"
        },
        "time": {
          "type": "int32"
        }
      }
    }
  }
}

Work with this as data

Every JSON Structure here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for json structure

4 MCP tools reach this
  • find_json_structuresBrowse and filter every JSON Structure in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Structure
curl "https://apis.io/api/v1/json-structures/external-control-protocol-media-player-structure"
All json structure
curl "https://apis.io/api/v1/json-structures?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.