মোবাইল অ্যাপে DRM: মৌলিক বিষয়, সুরক্ষা স্কিম এবং কাজের নীতি

লেখক: IT Sectr প্রকাশিত: 2026-05-24 পড়ার সময়: 11 মিনিট

DRM (ডিজিটাল রাইটস ম্যানেজমেন্ট) ডিজিটাল কন্টেন্টকে অননুমোদিত কপি এবং বিতরণ থেকে রক্ষা করার প্রযুক্তির একটি সেট। মোবাইল অ্যাপ্লিকেশনে, DRM ভিডিও, অডিও এবং ই-বুক এনক্রিপ্ট করতে ব্যবহৃত হয়, যা অধিকার ধারক এবং ভোক্তাদের মধ্যে লাইসেন্সিং চুক্তির আনুগত্য নিশ্চিত করে। Google Widevine Documentation, 2026 অনুসারে, DRM বেশিরভাগ স্ট্রিমিং পরিষেবা — Netflix, Spotify, Apple TV+ — এ অন্তর্নির্মিত এবং প্রিমিয়াম কন্টেন্টের বৈধ বিতরণের জন্য বাধ্যতামূলক।

মূল পয়েন্ট

  • DRM (ডিজিটাল রাইটস ম্যানেজমেন্ট) — প্রযুক্তি যা ডিজিটাল কন্টেন্টের কপি এবং বিতরণ সীমিত করে কপিরাইট রক্ষা করে।
  • তিনটি প্রধান স্কিম: Widevine (Google), FairPlay (Apple), PlayReady (Microsoft) — মোবাইল প্ল্যাটফর্মে আধিপত্য বিস্তার করে।
  • Widevine CDM-এর মাধ্যমে Android এবং iOS-এ কাজ করে, তিনটি নিরাপত্তা স্তর সমর্থন করে: L1, L2, L3
  • Apple-এর FairPlay কী জেনারেশনের জন্য KSM সার্ভার ব্যবহার করে এবং iOS এবং macOS-এ AVFoundation-এ অন্তর্নির্মিত।
  • DRM ডিক্রিপশন মিডিয়া প্লেয়ার স্তরে ঘটে — ডেভেলপার ExoPlayer বা AVPlayer-এর মাধ্যমে প্রস্তুত ভিডিও স্ট্রিম পান।

DRM কী?

DRM ক্রিপ্টোগ্রাফিক এবং সফ্টওয়্যার পদ্ধতির একটি সেট যা ডিজিটাল কন্টেন্টে অ্যাক্সেস নিয়ন্ত্রণ করে। সাধারণ এনক্রিপশনের বিপরীতে, DRM-এ একটি লাইসেন্সিং সিস্টেম অন্তর্ভুক্ত: কন্টেন্ট এনক্রিপ্ট করা থাকে এবং এটি দেখার জন্য একটি কী প্রয়োজন যা ব্যবহারকারীর অধিকার যাচাই করার পরে জারি করা হয়।

DRM-এর মূল উদ্দেশ্য পাইরেসি প্রতিরোধ করা এবং আঞ্চলিক বিধিনিষেধের আনুগত্য নিশ্চিত করা। DRM ছাড়া, কন্টেন্ট মালিকরা (ফিল্ম স্টুডিও, রেকর্ড লেবেল) স্ট্রিমিং প্ল্যাটফর্মের জন্য তাদের কন্টেন্ট লাইসেন্স দেয় না। Motion Picture Association (2025) অনুসারে, DRM DVD-রিপ যুগের তুলনায় স্ট্রিমিংয়ে চলচ্চিত্রের অবৈধ বিতরণ 62% হ্রাস করেছে।

মোবাইল ডেভেলপমেন্টে, DRM মিডিয়া প্লেয়ার স্তরে এমবেড করা হয়: ডেভেলপার ExoPlayer (Android), AVPlayer (iOS) বা Shaka Player (Web) ব্যবহার করেন, যা এনক্রিপ্টেড স্ট্রিমের অন্তর্নির্মিত ডিক্রিপশন সমর্থন করে। ডেভেলপারকে ক্রিপ্টোগ্রাফি বাস্তবায়নের প্রয়োজন নেই — শুধু লাইসেন্সিংয়ের জন্য SDK সংহত করতে হবে।

DRM এবং CENC (সাধারণ এনক্রিপশন)

