Offline video downloads that stay encrypted on iOS and Android

Persistent FairPlay and ExoPlayer offline licenses, tied to entitlement.

Native offline downloads with DRM kept intact, using AVAssetDownloadTask and persistent FairPlay keys on Apple and ExoPlayer offline licenses on Android. Day rate: €500.

Repair order

Nº ····

Drop-off

Your day, 9:00

Ready

19:00

You collect

The fix running on your phone, and the change in your source code.

Keep this stub

Nº ····

Day one

€500 excl. tax

Book day one

Remote day rate

€500excl. tax

I have implemented DRM-protected offline downloads with AVAssetDownloadTask and persistent FairPlay keys on Apple and ExoPlayer offline licenses on Android.

You collect

  • Offline download with persistent FairPlay keys via AVAssetDownloadTask on iOS/tvOS
  • Offline download with ExoPlayer offline licenses and Media3 DownloadManager on Android
  • Background download queue with storage management, expiry, and license renewal
  • Download access tied to your entitlement and authentication so only paid content downloads

Repair order

  • Offline does not mean unprotected

    Letting users download a movie for the plane is easy until you add DRM. The file has to stay encrypted on disk, and the decryption key has to persist locally without handing the content away. On Apple this means a persistent FairPlay key paired with AVAssetDownloadTask, and on Android it means an ExoPlayer offline license stored alongside the downloaded media. I implement both so the offline copy stays as protected as the stream.

  • Background downloads and storage

    A download manager has to keep working when the app is backgrounded, survive the app being killed, and resume after a dropped connection. It also has to track how much space the user has, let them delete titles, and show real progress. I build the queue on each platform using the native background download APIs, with clear handling for pause, resume, and failure.

  • Expiry and license renewal

    Offline licenses are usually time-limited: a title might be watchable for 30 days after download or 48 hours after first play. That means tracking expiry locally, renewing the license when the device comes back online, and removing content cleanly when rights lapse. I wire the renewal flow to your license server so the rules are enforced even while the user is offline.

  • Tying downloads to entitlement

    A download should only happen if the user is actually entitled to the content, and it should stop working if their subscription ends. I connect the download flow to your entitlement and authentication system, so issuing an offline license checks the same source of truth as streaming. This avoids the common gap where canceled users keep watching downloaded content forever.

Frequently asked questions

Your next ticket

The next free day is on the calendar. Start with a free call if you want to talk it through first.

Book a free 20-min call

Keep this stub

Nº ····

Day one

€500 excl. tax

Book day one

Or leave a note at the counter

Describe your project. I answer right away in the chat when I am available, within 24 hours otherwise.