Cross-platform video playback and DRM done right on every device
One license server, the correct player and manifest on each platform.
Native video playback with FairPlay, Widevine and PlayReady, wired to your license server so streams start fast and play clean on real devices. Day rate: €500.
Vendredi App · 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.
Remote day rate
€500excl. tax
I have shipped HLS and FairPlay streaming with AVPlayer and Media3/ExoPlayer for live TV and VOD since the first public iPhone SDK in 2008.
You collect
- Native AVPlayer integration on iOS/tvOS with FairPlay key delivery wired to your license server
- Native Media3/ExoPlayer integration on Android with Widevine and DASH manifest selection
- Per-device manifest and DRM logic so each client gets HLS+FairPlay or DASH+Widevine/PlayReady
- Audio and subtitle track handling, fast start, and clean seeking verified on physical devices
Repair order
Why one DRM never covers everything
FairPlay protects Apple platforms, Widevine covers Android and Chrome, and PlayReady is what Windows and many smart TVs expect. There is no single key system that satisfies all of them, so most catalogs end up packaged twice: HLS with FairPlay for Apple, and DASH with Widevine or PlayReady for everyone else. I set up the per-device decision so the right manifest and the right key system are requested automatically, without forking your backend into a mess.
A real player per platform, not a wrapper
Apple wants AVPlayer driving an HLS stream, and Android wants Media3/ExoPlayer driving DASH. These players have different APIs for track selection, buffering, and DRM session handling. I build the native player on each platform and wire it directly to your license server and key delivery flow, so playback behaves the way the OS expects rather than fighting an abstraction layer.
License servers and key delivery
DRM only works when the player, the license server, and the packaging agree on key IDs, content IDs, and request format. I handle the FairPlay SPC/CKC exchange on Apple and the Widevine license request on Android, including how those calls carry your authentication token. If you already run a license service such as a third-party multi-DRM provider, I integrate against it rather than replacing it.
Tracks, fast start, and seeking on real hardware
Multiple audio languages and subtitle formats (WebVTT, CEA-608/708, IMSC) break in different ways across players, and simulator behavior rarely matches a real Apple TV or a mid-range Android phone. I test on physical devices to confirm that startup time is low, that seeking does not stall or desync audio, and that track switching is reliable. Tradeoffs in segment length and buffer tuning are explained, not hidden.
Frequently asked questions
A flat remote day rate of €500, with no agency markup. You are working directly with the developer who writes the code.
Yes. I regularly pick up an existing iOS or Android app and fix or extend its playback and DRM layer rather than starting from scratch. I read the current code first and tell you honestly what is salvageable.
Yes. I integrate AVPlayer and ExoPlayer against your existing FairPlay, Widevine, and PlayReady license endpoints, whether self-hosted or from a multi-DRM vendor.
I focus on native iOS, tvOS, and Android, which is where DRM is hardest. For the web side I can advise on EME and a player like Shaka or hls.js, but my hands-on delivery is native.
I wire the native track selection APIs on each platform and test WebVTT, CEA-608/708, and IMSC subtitles plus multiple audio languages on real devices, since these are the parts that quietly break in production.
Always. Simulators hide DRM and buffering issues, so I validate startup, seeking, and key delivery on a physical Apple TV, iPhone, and Android handset before calling anything done.
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 callOr leave a note at the counter
Describe your project. I answer right away in the chat when I am available, within 24 hours otherwise.