CENC মান (সাধারণ এনক্রিপশন — ISO/IEC 23001-7) সমস্ত DRM সিস্টেমের জন্য একটি এনক্রিপ্টেড মিডিয়া ফাইল ব্যবহারের অনুমতি দেয়। কন্টেন্ট একবার এনক্রিপ্ট করা হয় এবং কীগুলি বিভিন্ন লাইসেন্স সার্ভারের মাধ্যমে বিতরণ করা হয়। এটি মাল্টি-প্ল্যাটফর্ম পরিষেবাগুলির জন্য গুরুত্বপূর্ণ: Netflix একটি সিনেমা একবার এনক্রিপ্ট করে এবং পুনঃকোডিং ছাড়াই Android (Widevine), iOS (FairPlay) এবং Windows (PlayReady)-এ সরবরাহ করে।

CENC অডিও এবং ভিডিও ট্র্যাকের জন্য বিভিন্ন কী সহ CBC এনক্রিপশন ব্যবহার করে। প্রতিটি কী MPD (MPEG-DASH) বা M3U8 (HLS) ম্যানিফেস্টে এনক্রিপ্টেড আকারে সংরক্ষিত হয়। কন্টেন্ট আইডেন্টিফায়ার (KID) এনক্রিপ্টেড স্ট্রিমকে সার্ভারে লাইসেন্সের সাথে সংযুক্ত করে — বৈধ লাইসেন্স ছাড়া কী ডিক্রিপ্ট করা যায় না।

মোবাইল অ্যাপ্লিকেশনে DRM কীভাবে কাজ করে

DRM প্লেব্যাক প্রক্রিয়া চারটি ধাপ নিয়ে গঠিত: ম্যানিফেস্ট লোডিং, লাইসেন্স প্রাপ্তি, কন্টেন্ট ডিক্রিপশন এবং প্রদর্শন। প্রতিটি ধাপ সিস্টেমের বিভিন্ন উপাদান — মিডিয়া প্লেয়ার, CDM মডিউল এবং লাইসেন্স সার্ভার দ্বারা সম্পাদিত হয়।

  • ম্যানিফেস্ট লোডিং — প্লেয়ার এনক্রিপ্টেড সেগমেন্ট, এনক্রিপশন স্কিম এবং লাইসেন্স সার্ভার URL সম্পর্কে মেটাডেটা সহ MPD (DASH) বা M3U8 (HLS) গ্রহণ করে।
  • লাইসেন্স অনুরোধ — প্লেয়ার কন্টেন্ট আইডেন্টিফায়ার (KID) কন্টেন্ট ডিক্রিপশন মডিউলে (CDM) পাঠায়, যা লাইসেন্স সার্ভারে একটি অনুরোধ তৈরি করে।
  • কী প্রাপ্তি — সার্ভার ব্যবহারকারীর অধিকার (সাবস্ক্রিপশন, অঞ্চল, ডিভাইস) যাচাই করে এবং ডিভাইসের পাবলিক কী দিয়ে এনক্রিপ্ট করা কী ফেরত দেয়।
  • স্ট্রিম ডিক্রিপশন — CDM ডিভাইসের প্রাইভেট কী ব্যবহার করে কী ডিক্রিপ্ট করে এবং রিয়েল-টাইমে ভিডিও সেগমেন্ট ডিক্রিপ্ট করার জন্য মিডিয়া প্লেয়ারে পাঠায়।

কন্টেন্ট ডিক্রিপশন মডিউল (CDM)

CDM একটি সুরক্ষিত সফ্টওয়্যার বা হার্ডওয়্যার মডিউল যা কন্টেন্ট ডিক্রিপশন সম্পাদন করে। Android-এ, CDM MediaDrm API স্তরে বাস্তবায়িত; iOS-এ, এটি AVContentKeySession-এর মাধ্যমে AVFoundation-এ অন্তর্নির্মিত। CDM অ্যাপ্লিকেশনের কাছে কখনই কী প্রকাশ করে না — সমস্ত ক্রিপ্টোগ্রাফিক অপারেশন একটি সুরক্ষিত পরিবেশের (TEE — ট্রাস্টেড এক্সিকিউশন এনভায়রনমেন্ট) ভিতরে সম্পাদিত হয়।

