DRM (डिजिटल राइट्स मैनेजमेंट) डिजिटल कंटेंट को अनधिकृत कॉपी और वितरण से बचाने वाली तकनीकों का एक सेट है। मोबाइल एप्लिकेशन में, DRM का उपयोग वीडियो, ऑडियो और ई-पुस्तकों को एन्क्रिप्ट करने के लिए किया जाता है, जो अधिकार धारकों और उपभोक्ताओं के बीच लाइसेंसिंग समझौतों का अनुपालन सुनिश्चित करता है। Google Widevine Documentation, 2026 के अनुसार, DRM अधिकांश स्ट्रीमिंग सेवाओं — Netflix, Spotify, Apple TV+ — में निर्मित है और प्रीमियम कंटेंट के कानूनी वितरण के लिए अनिवार्य है।
मुख्य बिंदु
DRM क्रिप्टोग्राफिक और सॉफ्टवेयर विधियों का एक सेट है जो डिजिटल कंटेंट तक पहुंच को नियंत्रित करता है। साधारण एन्क्रिप्शन के विपरीत, DRM में एक लाइसेंसिंग सिस्टम शामिल है: कंटेंट एन्क्रिप्टेड है, और इसे देखने के लिए एक कुंजी की आवश्यकता होती है जो उपयोगकर्ता के अधिकारों की पुष्टि के बाद ही जारी की जाती है।
DRM का मुख्य उद्देश्य पायरेसी को रोकना और क्षेत्रीय प्रतिबंधों का अनुपालन सुनिश्चित करना है। DRM के बिना, कंटेंट मालिक (फिल्म स्टूडियो, रिकॉर्ड लेबल) स्ट्रीमिंग प्लेटफॉर्म के लिए अपने कंटेंट को लाइसेंस नहीं देते। Motion Picture Association (2025) के अनुसार, DRM ने DVD-रिप युग की तुलना में स्ट्रीमिंग में फिल्मों के अवैध वितरण को 62% कम कर दिया।
मोबाइल डेवलपमेंट में, DRM मीडिया प्लेयर स्तर पर एम्बेड किया जाता है: डेवलपर ExoPlayer (Android), AVPlayer (iOS) या Shaka Player (Web) का उपयोग करता है, जो एन्क्रिप्टेड स्ट्रीम के बिल्ट-इन डिक्रिप्शन का समर्थन करते हैं। डेवलपर को क्रिप्टोग्राफी लागू करने की आवश्यकता नहीं है — बस लाइसेंसिंग के लिए SDK को एकीकृत करना है।
CENC मानक (सामान्य एन्क्रिप्शन — ISO/IEC 23001-7) सभी DRM सिस्टम के लिए एक एन्क्रिप्टेड मीडिया फ़ाइल का उपयोग करने की अनुमति देता है। कंटेंट एक बार एन्क्रिप्ट किया जाता है, और कुंजियां विभिन्न लाइसेंस सर्वरों के माध्यम से वितरित की जाती हैं। यह बहु-प्लेटफॉर्म सेवाओं के लिए महत्वपूर्ण है: Netflix एक फिल्म को एक बार एन्क्रिप्ट करता है और बिना पुनःकोडिंग के Android (Widevine), iOS (FairPlay) और Windows (PlayReady) पर वितरित करता है।
CENC ऑडियो और वीडियो ट्रैक के लिए अलग-अलग कुंजियों के साथ CBC एन्क्रिप्शन का उपयोग करता है। प्रत्येक कुंजी MPD (MPEG-DASH) या M3U8 (HLS) मेनिफेस्ट में एन्क्रिप्टेड रूप में संग्रहीत की जाती है। कंटेंट आइडेंटिफ़ायर (KID) एन्क्रिप्टेड स्ट्रीम को सर्वर पर लाइसेंस से जोड़ता है — वैध लाइसेंस के बिना कुंजी डिक्रिप्ट नहीं की जा सकती।
DRM प्लेबैक प्रक्रिया चार चरणों में होती है: मेनिफेस्ट लोडिंग, लाइसेंस प्राप्त करना, कंटेंट डिक्रिप्शन और प्रदर्शन। प्रत्येक चरण सिस्टम के विभिन्न घटकों — मीडिया प्लेयर, CDM मॉड्यूल और लाइसेंस सर्वर द्वारा निष्पादित किया जाता है।
CDM एक संरक्षित सॉफ्टवेयर या हार्डवेयर मॉड्यूल है जो कंटेंट डिक्रिप्शन करता है। Android पर, CDM MediaDrm API स्तर पर लागू किया जाता है; iOS पर, यह AVContentKeySession के माध्यम से AVFoundation में निर्मित है। CDM कभी भी एप्लिकेशन को कुंजी उजागर नहीं करता — सभी क्रिप्टोग्राफिक संचालन एक सुरक्षित वातावरण (TEE — ट्रस्टेड एक्सीक्यूशन एनवायरनमेंट) के अंदर किए जाते हैं।
हार्डवेयर समर्थन (सुरक्षा स्तर 1) वाले उपकरणों पर, CDM TEE के अंदर संचालित होता है — कुंजी कभी भी डिवाइस की मुख्य मेमोरी में प्रवेश नहीं करती। 4K HDR कंटेंट चलाने के लिए स्टूडियो की यह आवश्यकता है। TEE के बिना उपकरणों पर, कुंजियां सॉफ्टवेयर में डिक्रिप्ट की जाती हैं (L3), जो सुरक्षा को कम करता है और अधिकतम गुणवत्ता को 540p तक सीमित करता है।
तीन DRM सिस्टम मोबाइल प्लेटफॉर्म पर हावी हैं। प्रत्येक अपने पारिस्थितिकी तंत्र के लिए विशिष्ट है, लेकिन सभी CENC का समर्थन करते हैं, जो सभी प्लेटफॉर्म पर एकल एन्क्रिप्टेड कंटेंट स्ट्रीम के उपयोग की अनुमति देता है।
| DRM | डेवलपर | प्लेटफॉर्म | अधिकतम गुणवत्ता | हार्डवेयर सुरक्षा |
|---|---|---|---|---|
| Widevine | Android, Chrome, Android TV | 4K HDR (L1) | TEE (L1) | |
| FairPlay | Apple | iOS, iPadOS, macOS, tvOS | 4K HDR (iOS) | Secure Enclave |
| PlayReady | Microsoft | Windows, Xbox, Windows Phone | 4K (SL3000) | TPM + TEE |
सभी प्लेटफॉर्म पर चलने वाली स्ट्रीमिंग सेवा के लिए, तीनों DRM सिस्टम के समर्थन की आवश्यकता है। एक व्यावहारिक समाधान मल्टी-DRM समर्थन (Muvi, Vualto, Axinom) वाले CDN का उपयोग करना है, जो उपयोगकर्ता के डिवाइस के आधार पर लाइसेंस अनुरोधों को उपयुक्त सर्वर पर स्वचालित रूप से रूट करता है। Streaming Learning Center (2025) के अनुसार, 78% स्ट्रीमिंग सेवाएं मल्टी-DRM दृष्टिकोण का उपयोग करती हैं।
CENC के साथ MPEG-DASH मानक आर्किटेक्चर को सरल बनाता है: कंटेंट एक साझा कुंजी के साथ एक बार एन्क्रिप्ट किया जाता है, और DRM सिस्टम क्लाइंट पक्ष पर चुना जाता है। लाइसेंस सर्वर डिवाइस आइडेंटिफ़ायर के साथ अनुरोध प्राप्त करता है और विशिष्ट CDM के लिए एन्क्रिप्टेड कुंजी लौटाता है। विभिन्न प्लेटफॉर्म के लिए कंटेंट में कोई अंतर नहीं — केवल एक अलग लाइसेंस सर्वर।
Widevine Google का DRM सिस्टम है, जो Android पर वास्तविक मानक है। यह तीन सुरक्षा स्तरों का समर्थन करता है जो यह निर्धारित करते हैं कि कंटेंट डिक्रिप्शन कहां और कैसे किया जाता है। सुरक्षा स्तर डिवाइस की हार्डवेयर क्षमताओं पर निर्भर करता है और अधिकतम कंटेंट रिज़ॉल्यूशन निर्धारित करता है।
Widevine L1 (हार्डवेयर) — सबसे सुरक्षित स्तर। सभी क्रिप्टोग्राफिक संचालन ट्रस्टेड एक्सीक्यूशन एनवायरनमेंट (TEE) के अंदर किए जाते हैं। कुंजी कभी भी सुरक्षित क्षेत्र नहीं छोड़ती। L1 डिवाइस 4K HDR तक कंटेंट चला सकते हैं। Google प्रमाणन आवश्यक है — एक प्रक्रिया जो फ्लैगशिप डिवाइस करते हैं।
Widevine L3 (सॉफ्टवेयर) — डिक्रिप्शन डिवाइस की मुख्य मेमोरी में किया जाता है। एक तकनीकी रूप से कुशल हमलावर कुंजी निकाल सकता है। प्रीमियम कंटेंट के लिए रिज़ॉल्यूशन 540p (960x540) तक सीमित है। सभी Android डिवाइस L3 का समर्थन करते हैं, भले ही वे L1 के लिए प्रमाणित न हों।
Widevine L2 — एक दुर्लभ मध्यवर्ती स्तर जहां डिक्रिप्शन TEE में किया जाता है, लेकिन रेंडरिंग असुरक्षित पथ पर होती है। कुछ स्मार्ट TV पर उपयोग किया जाता है। मोबाइल उपकरणों पर व्यावहारिक रूप से नहीं पाया जाता।
import android.media.MediaDrm
import android.media.UUID
fun checkWidevineLevel(): String {
val widevineUuid = UUID.fromString("edef8ba9-79d6-4ace-a3c8-27dcd51d21ed")
val mediaDrm = MediaDrm(widevineUuid)
val securityLevel = mediaDrm.getPropertyString(
MediaDrm.PROPERTY_SECURITY_LEVEL
)
return when (securityLevel) {
"L1" -> "Widevine L1 — हार्डवेयर सुरक्षा"
"L3" -> "Widevine L3 — सॉफ्टवेयर सुरक्षा"
else -> "Widevine $securityLevel"
}
}
विधि Widevine UUID के माध्यम से CDM से securityLevel गुण क्वेरी करती है। वापसी मान एक स्ट्रिंग L1, L2 या L3 है, जो डिवाइस के वर्तमान सुरक्षा स्तर को इंगित करता है। यह जानकारी स्ट्रीमिंग सेवाओं के लिए महत्वपूर्ण है: यदि किसी डिवाइस में केवल L3 है, तो 4K कंटेंट प्रदर्शित नहीं किया जा सकता।
FairPlay Apple का DRM सिस्टम है, जो सभी पारिस्थितिकी तंत्र प्लेटफॉर्म: iOS, iPadOS, macOS, tvOS और watchOS में निर्मित है। Widevine के विपरीत, FairPlay में सुरक्षा स्तर नहीं हैं — सुरक्षा डिवाइस द्वारा निर्धारित की जाती है। Secure Enclave वाले iOS पर, FairPlay Widevine L1 के तुलनीय सुरक्षा स्तर प्रदान करता है।
FairPlay विशेष रूप से HLS (HTTP लाइव स्ट्रीमिंग) प्रोटोकॉल के साथ काम करता है। कंटेंट को .ts सेगमेंट (MPEG-TS) या .m4s फ्रैगमेंट (fMP4) में पैक किया जाता है। M3U8 मेनिफेस्ट में लाइसेंस सर्वर URI (KSM — कुंजी सर्वर मॉड्यूल) और इनिशियलाइज़ेशन IV के साथ #EXT-X-KEY टैग होता है। प्लेबैक शुरू होने पर, AVPlayer मेनिफेस्ट पढ़ता है और AVContentKeySession के माध्यम से कुंजी का अनुरोध करता है।
import AVFoundation
let contentKeySession = AVContentKeySession(keySystem: fairPlayStreaming)
let player = AVPlayer(playerItem: playerItem)
contentKeySession.setDelegate(self, queue: delegateQueue)
func contentKeySession(
_ session: AVContentKeySession,
didProvide keyRequest: AVContentKeyRequest
) {
let assetId = keyRequest.identifier as! String
sendLicenseRequest(assetId) { licenseData in
keyRequest.processContentKeyResponse(
AVContentKeyResponse(fairPlayStreamingKeyResponseData: licenseData)
)
}
}
AVContentKeySession डेलिगेट कंटेंट आइडेंटिफ़ायर (assetId) के साथ कुंजी अनुरोध प्राप्त करता है। एप्लिकेशन इस ID को अपने लाइसेंस सर्वर (KSM) पर भेजता है, जो एन्क्रिप्टेड कुंजी लौटाता है। processContentKeyResponse कॉल कुंजी को CDM को डिक्रिप्शन के लिए भेजता है। यदि लाइसेंस अमान्य (समाप्त, भुगतान नहीं) है, तो सर्वर 403 त्रुटि लौटाता है, और AVPlayer प्लेबैक शुरू नहीं करता।
FairPlay स्थायी कुंजियों का समर्थन करता है — ऑफलाइन देखने के लिए डिवाइस पर लाइसेंस सहेजना। कुंजी प्राप्त करने के बाद, एप्लिकेशन allowsPersistableKey फ्लैग के साथ processContentKeyResponse कॉल करता है। कुंजी Keychain में संग्रहीत की जाती है और बाद के प्लेबैक पर सर्वर से संपर्क किए बिना उपयोग की जा सकती है। हालांकि, ऑफलाइन लाइसेंस की सीमित वैधता अवधि होती है — आमतौर पर 7-30 दिन, जिसके बाद नवीकरण की आवश्यकता होती है।
ऑफलाइन लाइसेंस iOS के संरक्षित स्टोरेज — Keychain में संग्रहीत किए जाते हैं। जेलब्रेक या डंप निष्कर्षण के प्रयास पर, Secure Enclave कुंजियों को नष्ट कर देता है। Apple (2025) के अनुसार, स्थायी कुंजी तकनीक का उपयोग Apple TV+, Netflix और Disney+ में यात्रा से पहले iPad पर कंटेंट डाउनलोड करने के लिए किया जाता है।
PlayReady Microsoft का DRM है, जो Windows, Xbox और लीगेसी Windows Phone पर उपयोग किया जाता है। हालांकि PlayReady मोबाइल उपकरणों पर Widevine और FairPlay की तुलना में कम आम है, यह सभी Microsoft प्लेटफॉर्म पर काम करने वाले सार्वभौमिक स्ट्रीमिंग समाधानों के लिए महत्वपूर्ण है। PlayReady TPM के माध्यम से सॉफ्टवेयर और हार्डवेयर दोनों सुरक्षा का समर्थन करता है।
PlayReady SL (सुरक्षा स्तर) आर्किटेक्चर का उपयोग करता है: SL2000 (सॉफ्टवेयर, Widevine L3 के समान), SL3000 (हार्डवेयर, L1 के समान)। Xbox Series X पर, PlayReady SL3000 TEE+TPM के माध्यम से काम करता है — कुंजियां केवल संरक्षित वातावरण में निकाली जाती हैं। यह कॉपी के जोखिम के बिना कंसोल पर 4K Blu-ray चलाने की अनुमति देता है।
Microsoft Docs (2026) के अनुसार, PlayReady CENC का समर्थन करता है और Edge ब्राउज़रों में Media Source Extensions (MSE) के माध्यम से MPEG-DASH के साथ काम कर सकता है। Android और iOS पर मोबाइल एप्लिकेशन के लिए, PlayReady SDK के माध्यम से उपलब्ध है लेकिन शायद ही कभी उपयोग किया जाता है — मुख्य रूप से एंटरप्राइज़ एप्लिकेशन और Microsoft मीडिया सेवाओं के लिए।
Microsoft Android और iOS के लिए PlayReady नेटिव SDK प्रदान करता है। एकीकरण PlayReady एक्सटेंशन के साथ ExoPlayer के माध्यम से किया जाता है: डेवलपर PlayReadyRenderer जोड़ता है, जो डिकोडिंग श्रृंखला में एम्बेड किया जाता है। ExoPlayer MPD मेनिफेस्ट में निर्दिष्ट DRM के आधार पर स्वचालित रूप से Widevine और PlayReady के बीच स्विच करता है।
हालांकि PlayReady मोबाइल एप्लिकेशन में शायद ही कभी उपयोग किया जाता है, इसका समर्थन Microsoft पारिस्थितिकी तंत्र के भीतर सेवाओं के लिए अनिवार्य है — उदाहरण के लिए, SharePoint और Stream पर एंटरप्राइज़ प्रशिक्षण प्लेटफॉर्म। Microsoft (2025) के अनुसार, PlayReady का उपयोग 23% एंटरप्राइज़ मीडिया समाधानों में किया जाता है, जबकि Widevine 62% में।
मोबाइल एप्लिकेशन में DRM को एकीकृत करने के लिए क्रिप्टोग्राफिक कोड लिखने की आवश्यकता नहीं है — डेवलपर एक प्लेयर के साथ काम करता है जो आउट ऑफ द बॉक्स DRM का समर्थन करता है। आइए DRM एक्सटेंशन के साथ ExoPlayer के माध्यम से Android पर एकीकरण देखें।
val drmSessionManager = DefaultDrmSessionManager.Builder()
.setUuidAndExoMediaDrmProvider(
C.WIDEVINE_UUID,
FrameworkMediaDrm.DEFAULT_PROVIDER
)
.setMultiSession(true)
.build(mediaDrmCallback)
val mediaItem = MediaItem.Builder()
.setUri(mpdUrl)
.setDrmConfiguration(
MediaItem.DrmConfiguration.Builder(C.WIDEVINE_UUID)
.setLicenseUri(licenseUrl)
.setLicenseRequestHeaders(headers)
.build()
)
.build()
exoPlayer.setMediaItem(mediaItem)
exoPlayer.prepare()
DefaultDrmSessionManager DRM सत्र प्रबंधित करता है: MediaDrm सत्र बनाता है, लाइसेंस अनुरोधों को संभालता है, और डिकोडर को कुंजियां भेजता है। setMultiSession(true) पैरामीटर विभिन्न सत्रों में एक साथ कई स्ट्रीम (ऑडियो + वीडियो) को डिक्रिप्ट करने की अनुमति देता है। MediaDrmCallback लाइसेंस सर्वर के लिए HTTP अनुरोध लागू करता है — आमतौर पर SignedRequest बॉडी के साथ POST।
val mediaDrmCallback = DefaultDrmSessionManager.MediaDrmCallback {
url, requestBody ->
val response = OkHttpClient().newCall(
Request.Builder()
.url(url)
.post(RequestBody.create(requestBody, MediaType.parse("application/octet-stream")))
.addHeader("Authorization", "Bearer " )
.build()
).execute()
val responseBytes = response.body?.bytes()
?: throw DrmSessionException(Exception("Empty license response"))
responseBytes
}
कॉलबैक लाइसेंस सर्वर को बॉडी में Widevine UUID के साथ POST अनुरोध भेजता है। सर्वर उपयोगकर्ता के प्रमाणीकरण (हेडर में टोकन) की पुष्टि करता है और एन्क्रिप्टेड कुंजी लौटाता है। यदि उपयोगकर्ता के पास सक्रिय सब्सक्रिप्शन नहीं है, तो सर्वर 403 Forbidden लौटाता है — ExoPlayer DRM त्रुटि उत्पन्न करता है, जिसे onPlayerError के माध्यम से संभाला जाना चाहिए।
DRM त्रुटियां तब होती हैं जब लाइसेंस अमान्य हो, समाप्त हो गया हो, या डिवाइस आवश्यक सुरक्षा स्तर का समर्थन नहीं करता। ExoPlayer Player.Listener.onPlayerError के माध्यम से TYPE_DRM_LICENSE_EXPIRED, TYPE_DRM_UNSUPPORTED या TYPE_SOURCE कोड के साथ त्रुटि भेजता है। उपयोगकर्ता को एक सूचनात्मक संदेश दिखाने की अनुशंसा की जाती है: “यह डिवाइस इस कंटेंट के लिए उपलब्ध नहीं है” या “देखने के लिए अपनी सब्सक्रिप्शन नवीनीकृत करें।”
स्ट्रीमिंग सेवा विश्लेषण (2025) के अनुसार, 8% तक विफल प्लेबैक शुरुआत DRM त्रुटियों से संबंधित हैं। इनमें से 60% समाप्त लाइसेंस हैं, 25% डिवाइस असंगतता, और 15% कुंजी अनुरोध के दौरान नेटवर्क त्रुटियां हैं। 5 सेकंड के बाद स्वचालित पुनर्प्रयास 40% नेटवर्क त्रुटि मामलों का समाधान करता है।
अक्सर पूछे जाने वाले प्रश्न
Widevine L3 (सॉफ्टवेयर सुरक्षा) वाले उपकरणों पर तकनीकी रूप से संभव है, जहां कुंजी मेमोरी से निकाली जा सकती है। L1 और Secure Enclave वाले FairPlay पर बायपास करना अत्यंत कठिन है — TEE तक भौतिक पहुंच की आवश्यकता है। कंटेंट स्टूडियो प्रीमियम कंटेंट के लिए L1 डिवाइस को लक्षित करते हैं।
सबसे अधिक संभावना है, डिवाइस Widevine L1 के लिए प्रमाणित नहीं है और L3 का उपयोग कर रहा है। Netflix L3 डिवाइस पर गुणवत्ता को 540p तक सीमित करता है। Google Play से DRM Info ऐप के माध्यम से Widevine स्तर की जांच करें। Samsung, Pixel और OnePlus के फ्लैगशिप डिवाइस में आमतौर पर L1 होता है।
मल्टी-DRM का उपयोग करें: Android के लिए Widevine, Apple के लिए FairPlay, Windows के लिए PlayReady। Axinom या Vualto जैसी सेवाएं तीनों DRM सिस्टम के लिए एकीकृत API प्रदान करती हैं। कंटेंट CENC के माध्यम से एक बार एन्क्रिप्ट किया जाता है, और DRM चयन क्लाइंट पक्ष पर स्वचालित रूप से होता है।
iOS पर, AVContentKeySession के माध्यम से FairPlay स्थायी कुंजियों का उपयोग करें। Android पर, ExoPlayer OfflineLicenseHelper के माध्यम से Widevine ऑफलाइन लाइसेंस का उपयोग करें। कुंजी सीमित वैधता अवधि के साथ स्थानीय रूप से Keychain (iOS) या KeyStore (Android) में संग्रहीत की जाती है — आमतौर पर 7 से 30 दिन।
KID (कुंजी आईडी) — CENC मेनिफेस्ट में एन्क्रिप्शन कुंजी का एक अद्वितीय 16-बाइट आइडेंटिफ़ायर। प्रत्येक KID कंटेंट के एक विशिष्ट खंड (उदाहरण के लिए, फिल्म का 10 मिनट का सेगमेंट) से जुड़ा होता है। लाइसेंस सर्वर अपने डेटाबेस में संबंधित कुंजी खोजने के लिए KID का उपयोग करता है। एक फिल्म में विभिन्न भागों के लिए 20 अलग-अलग KID हो सकते हैं।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।