Jump to Content
Playback
HomeDocumentationRecipesAPI Reference
StreamsPlaybackEncodingBitmovin DashboardPlayback
Documentation
StreamsPlaybackEncodingBitmovin Dashboard
HomeDocumentationRecipesAPI Reference

Player SDKs

  • Introduction
  • The Bitmovin Dashboard
    • Managing Player Licenses
      • Third Party Licensing
    • Testing your streams
    • Managing your organization & team access
    • Managing multiple organizations
    • Managing API Keys
    • Changing your login credentials
    • Managing your subscription
    • Managing your payment & billing details
    • Enabling usage reports
    • Enabling 2-Step Verification
  • Supported Platforms & Devices
    • Supported Streaming Formats
  • Lifecycle Policy
  • DRM Support
  • Advertising Support
  • Casting Support
    • CAF Support
  • Low Latency Support
    • Fundamentals of LL-DASH and LL-HLS
  • Subtitles & Captions Support
  • Thumbnail Preview Support
  • Multiview Support
  • Bitmovin Player UI
    • UI Configuration
      • Timeline Markers
      • Localisation
      • Custom error messages
      • Build a custom UI structure
    • Customising the UI
      • Apply your branding
      • Add a custom Button component
      • Player UI CSS Class Reference
      • Using a customized UI
    • UI Framework
      • UI Architecture
      • Lifecycle of a UI instance
      • Player communication
      • Mobile SDKs support
    • FAQs
      • Which player UI configuration should I use?
      • How to enable recommendation UI
      • Why is the full screen player UI different with iOS and other devices?
      • How can I change the labels for video/audio qualities or subtitles in the settings menu?
      • Can I hide the "playback speed" menu of the player UI?
      • How do I disable auto-hiding the control bar?
      • Why does `enterfullscreen` require a user gesture?
      • Why is there sometimes no settings button in the control bar?
      • How to add Timeline Markers on Mobile
  • Bitmovin Player Integrations
  • Bitmovin Player Accessibility
  • Guides
    • Migrating from another Player to the Bitmovin Player
    • Network API
      • Network API - HTTP Request/Response manipulation
      • How to send cookies along with requests in the Player SDKs
    • Casting
      • How to debug streams on Chromecast devices
      • How to enable Chromecast support
    • Analytics
      • How to activate the Player and Analytics bundle in the Bitmovin Dashboard
      • Using Bitmovin Player events for custom metrics reporting
    • Smart TVs
      • Smart TVs configuration and best practices
    • Playback
      • How to Setup VR and 360° Video Playback
      • WebVTT based thumbnails
      • Automatic CDN switching
      • How can I utilize the CDN fallback feature of the player?
    • Improving Video SEO With Bitmovin player
  • FAQs
    • DRM
      • How does offline DRM work on Bitmovin?
      • Why can't I play DRM protected streams in Chrome?
      • Why is my DRM stream only working on real, physical devices?
      • Does one DRM standard work across all devices?
      • Does DRM work on iOS in Chrome/Firefox browsers?
      • Why does the playback of 360°/VR content with DRM not work?
    • Advertising
      • Is Bitmovin Advertising Module (BAM) certified with IAB?
      • Are there known limitations with the IMA SDK Integration?
    • Licenses/Billing
      • What counts as an impression in the player?
      • How can I allowlist a domain, IP, app ID, package name, or bundle identifier?
      • Why does the player show the error message “Your player is not allowed to play on the domain ...”?
    • Playback, Subtitles
      • Does Bitmovin Player support Low Latency streaming?
      • What ABRs do the Bitmovin Player SDKs support?
      • Why are my WebVTT subtitle tracks not in sync with the video?
      • Why are subtitles not shown when casting from Android/iOS to a custom receiver app?
      • Why can't the quality be manually changed in Safari?
      • Why does my VR / 360° not work on iOS devices?
      • Why do I see an additional "CC1" entry in the subtitle menu in Safari/iOS?
      • How can I enable autoplay for a video?
      • Why doesn’t autoplay work consistently on browsers?
      • How can I remove or change the watermark of the Bitmovin Player UI?
      • How can I remove the watermark from the Chromecast receiver?
      • Does Bitmovin Player support Geoblocking?
    • Browsers, Network API
      • Why does the Network API not work in Safari?
      • My Wowza stream does not play in Internet Explorer and Edge anymore using the HTML5 player
      • How do I enable CORS on my web server / cloud storage?
  • Bitmovin GitHub Repositories
  • Bitmovin Community
  • Bitmovin Blog
  • Video Glossary