হার্ডওয়্যার সমর্থন (সুরক্ষা স্তর 1) সহ ডিভাইসগুলিতে, CDM TEE-র ভিতরে কাজ করে — কী কখনই ডিভাইসের প্রধান মেমরিতে প্রবেশ করে না। 4K HDR কন্টেন্ট চালানোর জন্য স্টুডিওগুলির এটি একটি প্রয়োজনীয়তা। TEE ছাড়া ডিভাইসগুলিতে, কীগুলি সফ্টওয়্যারে ডিক্রিপ্ট করা হয় (L3), যা সুরক্ষা হ্রাস করে এবং সর্বোচ্চ গুণমান 540p-তে সীমাবদ্ধ করে।

প্রধান DRM স্কিম

তিনটি DRM সিস্টেম মোবাইল প্ল্যাটফর্মে আধিপত্য বিস্তার করে। প্রতিটি তার ইকোসিস্টেমের জন্য এক্সক্লুসিভ, কিন্তু সবাই CENC সমর্থন করে, যা সমস্ত প্ল্যাটফর্মে একটি একক এনক্রিপ্টেড কন্টেন্ট স্ট্রিম ব্যবহারের অনুমতি দেয়।

DRMডেভেলপারপ্ল্যাটফর্মসর্বোচ্চ গুণমানহার্ডওয়্যার সুরক্ষা
WidevineGoogleAndroid, Chrome, Android TV4K HDR (L1)TEE (L1)
FairPlayAppleiOS, iPadOS, macOS, tvOS4K HDR (iOS)Secure Enclave
PlayReadyMicrosoftWindows, Xbox, Windows Phone4K (SL3000)TPM + TEE

মাল্টি-প্ল্যাটফর্ম পরিষেবার জন্য DRM নির্বাচন

সমস্ত প্ল্যাটফর্মে চলমান একটি স্ট্রিমিং পরিষেবার জন্য, তিনটি DRM সিস্টেমের সমর্থন প্রয়োজন। একটি ব্যবহারিক সমাধান হল মাল্টি-DRM সমর্থন (Muvi, Vualto, Axinom) সহ CDN ব্যবহার করা, যা ব্যবহারকারীর ডিভাইসের উপর ভিত্তি করে লাইসেন্স অনুরোধগুলি স্বয়ংক্রিয়ভাবে উপযুক্ত সার্ভারে রুট করে। Streaming Learning Center (2025) অনুসারে, 78% স্ট্রিমিং পরিষেবা মাল্টি-DRM পদ্ধতি ব্যবহার করে।

CENC সহ MPEG-DASH মান আর্কিটেকচারকে সরল করে: কন্টেন্ট একটি শেয়ার্ড কী দিয়ে একবার এনক্রিপ্ট করা হয় এবং DRM সিস্টেম ক্লায়েন্ট পাশে নির্বাচিত হয়। লাইসেন্স সার্ভার ডিভাইস আইডেন্টিফায়ার সহ একটি অনুরোধ গ্রহণ করে এবং নির্দিষ্ট CDM-এর জন্য এনক্রিপ্টেড কী ফেরত দেয়। বিভিন্ন প্ল্যাটফর্মের জন্য কন্টেন্টে কোনো পার্থক্য নেই — শুধু একটি ভিন্ন লাইসেন্স সার্ভার।

Widevine: স্তর এবং বৈশিষ্ট্য

Widevine Google-এর DRM সিস্টেম, Android-এ ডি ফ্যাক্টো স্ট্যান্ডার্ড। এটি তিনটি নিরাপত্তা স্তর সমর্থন করে যা নির্ধারণ করে কোথায় এবং কীভাবে কন্টেন্ট ডিক্রিপশন সম্পাদিত হয়। নিরাপত্তা স্তর ডিভাইসের হার্ডওয়্যার ক্ষমতার উপর নির্ভর করে এবং সর্বোচ্চ কন্টেন্ট রেজোলিউশন নির্ধারণ করে।

Widevine নিরাপত্তা স্তর

Widevine L1 (হার্ডওয়্যার) — সবচেয়ে সুরক্ষিত স্তর। সমস্ত ক্রিপ্টোগ্রাফিক অপারেশন ট্রাস্টেড এক্সিকিউশন এনভায়রনমেন্ট (TEE)-র ভিতরে সম্পাদিত হয়। কী কখনই সুরক্ষিত এলাকা ছেড়ে যায় না। L1 ডিভাইসগুলি 4K HDR পর্যন্ত কন্টেন্ট চালাতে পারে। Google সার্টিফিকেশন প্রয়োজন — একটি প্রক্রিয়া যা ফ্ল্যাগশিপ ডিভাইসগুলি অতিক্রম করে।

