Aulas offline com DRM no app do seu curso

Os alunos baixam as aulas no seu app Android e assistem sem sinal. O vídeo continua criptografado com Widevine e só toca no seu app, no celular que baixou.

Como funciona o download offline

O app recebe uma licença offline

O servidor de licenças Widevine da Kinescope emite uma licença offline para o vídeo, e o SDK a guarda no celular junto com a aula.

Uma qualidade, em segundo plano

O SDK lista as qualidades do vídeo e salva a que o aluno escolher, por exemplo 720p, em vez de todas as qualidades. Um serviço de download continua quando o aluno sai da tela e avisa o seu app do progresso.

Toca offline e continua criptografado

A reprodução lê os segmentos salvos, e o Widevine do celular os descriptografa com a licença guardada. Um arquivo copiado não tem licença e não toca.

O que funciona em cada plataforma

Download para offline
DRM offline
Android, SDK Kotlin
HLS e DASH, uma qualidade escolhida
Licença offline Widevine
Flutter no Android
Uma qualidade escolhida
Licença offline Widevine
iOS, SDK Swift
Só vídeos sem DRM
Ainda não no SDK: as chaves FairPlay são pedidas só para streaming
React Native
Sem API offline
—
Navegador
Vídeo protegido não pode ser salvo para assistir offline
—

Adicione downloads offline ao seu app

Código da documentação dos SDKs. Troque pelos IDs dos seus vídeos.

  1. Adicione o SDK Android

    Player, downloads offline e Widevine vêm em uma dependência do Maven Central.

    build.gradle
    implementation 'io.kinescope:kotlin-kinescope-player:0.1.20'
  2. Inicie o pipeline de download

    Chame uma vez na abertura do app; isso também registra o serviço de download em segundo plano.

    Kotlin
    DownloadVideoOffline.initialize(context)
  3. Pegue a licença e salve o vídeo

    O SDK lê os dados Widevine do stream, pede a licença offline e baixa os segmentos com o keySetId.

    Kotlin
    drmHelper.attachToPlayer(exoPlayer, videoData) { data, pssh ->
      drmConfigurator.downloadOfflineLicense(
        context, data, pssh,
      ) { keySetId ->
        val request = DownloadRequest
          .Builder(contentId, manifestUri)
          .setMimeType(MimeTypes.APPLICATION_M3U8)
          .setKeySetId(keySetId)
          .build()
        DownloadVideoOffline.startDownload(context, request)
      }
    }
  4. Ou faça o mesmo no Flutter

    No Android, o plugin Flutter usa o SDK nativo: liste as qualidades, baixe uma e toque offline.

    Dart
    final downloads = KinescopeOfflineDownload.instance;
    final qualities = await downloads.listDownloadQualities('yourVideoId');
    final info = await downloads.downloadVideo(
      'yourVideoId',
      videoHeightPx: qualities.first.height,
    );
    
    KinescopeOfflinePlayer(contentId: info.contentId);

O DRM já vem no plano

Widevine e FairPlay estão em todos os planos pagos, e a Kinescope cuida dos servidores de licença. O seu app adiciona os downloads offline com o SDK.

  • Planos pagos a partir de €10 por mês
  • Sem taxa por licença
  • 100 minutos de armazenamento e 200 GB de tráfego por mês grátis

Perguntas frequentes

Não encontrou a resposta que precisa? Consulte nossa Central de ajuda.

Sim, no Android, dentro do app da sua escola com o SDK da Kinescope. O aluno escolhe a qualidade, baixa a aula e assiste no metrô, na estrada ou onde o sinal cai. O vídeo fica criptografado com Widevine e só toca no seu app, no celular que baixou.

Sim. O download offline com DRM funciona dentro de um app Android com o SDK da Kinescope. Se você vende só por uma plataforma de cursos sem app próprio, os alunos assistem às aulas protegidas online, no navegador, sem modo offline.

Não. Os navegadores tocam vídeo protegido por DRM, mas não deixam um site salvar esse vídeo para assistir offline. Aula protegida offline precisa de um app com o SDK da Kinescope.

Ainda não com DRM. O SDK iOS baixa vídeo HLS e toca vídeo protegido com FairPlay online, mas pede as chaves FairPlay só para streaming, então hoje não dá para salvar aulas protegidas para assistir offline no iPhone. Se a maior parte dos seus alunos usa iPhone, fale com a nossa equipe.