Flutter video player one Dart API on every platform

One widget plays Kinescope videos on Android, iOS and the web. On Android it runs the native Kinescope player with offline downloads, DRM and picture-in-picture. On iOS and the web it uses the Kinescope embed.

Quick start

Install flutter_kinescope_sdk and play your first video. Commands and code are from the package README.

  1. Add the dependency

    Requires Flutter 3.35 or later and Dart 3.9 or later. On Android, use minSdk 24 and JDK 17.

    pubspec.yaml
    dependencies:
      flutter_kinescope_sdk: ^0.2.5
  2. Place the player

    Create KinescopePlayer with a controller and the video ID. The same widget works on every platform.

    dart
    KinescopePlayer(
      controller: KinescopePlayerController(
        'yourVideoId',
        parameters: const PlayerParameters(
          autoplay: true,
          muted: true,
        ),
      ),
      aspectRatio: 16 / 9,
    )
  3. Try the example app

    On Android the demo shows online playback and offline downloads with a quality picker.

    terminal
    cd example
    flutter run

How the Flutter plugin works

One Dart API

KinescopePlayer and KinescopePlayerController are the same on every platform, with shared PlayerParameters.

Native player on Android

Android runs the Kinescope Kotlin player on ExoPlayer with a native UI: fullscreen, picture-in-picture and settings.

Offline and DRM on Android

Download videos for offline viewing and play DRM-protected video in the native Android player.

Embed on iOS and the web

On iOS the player runs as the Kinescope embed in WKWebView; on the web it uses the iframe and its JS API.

Quality picker on Android

The native Android player has a quality picker, shown in the demo together with offline downloads.

Open source

Apache 2.0 license, with docs for Android, iOS and web, the shared API and a changelog in the repository.

The platform behind the SDK

Upload and transcoding

Upload through the dashboard, the API or resumable TUS upload. Every video is encoded into adaptive renditions up to 4K. Video hosting

Own CDN

Kinescope delivers the streams your app plays from its own CDN, with points of presence in Latin America, the United States, Europe and the CIS. Video CDN

DRM on the Super plan

Widevine and FairPlay licenses are included on the Super plan. Your backend can approve each play. DRM video hosting

Live streams

Send RTMP or sRTMP from OBS, vMix or a hardware encoder and keep an automatic recording. The SDK players show the stream live. Live streaming

Analytics

Views, watch depth and drop-off points for every video. Pass your user ID from the app to see data per viewer. Video analytics

Pay as you go

Start on the free plan with 100 minutes of video and 200 GB of traffic a month. Paid usage: storage and delivery from €0.03/GB, processing €0.01/min. Pricing

Documentation

Every guide for this SDK in its repository, on GitHub.

FAQ

Can’t find the answer you need? Check out our All developer tools.

Android, iOS and the web. Android uses the native Kinescope player; iOS and the web use the Kinescope embed.

Flutter 3.35 or later and Dart 3.9 or later. On Android: minSdk 24 and JDK 17.

On Android, yes: the native player downloads videos for offline viewing, including DRM-protected ones.

Apache 2.0. The plugin is free; you pay only for Kinescope hosting and delivery.