{
  "id": "osc-stack-ask-player-data",
  "job": "Ask questions about your video player analytics (rebuffering, startup time, CDN errors) in plain language from an AI assistant, against your own ClickHouse database, using Open Analytics on Open Source Cloud.",
  "aliases": [
    "ask player data in plain language",
    "natural language video analytics",
    "query player analytics with ai",
    "clickhouse mcp video analytics",
    "open analytics ai querying"
  ],
  "distinctFrom": [],
  "relatedPages": [
    {
      "url": "https://www.osaas.io/use-cases/video-analytics",
      "why": "the stack overview; mentions natural-language queries in one sentence"
    },
    {
      "url": "https://www.osaas.io/tutorials/video-analytics-pipeline",
      "why": "scheduled AI reports through n8n, not interactive questions"
    }
  ],
  "inputs": [
    {
      "protocol": "https",
      "source": "player events from an Open Analytics SDK initialised with your Eventsink URL"
    },
    {
      "protocol": "mcp",
      "source": "your AI assistant (Claude, Cursor, Windsurf or any MCP-compatible client) with the ClickHouse MCP in its MCP configuration"
    }
  ],
  "outputs": [
    {
      "protocol": "mcp",
      "consumer": "answers in the assistant, from queries on your own ClickHouse database"
    }
  ],
  "exampleQuestions": [
    "Show me videos with >5% rebuffering ratio this week",
    "Compare startup time by device type",
    "Which CDN had the most errors yesterday?"
  ],
  "recommendedPath": {
    "primary": {
      "product": "Open Analytics",
      "url": "https://analytics.apps.osaas.io",
      "note": "Deployed with one click and auto-configured (product site wording). Pricing is on the product site and is owned by the product."
    },
    "componentsInCatalog": [
      {
        "serviceId": "eyevinn-player-analytics-eventsink",
        "role": "ingest events from players",
        "requiredConfig": [
          "name",
          "SqsQueueUrl",
          "AwsAccessKeyId",
          "AwsSecretAccessKey"
        ]
      },
      {
        "serviceId": "poundifdef-smoothmq",
        "role": "message queue for reliable processing",
        "requiredConfig": ["name"]
      },
      {
        "serviceId": "eyevinn-player-analytics-worker",
        "role": "process and store events",
        "requiredConfig": [
          "name",
          "ClickHouseUrl",
          "SqsQueueUrl",
          "AwsAccessKeyId",
          "AwsSecretAccessKey"
        ]
      },
      {
        "serviceId": "clickhouse-clickhouse",
        "role": "real-time analytics database",
        "requiredConfig": ["name"]
      },
      {
        "serviceId": "grafana-grafana",
        "role": "visualization dashboards",
        "requiredConfig": ["name"]
      }
    ],
    "assistantStep": "Add the ClickHouse MCP to the assistant's MCP configuration (block on the product site). It is not a catalog service; it runs in the assistant's MCP configuration.",
    "measuredWallClockSeconds": null,
    "wallClockMeasured": false,
    "gapNote": "No end-to-end run was timed for this page and the self-assembled wiring was not exercised. Service ids and required config were read from the live catalog on 2026-10-30."
  },
  "safety": "mcp-clickhouse runs read-only by default, but the SQL Access user has write grants, so do not enable write access in the MCP config (product site wording).",
  "dataUse": "The product site states: We never access or use your data for AI training.",
  "exitPath": {
    "data": "your player analytics stay in your own ClickHouse database, collected with the EPAS open standard",
    "query": "the same data is queryable with SQL"
  },
  "claimsSource": "https://analytics.apps.osaas.io (read 2026-10-30). This recipe makes no Open Analytics claim the product site does not make.",
  "notVerified": [
    "a timed run from signup to first answer",
    "the self-assembled component wiring on OSC",
    "the 4 non-EN locales rendered in a browser",
    "the Open Analytics article by Alan Allard (not located; coordination pending)"
  ],
  "servicesVerifiedLive": {
    "date": "2026-10-30",
    "method": "osc_call_tool list-available-services (198 services), required config per serviceId"
  },
  "verifiedOn": "2026-10-30",
  "publishedAt": "https://www.osaas.io/use-cases/ask-player-data",
  "descriptorUrl": "https://www.osaas.io/stacks/ask-player-data.json"
}
