Open Analytics — Video Player Analytics

AI-native video player analytics powered by EPAS open standard. Query your data with Claude, Cursor, or SQL — zero vendor lock-in.

Video analytics: a $15.04B market growing 22.18% annually (Mordor Intelligence 2026)

Open Analytics is a video QoE analytics solution built on Open Source Cloud (OSC) — a managed platform for 180+ open source services with zero vendor lock-in. Deploy and manage your full analytics stack via OSC at app.osaas.io.

Get Started

From €199/mo · Billed from day one · Cancel anytime

Analyzing millions of player sessions across live and on-demand workflows.

Real-time QoE analytics dashboard showing startup time, rebuffering ratio, and error rates

Real-time QoE monitoring dashboard

Who Uses Open Analytics

Built for video streaming teams who need real-time insight into player quality, viewer engagement, and delivery performance.

OTT Platforms

Monitor real-time QoE across 10K+ concurrent viewers. Track startup time, buffering, and errors by device and geo.

  • Startup time by region & device
  • Concurrent viewer QoE score
  • Error rate & rebuffering ratio

Live Streaming Events

Ensure broadcast-grade reliability. Track QoS against your SLA thresholds, and build alerts on top in Grafana. Before you do, read the No-Data routing note.

  • Live latency & dropped frames
  • SLA threshold tracking (alertable in Grafana)
  • Bitrate stability over time

Content Creators

Understand viewer behavior. Which videos have the highest completion rates? Where do viewers drop off?

  • Video completion rate by title
  • Drop-off points & engagement depth
  • Play events & pause patterns

Video CDN Operators

Measure CDN performance. Compare bitrate delivery across regions and identify edge server issues.

  • Bitrate delivery by edge region
  • CDN-to-CDN performance comparison
  • Edge server error correlation

Built for AI-Generated Video Apps

AI writes the code. OSC monitors the quality.

AI-generated video code behaves unpredictably — unexpected rebuffering, startup failures, error spikes from edge cases the AI didn't handle. Open Analytics gives you real-time QoE monitoring so you know exactly when and why your video pipeline breaks.

  • Real-time player error detection
  • Startup failure tracking
  • Rebuffering and stall monitoring
  • Spot when AI-generated code breaks playback
Monitor Your AI-Built App

Built to Integrate

Players
The EPAS Web SDK attaches to any HTML5 <video> element — so it works with any player built on one, including hls.js, dash.js, Video.js, Shaka Player and native HTML5 video. Native Android (ExoPlayer, Kotlin/Java) and iOS (Swift) SDKs are published separately.
Self-hosting
The full EPAS pipeline — Eventsink, Worker, ClickHouse, Grafana — ships as open source and can run on your own infrastructure. Each component publishes a Dockerfile; see the eventsink and worker repos.
Data format
Events follow the open EPAS specification.

Track What Matters Most: Startup Time & Buffering

Open Analytics tracks the critical Quality of Experience (QoE) metrics that directly impact viewer retention and revenue.

<2s Startup Time

Higher playthrough rates. Viewers abandon if >2s.

<1% Rebuffering Ratio

Longer sessions. >3% indicates serious delivery problems.

Resolution & Errors

Lower churn. Track quality shifts and playback errors.

Real-time Insights

Instant visibility. ClickHouse queries return in milliseconds.

Features

Real-time Analytics

Track playback events, errors, and user behavior in real-time with ClickHouse.

Grafana Dashboards

Visualize your analytics data with pre-built Grafana dashboards.

EPAS Standard

Built on the open Eyevinn Player Analytics Specification. No vendor lock-in. Instrument once with EPAS: if you ever want to switch analytics backends, your player code stays unchanged. One config line, not a re-instrumentation project. Export destinations: ClickHouse (included), BigQuery, Snowflake, or any SQL-compatible database.

Open Source

Full transparency. Contribute, customize, and own your analytics stack.

AI-Powered QoE Monitoring You Can Audit

Open Analytics combines AI-powered natural language querying (via Claude, Cursor, Windsurf, or any MCP-compatible client — see mcp.osaas.io) with direct SQL access to raw QoE metrics. Unlike proprietary AI monitoring tools, you can audit every decision — no black boxes, no vendor interpretation layers.

EU Data Act Compliant

Compliant by Design

Open Analytics meets EU Data Act (September 2025) requirements from day one — no additional compliance work needed.

Data Portability

EPAS open format: export your analytics to any backend — Datadog, Splunk, or your own infrastructure — without data conversion.

Zero Lock-in

