Menu
Products
Products
Video Hosting
Upload and manage your videos in a centralized video library.
Image Hosting
Upload and manage all your images in a centralized library.
Galleries
Choose from 100+templates to showcase your media in style.
Video Messaging
Record, and send personalized video messages.
CincoTube
Create your own community video hub your team, students or fans.
Pages
Create dedicated webpages to share your videos and images.
Live
Create dedicated webpages to share your videos and images.
For Developers
Video API
Build a unique video experience.
DeepUploader
Collect and store user content from anywhere with our file uploader.
Solutions
Solutions
Enterprise
Supercharge your business with secure, internal communication.
Townhall
Webinars
Team Collaboration
Learning & Development
Creative Professionals
Get creative with a built in-suite of editing and marketing tools.
eCommerce
Boost sales with interactive video and easy-embedding.
Townhall
Webinars
Team Collaboration
Learning & Development
eLearning & Training
Host and share course materials in a centralized portal.
Sales & Marketing
Attract, engage and convert with interactive tools and analytics.
"Cincopa helped my Enterprise organization collaborate better through video."
Book a Demo
Resources
Resources
Blog
Learn about the latest industry trends, tips & tricks.
Help Centre
Get access to help articles FAQs, and all things Cincopa.
Partners
Check out our valued list of partners.
Product Updates
Stay up-to-date with our latest greatest features.
Ebooks, Guides & More
Customer Stories
Hear how we've helped businesses succeed.
Boost Campaign Performance Through Video
Discover how to boost your next campaign by using video.
Download Now
Pricing
Log in
Get a demo
Get Started
Apple FairPlay DRM provides a controlled way to protect streaming and downloaded media on iOS and macOS, ensuring that only authorized devices can access sensitive content. In many apps, this layer of protection becomes essential when dealing with licensed media or when safeguarding user-specific playback rights. Setting up FairPlay is not only about encryption; it also defines how an app proves its identity and negotiates secure playback keys. By understanding these requirements early, developers create a stable foundation that keeps content secure while maintaining a smooth viewing experience. Prerequisites Apple Developer Program membership App hosting capabilities with an HTTPS server Basic knowledge of server scripting (e.g., Python/Node.js) Xcode (latest version) installed Secure secrets management for certificates and keys Enroll in the Apple Developer Program Enrolling in the Apple Developer Program gives you access to Apple's tools and services needed for building apps with DRM features. This step will verify your identity and allow you to create the certificates required for FairPlay. Step 1 : Visit the Apple Developer website and click on the “ Account ” tab. Step 2 : If you don't have an Apple ID, create one by entering your email and setting a password. Step 3 : Choose the “ Enroll ” option under Developer Program and select Individual or Organization. Organizations need a D-U-N-S number. Step 4 : Pay the enrollment fee and wait for approval, which usually happens within 24 to 72 hours. Step 5 : Upon approval, access developer services and DRM provisioning tools. Create an App ID for Your Application An App ID is a unique identifier that links your app to Apple's systems, including DRM capabilities. You create this to enable FairPlay streaming in your app, which is why it's necessary. Skipping this would mean your app couldn't connect to the DRM services, leaving your content vulnerable. Step 1 : In the Developer Dashboard, click on the “ Certificates, Identifiers & Profiles ” button. Step 2 : Click on the “ Identifiers ” > “ + ” buttons. Step 3 : Select “ App IDs ,” fill in a description, and enter a unique Bundle ID (reverse domain notation, e.g., com.yourcompany.secureplayer). Step 4 : In the “ Capabilities ” section, select the “ FairPlay Streaming ” option. Step 5 : Click the “ Continue ” option, then select the “ Register ” option to save. You'll see your new App ID listed. This ID is essential because it connects your app to Apple's DRM services, allowing secure playback. Generate FairPlay Certificates and Keys FairPlay certificates and keys are special files that handle the encryption of your video content keys. You generate them to secure the process of unlocking videos on devices. This helps files ensure that only your server can provide the keys, protecting against unauthorized playback. Step 1 : In “ Certificates ,” click on the “ + ” icon to start a new certificate. Step 2 : Choose the “ FairPlay Streaming Certificate ” option. Step 3 : Follow instructions to generate a Certificate Signing Request (CSR): Open Keychain Access (Mac), select the “ Certificate Assistant ” → “ Request a Certificate from a Certificate Authority ” options. Enter your user email address; leave “ Common Name ” blank; then select the “ Saved to disk ” option. Save as “ FairPlayCSR.certSigningRequest .” Step 4 : Go back to the Apple developer site, upload this CSR file, and click on the “ Continue ” button. Step 5 : Apple will generate your certificate. Download the .p12 file, which includes the certificate and private key. You'll be prompted for a password to protect it. Step 6 : Store this file securely on your server, perhaps in a password-protected folder. These files are crucial because they handle the encryption for your video keys, ensuring only authorized devices can decrypt and play the content. Set Up Your License Server FairPlay requires a license server that responds to SPC (Server Playback Context) messages from the client, returning properly encrypted CKC ( Content Key Context ) messages as per Apple’s FairPlay documentation. Step 1 : Use HTTPS (SSL) for all license transactions. Step 2 : Secure keys/certificates with OS-level permissions and vaults (e.g., HashiCorp Vault, AWS Secrets Manager). Step 3 : Monitor and audit license requests. Sample Python Server Outline (Simplified) : from flask import Flask, request, jsonify import cryptography # Use Apple’s specifications for SPC/CKC parsing and encryption app = Flask(__name__) @app.route('/license', methods=['POST']) def license(): spc_data = request.data # SPC binary data from client # Validate client token, device ID, app signature # Decrypt SPC, generate CKC, encrypt response ckc = generate_ckc(spc_data) # Implement per Apple protocol return ckc, 200, {'Content-Type': 'application/octet-stream'} Step 4 : Implement full SPC/CKC message handling using Apple’s FairPlay docs. Step 5 : Log access & rate-limit requests, and monitor invalid activity. Integrate FairPlay into Your App Integrating FairPlay means adding code to your app that communicates with the license server to unlock DRM-protected videos. You do this to make your app capable of playing secure content smoothly. Without this integration, the app can't handle encrypted videos and renders your DRM setup useless. Step 1 : In Xcode, open your app project. Step 2 : Add AVFoundation.framework to your target’s “ Frameworks, Libraries, and Embedded Content .” Step 3 : In your video player implementation: import AVFoundation class ResourceLoaderDelegate: NSObject, AVAssetResourceLoaderDelegate { // Implement resource loading for FairPlay func resourceLoader(_ resourceLoader: AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest: AVAssetResourceLoadingRequest) -> Bool { // Extract SPC from loadingRequest, send to license server, receive CKC, complete request // Handle errors and retry logic } } // Assign delegate to AVURLAsset let asset = AVURLAsset(url: videoURL) let delegate = ResourceLoaderDelegate() asset.resourceLoader.setDelegate(delegate, queue: DispatchQueue.main) Step 4 : Send SPC data using AVFoundation APIs; receive CKC from your server and resolve the playback request securely. Step 5 : Handle AVFoundation errors, surface error messages if the license fails, and log troubleshooting information. Test and Deploy Your Setup Testing and deploying involve checking that everything works on real devices, then releasing your app and server for use. You perform this to confirm that the DRM protects your content. This final step ensures the whole system functions reliably and avoids issues that could expose your videos to theft. Step 1 : Test with varied devices (iPhones, iPads, Macs), iOS/macOS versions, and network conditions. Step 2 : Simulate license failures, server offline scenarios, and expired/invalid certificates. Step 3 : Validate the correct functioning of SPC/CKC exchange, playback failover, and DRM compliance. Step 4 : Archive app in Xcode and submit to App Store Connect, supplying accurate screenshots and DRM details. Step 5 : Once tests pass, deploy the license server to a scalable cloud infrastructure (AWS, Azure, or private hosting). Step 6 : Maintain server keys and rotate keys/certificates as required for security compliance. Step 7 : Conduct production monitoring: track failed requests, monitor for abuse, and audit logs regularly. Advanced & Best Practices Payload Formats : Ensure binary correctness of SPC/CKC messages per Apple spec. Device Management : Handle license renewal, device registration, and revoke tokens in case of suspected compromise. Compliance : Keep updated with Apple’s FairPlay documentation; run tests for each OS update. Security : Never hardcode secrets; use secure vaults; monitor access and apply two-factor authentication for admin access. Scale : Rate limit license server requests; implement horizontal scaling; set up DDOS mitigation.