Widevine L3 (সফ্টওয়্যার) — ডিক্রিপশন ডিভাইসের প্রধান মেমরিতে সম্পাদিত হয়। একজন প্রযুক্তিগতভাবে দক্ষ আক্রমণকারী কী নিষ্কাশন করতে পারে। প্রিমিয়াম কন্টেন্টের জন্য রেজোলিউশন 540p (960x540)-তে সীমাবদ্ধ। সমস্ত Android ডিভাইস L3 সমর্থন করে, এমনকি যদি L1-এর জন্য সার্টিফাইড না হয়।

Widevine L2 — একটি বিরল মধ্যবর্তী স্তর যেখানে ডিক্রিপশন TEE-তে সম্পাদিত হয় কিন্তু রেন্ডারিং অসুরক্ষিত পথে হয়। কিছু স্মার্ট TV-তে ব্যবহৃত হয়। মোবাইল ডিভাইসে কার্যত পাওয়া যায় না।

ডিভাইসে Widevine স্তর কীভাবে নির্ধারণ করবেন

kotlin
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 কন্টেন্ট প্রদর্শন করা যাবে না।

Apple FairPlay: আর্কিটেকচার এবং কাজের নীতি

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-এর মাধ্যমে কী অনুরোধ করে।

FairPlay স্ট্রিমিং সংহতকরণ

swift
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-এ কন্টেন্ট ডাউনলোড করতে ব্যবহৃত হয়।

Microsoft PlayReady সার্বজনীন সুরক্ষার জন্য

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 মিডিয়া পরিষেবাগুলির জন্য।

Android-এর জন্য PlayReady নেটিভ SDK

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 সমর্থন করে। আসুন DRM এক্সটেনশন সহ ExoPlayer-এর মাধ্যমে Android-এ সংহতকরণ দেখি।

Widevine সমর্থন সহ ExoPlayer সেটআপ

kotlin
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।

লাইসেন্স অনুরোধের জন্য MediaDrmCallback

kotlin
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 ত্রুটিগুলি পরিচালনা

DRM ত্রুটিগুলি ঘটে যখন লাইসেন্স অবৈধ হয়, মেয়াদোত্তীর্ণ হয়, বা ডিভাইস প্রয়োজনীয় সুরক্ষা স্তর সমর্থন করে না। ExoPlayer Player.Listener.onPlayerError-এর মাধ্যমে TYPE_DRM_LICENSE_EXPIRED, TYPE_DRM_UNSUPPORTED বা TYPE_SOURCE কোড সহ ত্রুটি পাঠায়। ব্যবহারকারীকে একটি তথ্যমূলক বার্তা দেখানোর পরামর্শ দেওয়া হয়: “এই ডিভাইসের জন্য কন্টেন্ট উপলব্ধ নয়” বা “দেখার জন্য আপনার সাবস্ক্রিপশন পুনর্নবীকরণ করুন।”

স্ট্রিমিং পরিষেবা বিশ্লেষণ (2025) অনুসারে, 8% পর্যন্ত ব্যর্থ প্লেব্যাক শুরু DRM ত্রুটির সাথে সম্পর্কিত। এর মধ্যে, 60% মেয়াদোত্তীর্ণ লাইসেন্স, 25% ডিভাইস অসমঞ্জসতা এবং 15% কী অনুরোধের সময় নেটওয়ার্ক ত্রুটি। 5 সেকেন্ড পরে স্বয়ংক্রিয় পুনঃচেষ্টা 40% নেটওয়ার্ক ত্রুটির ক্ষেত্রে সমাধান করে।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

মোবাইল ডিভাইসে DRM বাইপাস করা কি সম্ভব?

Widevine L3 (সফ্টওয়্যার সুরক্ষা) সহ ডিভাইসগুলিতে প্রযুক্তিগতভাবে সম্ভব, যেখানে কী মেমরি থেকে নিষ্কাশন করা যেতে পারে। L1 এবং Secure Enclave সহ FairPlay-তে বাইপাস করা অত্যন্ত কঠিন — TEE-তে শারীরিক অ্যাক্সেস প্রয়োজন। কন্টেন্ট স্টুডিওগুলি প্রিমিয়াম কন্টেন্টের জন্য L1 ডিভাইসগুলিকে লক্ষ্য করে।

কেন আমার Android-এ Netflix কম গুণমান দেখায়?