Analytics

  • How to Set Up
    • Analytics Web Collector
    • Analytics Android Collector
    • Analytics iOS/tvOS/visionOS Collector
    • Analytics Roku Collector
    • Bitmovin Grafana Plugin
    • New Relic Analytics Integration
  • Configuration Guide
    • How to set up SSAI tracking
    • Cookies in Bitmovin Analytics
    • How to set up Bitmovin Analytics with Google Tag Manager
  • Metrics and Dashboard
    • Getting started with the Analytics API
    • Getting started with the Api Explorer
    • How to recreate dashboard queries via the API
    • How to create an Alert in the Bitmovin Analytics dashboard
    • Using Top-Errors for debugging
  • Exporting your Data
    • S3 Role-Based Output for Analytics exports
    • GCS Service-Account Output for Analytics exports
    • Microsoft Azure Storage Output for Analytics exports
  • Supported Platforms and Devices
  • Native Collector API v3
    • iOS Collector Migration Guide from API v2 to v3
    • Android Collector Migration Guide from API v2 to v3
  • Articles
    • Analytics API Fields
    • Analytics dashboard metrics reference
    • Data Aging in Bitmovin Analytics
    • Segmenting your audience
  • FAQs
    • What counts as an Analytics impression?
    • How can values of customData fields be changed?
    • Which metrics related to the startup time are collected by Bitmovin Analytics?
    • Total Hours Watched Metric
    • Average View Time Metric
    • Can I change the timezone used for Bitmovin Analytics data?
    • How we measure concurrent viewers
    • How can I select which license shows up first when entering the Bitmovin Analytics dashboard?
    • What is the length limit for fields?
    • How often do you update your Kotlin Version?
    • Overriding bundled Bitmovin Player v8 Analytics collector
    • Can Bitmovin Analytics URLs be shared?
    • Are there any limitations on full data exports?
    • How does Analytics distinguish between VOD and live content?
    • What additional error data can be retrieved in Bitmovin Analytics
    • Do-Not-Track Handling in Analytics
    • What is an ANALYTICS_VIDEOSTART_TIMEOUT_REACHED error?
    • What is an ANALYTICS_BUFFERING_TIMEOUT_REACHED error?
    • How can I export my full data set from Bitmovin Analytics?
    • Custom Data setup on Bitmovin Player v3 for Android and iOS
    • What permissions do I need to set on my S3 buckets for Analytics Exports?
    • How can the userId be randomized for each session of the same user?
    • How to setup Bitmovin Analytics on SmartTVs
    • What is an ANALYTICS_QUALITY_CHANGE_THRESHOLD_EXCEEDED error?
    • Is there a sandbox environment to test Bitmovin Analytics?
    • Why do I see a maximum of 50 quality switches within an hour in a session?
    • What are Industry Insights?
    • Licenses in Bitmovin Analytics
    • How we measure buffering in Bitmovin Analytics
    • Is offline tracking of Analytics Events supported?
    • How many custom data fields are included?
  • Release Notes
    • Analytics Collector - Web
    • Analytics Collector - Android
    • Analytics Collector - iOS
    • Analytics Collector - Roku

Player Web SDK - Browsers, Smart TVs, Set-Top Boxes & Game Consoles

  • Getting Started with the Web SDK
    • Getting started with the Web Player on PlayStation 5
    • Getting started with the Web Player on PlayStation 4
    • Getting started with the Web Player on LG webOS
    • Getting started with the Web Player on Samsung Tizen
    • Getting started with the Modular Web Player
  • Utilities for Web Player integration
    • Player Configuration
  • DRM
    • Streaming DRM protected content with Bitmovin Player Web SDK
    • How does FairPlay work?
    • Setup using multiple DRM solutions
    • How to play MPEG-CENC ClearKey content
    • Playing protected content with DRM.cloud
    • Playing protected content with Irdeto
    • Playing protected content using BuyDRM
    • Playing DRMToday / Castlabs protected content with the Web Player SDK
    • Playing protected content with EZDRM
    • Playing protected content with Conax DRM
    • Playing protected content with Kaltura
    • Playing protected content with Sigma DRM
  • Advertising
    • Setting up Ads with the Web Player
    • Using Google DFP Video Ads
    • Changing the locale language for ads
    • How can I show a UI when ads are paused by the IMA SDK?
    • How can I access the IMA-SDK of HTML5 player
    • Integrate the Open Measurement SDK
    • Updating Ad render settings with the Web Player
  • Low-Latency
    • Stream Requirements for Low-Latency Streaming
    • Configure the Player for Low-Latency Streaming
  • Integrations
    • Integrating Bitmovin Player with Teleport
    • Integrating Bitmovin Player with Streamroot
  • Examples
  • FAQs
    • How to change request timeout in the Bitmovin Web Player
    • How to add external subtitles to the Bitmovin Player
    • How to import player modules?
  • Release Notes (Web)

Player Android SDK

  • Getting Started
  • Offline Playback
  • DRM
    • Streaming DRM protected content with Bitmovin Player Android SDK
    • Playing protected content with Nagra CONNECT - Android
  • Logging in the Android Player SDK
  • Migrating from ExoPlayer to the Bitmovin Player
  • Setting up basic Google Cast Support
  • Setting up Picture-in-Picture with the Player Android SDK
  • Setting up Ads with the Android Player
    • Setup advertising with Google IMA
    • Setting up Companion Ads
    • VMAP and ad playlists
  • Media Session Integration
  • Examples
  • FAQs
    • How often do you update your Kotlin Version?
    • Can I use Media3/ExoPlayer and the Bitmovin Player Android SDK in the same project?
    • How can I use custom labels for audio or subtitle tracks?
    • How can I specify a custom Bitmovin Analytics Collector version?
    • What IMA SDK versions are compatible with the Bitmovin Player Android SDK?
    • How can I prevent screen turning off or entering ambient mode during video playback?
    • How do I enable debug logs in the Bitmovin Android Player SDK?
  • Release Notes (Android)

Player iOS, tvOS, VisionOS SDK

  • Getting Started
  • Listening to Events
  • Offline Playback
  • Troubleshooting
    • Player Related iOS, tvOS and visionOS System Errors
    • Logging in the iOS & tvOS Player SDK
  • Network API
    • Manipulating HTTP Requests
    • Manipulating HTTP Responses
    • Customizing HTTP Request Retries
    • (iOS) Networking FAQ
  • DRM
    • Working with DRM providers
  • Migrating from AVPlayer to the Bitmovin Player
  • Picture-in-Picture without using the Bitmovin Web UI
  • Watch content together with SharePlay
  • Setting up Ads with the iOS Player
    • Setup advertising with Google IMA
    • VMAP and ad playlists
  • Configuring Now Playing Information
  • Examples
  • FAQs
    • How to play DRM-protected sources when casting
    • How to let audio play when the iOS device is in Silent mode?
    • What IMA SDK versions are compatible with the Bitmovin Player iOS & tvOS SDK?
    • Dealing with expiring streams while the app is in the background
    • How do I enable debug logs in the Bitmovin iOS & tvOS Player SDK?
    • Why are forced subtitles not displayed on iOS?
  • Release Notes (iOS)

Player Roku SDK

  • Getting Started
  • Migrating from Native Video Node to the Bitmovin Player
  • Guides
    • Troubleshooting and Error Handling
    • Playing DRMToday / Castlabs protected content with the Roku Player SDK
  • Examples
  • Release Notes

Stream Lab

  • Introduction
  • Supported Platforms & Devices
  • Test cases
  • Regular Tests
  • Manual Tests
  • Guides
    • Adding a stream
  • FAQs
    • What is a test environment in Stream Lab
    • How long are test results retained?
    • Can I test geo-restricted streams?
    • Can I provide custom DRM headers?

Player React Native SDK

  • Overview
  • Getting Started with the React Native SDK
    • Setting up your Environment
    • Setting up Dependencies
    • Implementing a basic Player screen
    • Configuring your License
  • Feature guides
    • Advanced playback configuration
    • Accessing the native Player instance
    • Listening to events
    • DRM-protected playback
    • Adding external subtitle tracks
    • Adding external thumbnail tracks
    • Enabling Picture in Picture mode
    • Enabling fullscreen playback
    • Setting up Ads in React Native
    • Enabling Bitmovin Analytics
    • Customizing the HTML Player UI
    • Offline Playback
    • Enabling Google Cast support
  • Contributing to the SDK
  • Logging in the React Native Player SDK
  • FAQs
    • Can the React Native SDK be used to target web browsers?
    • What is the underlying Bitmovin Player Android/iOS SDK version?
    • Which platforms are supported by our React Native SDK?
    • What’s the minimum Android/iOS Version of our React Native SDK?
    • What’s the current underlying ExoPlayer Version on Android?
    • How to let audio play when the iOS device is in Silent mode?
  • Release Notes

Player Flutter SDK

  • Overview
  • Getting Started with the Flutter SDK
    • Setting up your Environment
    • Setting up Dependencies
    • Configuring your License
    • Implementing a Basic Player Page
  • Feature guides
    • Enabling Google Cast support
    • Enabling Picture in Picture mode
  • Contributing to the SDK
  • Release Notes

Player Web X

  • About Player Web X
  • Support Matrix
  • Getting started
    • Packages & Bundles
    • Compatibility with Player Web Version 8.x
  • Features
    • Handling sources through API
      • Simple playback
      • Adding multiple sources
      • Source/Playback API
      • Load control
    • Analytics Package
    • Subtitles
      • Subtitles API
      • Subtitle Events
    • EventBus
  • Create integrations with Packages
  • Release Notes (PWX)

Introduction

Suggest Edits

Updated over 1 year ago