Unlimited SQL access: ClickHouse credentials included. Run custom queries and export via CSV or JSON at any time.

Interoperability

ClickHouse MCP: AI agents can migrate your data to any destination automatically — interoperability built in.

Proprietary analytics platforms (using closed formats) will require costly compliance work. Open Analytics is compliant from day one — zero migration risk for European enterprises.

Five fully managed services. One price.

Eventsink, SmoothMQ, Analytics Worker, ClickHouse, and Grafana — all provisioned, configured, and maintained automatically.

Open Analytics vs per-view pricing

Flat rate. No per-view billing. No surprise invoices.

Monthly views Open Analytics Typical per-view platform
500K views/month€199$240+
1M views/month€199$499
2M views/month€199$999+
10M views/month€199$4,999+

Pricing based on publicly available rates as of September 2026. Per-view platform figures reflect Mux Data pricing: Media plan ($499/mo for 1M views, $0.50/1K overage); pay-as-you-go tier ($0.60/1K views, first 100K free). 500K-views figure uses the pay-as-you-go tier (100K free + 400K × $0.60/1K = $240).

Your data trains nothing.

Analytics are stored in your ClickHouse instance. We never access or use your data for AI training.

Self-healing infrastructure on Kubernetes.

Services run on managed Kubernetes with automatic restarts and health checks. No manual intervention required.

What's Included

Frequently Asked Questions

Getting Started

All Open Analytics SDKs follow the same pattern: initialize with your Eventsink URL, attach to your player, and analytics data flows automatically to your dashboard.

  • Automatic event tracking for play, pause, seek, buffering, and errors
  • Periodic heartbeat events for engagement metrics
  • Bitrate and quality change monitoring
  • Custom metadata support for content identification

Configuring SLA Alerts in Grafana

Alerting Pitfall

When you build a Grafana-managed alert rule against your Open Analytics metrics, note that its DatasourceNoData and DatasourceError cases evaluate as independent alert instances with their own labels. Silences, mute timings, and notification policies applied to the primary rule may not apply to them. To be notified when the pipeline goes quiet — not just when a threshold breaches — configure routing for the No-Data / Error instances explicitly.

See Grafana’s create Grafana-managed alert rule and alert rule state and health docs.

Web SDK

JavaScript / TypeScript GitHub ↗

Installation

npm install @eyevinn/player-analytics-client-sdk-web

Quick Start

The PlayerAnalyticsConnector automatically captures events from your HTML5 video element:

import { PlayerAnalyticsConnector } from "@eyevinn/player-analytics-client-sdk-web";

const analytics = new PlayerAnalyticsConnector("YOUR_EVENTSINK_URL");

await analytics.init({
  sessionId: crypto.randomUUID(),
  heartbeatInterval: 30000
});

const videoElement = document.querySelector("video");
analytics.load(videoElement);

// When playback ends
analytics.reportStop();
analytics.destroy();

Features

Automatic video element binding TypeScript support Works with any HTML5 player Configurable heartbeat Custom metadata support Error tracking

Android SDK

Kotlin / Java GitHub ↗

Installation

Add JitPack repository and dependency:

// settings.gradle
maven { url 'https://jitpack.io' }

// build.gradle
implementation("com.github.Eyevinn:player-analytics-client-sdk-android:1.0.0")

Quick Start with ExoPlayer

val tracker = VideoAnalyticsTracker.Builder(context, exoPlayer)
    .setEventSinkUrl("YOUR_EVENTSINK_URL")
    .setContentTitle("Video Title")
    .setHeartbeatInterval(30_000L)
    .build()

tracker.startTracking()
exoPlayer.play()

// In onDestroy()
tracker.stopTracking("user_exit")
tracker.release()

Features

ExoPlayer integration Automatic event tracking Buffering detection Bitrate monitoring SGAI ad tracking Configurable heartbeat

iOS SDK

Swift GitHub ↗

Installation (Swift Package Manager)

File → Swift Packages → Add Package Dependency...

https://github.com/Eyevinn/player-analytics-client-sdk-swift

Quick Start with AVPlayer

import VideoStreamTracker

class VideoPlayerViewController: UIViewController {
    var player: AVPlayer!
    var logger: AVPlayerEventLogger!

    override func viewDidLoad() {
        super.viewDidLoad()
        player = AVPlayer(url: videoURL)
        logger = AVPlayerEventLogger(
            player: player,
            eventSinkUrl: URL(string: "YOUR_EVENTSINK_URL")!
        )
    }
}

Features

AVPlayer integration UIKit & SwiftUI support Automatic tracking State monitoring Error reporting Swift Package Manager