সম্ভবত, ডিভাইসটি Widevine L1-এর জন্য সার্টিফাইড নয় এবং L3 ব্যবহার করছে। Netflix L3 ডিভাইসে গুণমান 540p-তে সীমাবদ্ধ করে। Google Play থেকে DRM Info অ্যাপের মাধ্যমে Widevine স্তর পরীক্ষা করুন। Samsung, Pixel এবং OnePlus-এর ফ্ল্যাগশিপ ডিভাইসে সাধারণত L1 থাকে।

স্ট্রিমিং পরিষেবার জন্য কোন DRM সবচেয়ে ভাল?

মাল্টি-DRM ব্যবহার করুন: Android-এর জন্য Widevine, Apple-এর জন্য FairPlay, Windows-এর জন্য PlayReady। Axinom বা Vualto-এর মতো পরিষেবাগুলি তিনটি DRM সিস্টেমের জন্য একটি ইউনিফাইড API প্রদান করে। কন্টেন্ট CENC-এর মাধ্যমে একবার এনক্রিপ্ট করা হয় এবং DRM নির্বাচন ক্লায়েন্ট পাশে স্বয়ংক্রিয়ভাবে ঘটে।

DRM-এর সাথে অফলাইন দেখা কীভাবে বাস্তবায়ন করবেন?

iOS-এ, AVContentKeySession-এর মাধ্যমে FairPlay স্থায়ী কী ব্যবহার করুন। Android-এ, ExoPlayer OfflineLicenseHelper-এর মাধ্যমে Widevine অফলাইন লাইসেন্স ব্যবহার করুন। কী সীমিত বৈধতা সময় সহ স্থানীয়ভাবে Keychain (iOS) বা KeyStore (Android)-এ সংরক্ষিত হয় — সাধারণত 7 থেকে 30 দিন।

DRM-এর প্রসঙ্গে KID কী?

KID (কী আইডি) — CENC ম্যানিফেস্টে এনক্রিপশন কী-র একটি অনন্য 16-বাইট আইডেন্টিফায়ার। প্রতিটি KID কন্টেন্টের একটি নির্দিষ্ট অংশের (যেমন, একটি সিনেমার 10 মিনিটের সেগমেন্ট) সাথে সংযুক্ত। লাইসেন্স সার্ভার তার ডাটাবেসে সংশ্লিষ্ট কী খুঁজতে KID ব্যবহার করে। একটি সিনেমায় বিভিন্ন অংশের জন্য 20টি পর্যন্ত বিভিন্ন KID থাকতে পারে।

সারাংশ

  • DRM (ডিজিটাল রাইটস ম্যানেজমেন্ট) — ডিজিটাল কন্টেন্টের জন্য একটি ক্রিপ্টোগ্রাফিক সুরক্ষা সিস্টেম, বৈধ স্ট্রিমিংয়ের জন্য বাধ্যতামূলক।
  • তিনটি প্রধান স্কিম: Widevine (Android), FairPlay (iOS), PlayReady (Windows) — ইউনিফাইড কন্টেন্ট এনক্রিপশনের জন্য CENC ব্যবহার করে।
  • Widevine L1 (TEE-এর মাধ্যমে হার্ডওয়্যার সুরক্ষা) 4K HDR সক্ষম করে, L3 (সফ্টওয়্যার) 540p-তে সীমাবদ্ধ। স্তর MediaDrm.getPropertyString-এর মাধ্যমে পরীক্ষা করা হয়।
  • FairPlay শুধুমাত্র HLS-এর সাথে কাজ করে এবং KSM সার্ভার থেকে কী অনুরোধ করতে AVContentKeySession ব্যবহার করে।
  • DRM সংহতকরণ মিডিয়া প্লেয়ারের মাধ্যমে সম্পাদিত হয়: ExoPlayer (Android) DefaultDrmSessionManager সহ, AVPlayer (iOS) AVContentKeySession সহ।
  • DRM ত্রুটিগুলি onPlayerError-এর মাধ্যমে পরিচালিত হয় — মেয়াদোত্তীর্ণ লাইসেন্স, ডিভাইস অসমঞ্জসতা এবং নেটওয়ার্ক ব্যর্থতা 8% ব্যর্থ শুরুর কারণ।
  • মাল্টি-প্ল্যাটফর্ম পরিষেবাগুলির জন্য, CDN প্রদানকারী এবং ইউনিফাইড CENC কন্টেন্ট এনক্রিপশন সহ মাল্টি-DRM পদ্ধতি সুপারিশ করা হয়।

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন