Open Analytics
Video Player Analytics
Track video player events with an open source analytics
solution.
Based on the Eyevinn Player Analytics Specification (EPAS).
Sign in with your Open Source Cloud account
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.
Open Source
Full transparency. Contribute, customize, and own your analytics stack.
Simple, Transparent Pricing
Business
Everything you need for production workflows
- Unlimited productions
- Priority support
- Advanced features
- Cancel anytime
Start with a 14-day free trial. No commitment required.
What's Included
Complete Analytics Stack
Everything deployed automatically
- Player Analytics Eventsink - Ingest events from players
- SmoothMQ - Message queue for reliable processing
- Analytics Worker - Process and store events
- ClickHouse - Real-time analytics database
- Grafana - Visualization dashboards
Deploy with one click. Auto-configured and ready to use.
Frequently Asked Questions
EPAS (Eyevinn Player Analytics Specification) is an open standard for video player telemetry. It defines a common format for collecting and exchanging player analytics data, ensuring your metrics are portable across different platforms and tools. Unlike proprietary formats, EPAS gives you complete control over your data with zero vendor lock-in.
Open standards eliminate vendor lock-in and ensure data portability. With EPAS, you can export your analytics data to any backend or switch providers without losing historical data or rewriting your instrumentation. Your data remains yours, in a format that's universally readable and future-proof.
Unlike proprietary platforms that lock your data in their ecosystem, Open Analytics gives you complete freedom. You get direct access to your ClickHouse database, can export data in standard formats, and aren't tied to a single vendor's visualization tools or pricing model. It's the same powerful analytics capabilities without the restrictions.
Track all essential video player metrics including play/pause events, buffering, bitrate changes, video quality, error events, and playback completion. You can also capture custom metadata like content ID, user ID, device type, and any business-specific attributes. All data is stored in real-time for immediate analysis.
Yes! Open Analytics provides SDKs for Web (JavaScript), Android (Kotlin/Java), and iOS (Swift) that integrate with any video player. The SDKs handle event collection and transmission automatically, so you can instrument your player with just a few lines of code regardless of your player technology.
Absolutely not. You have full export capabilities and direct access to your ClickHouse database. Your data is stored in the open EPAS format, making it completely portable. You can export to CSV, integrate with other tools via SQL, or migrate to another platform without any data conversion required.
The Business plan includes unlimited productions, 5 fully managed services (Eventsink, SmoothMQ, Analytics Worker, ClickHouse, and Grafana), priority support, and advanced features. Everything is auto-configured and deployed with one click. Start with a 14-day free trial—no credit card required—and cancel anytime.
No installation or management required. Open Analytics is a fully managed deployment—we handle provisioning, configuration, updates, backups, and scaling automatically. You get production-ready analytics infrastructure without DevOps overhead, letting you focus on insights instead of infrastructure.
Your Analytics Pipelines
Create New Pipeline
Need help integrating? Check the documentation for SDK setup.
SDK Documentation
Integrate video player analytics into your applications with our official SDKs. Built on the Eyevinn Player Analytics Specification (EPAS) for standardized, vendor-neutral event tracking.
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
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
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
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")!
)
}
}