DRM-X 5.0 এনক্রিপশন SDK ব্যবহারকারী গাইড

প্রযুক্তিগত কর্মীদের জন্য — আপনার নিজের সার্ভার / ওয়েবসাইটে কমান্ড লাইন থেকে এনক্রিপশন টুল কল করে কীভাবে ভিডিও এনক্রিপ্ট করবেন

প্রযোজ্য: DRM-X 5.0 (আন্তর্জাতিক সংস্করণ com / চীন সংস্করণ cn) · প্ল্যাটফর্ম: Windows / Linux x86_64 / macOS 11.0+

আরও টিউটোরিয়াল
DRM-X 5.0 এনক্রিপশন SDK ব্যবহারকারী গাইড

DRM-X 5.0 এনক্রিপশন SDK ব্যবহারকারী গাইড

ডাউনলোড | 8.61 MB

1SDK প্যাকেজের বিষয়বস্তু

DRM-X5.0_Encryption_SDK আর্কাইভ এক্সট্র্যাক্ট করার পরে, ডিরেক্টরিতে নিম্নলিখিত ফাইলগুলি থাকে:

ফাইলবিবরণ
drm-x5-encrypt-sdk.exeWindows এনক্রিপশন প্রোগ্রাম (x64)
drm-x5-encrypt-sdk-linux-x86_64Linux এনক্রিপশন প্রোগ্রাম (x86_64, স্ট্যাটিকভাবে লিংক করা — কোনো শেয়ার্ড-লাইব্রেরি নির্ভরতা নেই; CentOS / Ubuntu ইত্যাদিতে সরাসরি চলে)
drm-x5-encrypt-sdk-macos-x86_64macOS এনক্রিপশন প্রোগ্রাম (Intel চিপ, macOS 11.0 বা তার পরে)
drm-x5-encrypt-sdk-macos-arm64macOS এনক্রিপশন প্রোগ্রাম (Apple Silicon M-সিরিজ চিপ, macOS 11.0 বা তার পরে)
cmd.txtতিনটি প্ল্যাটফর্মের জন্য কমান্ড-লাইন আহ্বান উদাহরণ
GetPackagerEncryptedParams.phpএকটি চালনাযোগ্য PHP ডেমো যা এনক্রিপশন প্যারামিটার পেতে Web Service কল করে (বিভাগ 4.4 দেখুন)

কমান্ড-লাইন আর্গুমেন্টগুলি তিনটি প্ল্যাটফর্মেই অভিন্ন — শুধুমাত্র প্রোগ্রাম ফাইলের নাম আলাদা।

2এনক্রিপশন ওয়ার্কফ্লো পরিচিতি

ধাপ ১ · এনক্রিপশন প্যারামিটার সংগ্রহ

GetPackagerEncryptedParams কল করে ProfileEncryptedParam সংগ্রহ করুন (অর্থাৎ -profile এনক্রিপ্টেড স্ট্রিং — একবার সংগ্রহ করে ক্যাশে করে পুনরায় ব্যবহারের জন্য রাখুন)। ইনপুট / আউটপুট পাথের Base64 মান আপনার প্রোগ্রাম দ্বারা স্থানীয়ভাবে এনকোড করা হয়; সেগুলির জন্য Web Service কল করার প্রয়োজন নেই।

ধাপ ২ · কমান্ড লাইন একত্রিত করুন

প্রাপ্ত -profile এবং স্থানীয়ভাবে Base64-এনকোড করা পাথগুলি এনক্রিপশন প্রোগ্রামের চারটি আর্গুমেন্টে পূরণ করুন: -server_domain / -profile / -input_file_utf8_base64_encoded / -output_file_utf8_base64_encoded

ধাপ ৩ · এনক্রিপশন চালান

এনক্রিপশন সম্পাদন করতে আপনার সার্ভারে কমান্ড-লাইন প্রোগ্রামটি চালান।

ধাপ ৪ · এনক্রিপ্ট করা ফাইল প্রকাশ করুন

আউটপুট ডিরেক্টরি থেকে এনক্রিপ্ট করা ফাইলগুলি আপলোড / প্রকাশ করুন। ব্যবহারকারীরা কন্টেন্ট প্লে করলে DRM-X 5.0 সার্ভার লাইসেন্স ইস্যু করে।

কেন প্রথমে DRM-X 5.0 Web Service কল করবেন?এনক্রিপশন প্রোগ্রামের -profile আর্গুমেন্ট লাইসেন্স প্রোফাইলের সংখ্যাসূচক ID নয় — এটি আপনার অ্যাকাউন্টের সাথে আবদ্ধ একটি এনক্রিপ্টেড স্ট্রিং (ProfileEncryptedParam)। এই স্ট্রিং স্থানীয়ভাবে তৈরি করা যায় না; এটি শুধুমাত্র Web Service এর মাধ্যমে পাওয়া যায়। এটি একটি ProfileID-এর সাথে এক-থেকে-এক ম্যাপ করে, এবং একবার পেয়ে গেলে ক্যাশে করে পুনরায় ব্যবহার করা যায় — প্রতিটি ফাইলের জন্য Web Service কল করার প্রয়োজন নেই। অন্যদিকে ইনপুট / আউটপুট পাথের Base64 মান আপনার প্রোগ্রামে স্থানীয়ভাবে এনকোড করা উচিত (বিভাগ 6 দেখুন) — সেগুলির জন্য Web Service কল প্রয়োজন নেই।

3পূর্বশর্ত

3.1 DRM-X 5.0 অ্যাকাউন্ট তথ্য (DRM-X অ্যাডমিন কনসোল থেকে প্রাপ্ত)

আইটেমউদ্দেশ্য
AdminEmailপ্রশাসক ইমেল ঠিকানা, Web Service প্রমাণীকরণের জন্য ব্যবহৃত। একটি Advanced অ্যাকাউন্ট বা উচ্চতর প্রয়োজন।
WebServiceAuthStrWeb Service ইন্টিগ্রেশন auth স্ট্রিং। অ্যাডমিন কনসোলে "Website Integration Parameter Settings" এর অধীনে এটি দেখুন।
ProfileIDসংখ্যাসূচক লাইসেন্স প্রোফাইল ID — নির্দিষ্ট করে এই এনক্রিপশনের জন্য কোন লাইসেন্স প্রোফাইল ব্যবহার করা হবে।

3.2 সার্ভার পরিবেশের প্রয়োজনীয়তা

প্ল্যাটফর্মপ্রয়োজনীয়তা
WindowsWindows 7 / Server 2008 R2 বা তার পরে (x64)
Linuxx86_64 আর্কিটেকচার (CentOS 7+ / Ubuntu 16.04+ এবং অন্যান্য প্রধান ডিস্ট্রিবিউশন)। স্ট্যাটিকভাবে লিংক করা — ইনস্টল করার কোনো নির্ভরতা নেই।
macOSmacOSmacOS 11.0 বা তার পরে, Intel বা Apple Silicon চিপ
সার্ভার-সাইড ইন্টিগ্রেশন (ঐচ্ছিক)PHP 7.4+ (soap এবং openssl এক্সটেনশন সক্রিয় সহ), স্বয়ংক্রিয়ভাবে Web Service কল করার জন্য

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

4প্রথম ধাপ: এনক্রিপশন প্যারামিটার পেতে DRM-X 5.0 Web Service কল করুন

4.1 Web Service তথ্য

আইটেমমান
আন্তর্জাতিক এন্ডপয়েন্টhttps://5.drm-x.com/haihaisoftlicenseservice.asmx
চীনা এন্ডপয়েন্টhttps://5.drm-x.cn/haihaisoftlicenseservice.asmx
মেথডের নামGetPackagerEncryptedParams
প্রোটোকলSOAP 1.1 (POST)
SOAPActionhttp://tempuri.org/ASPNET.StarterKit.Commerce/HaihaisoftLicenseService/GetPackagerEncryptedParams

এন্ডপয়েন্ট অবশ্যই আপনার অ্যাকাউন্টের সংস্করণের সাথে মিলতে হবে: আন্তর্জাতিক অ্যাকাউন্টগুলি 5.drm-x.com ব্যবহার করে (কমান্ড লাইন: -server_domain com); চীন অ্যাকাউন্টগুলি 5.drm-x.cn ব্যবহার করে (কমান্ড লাইন: -server_domain cn)। ভুল সংস্করণ ব্যবহার করলে প্রমাণীকরণ ব্যর্থ হবে, বা এনক্রিপ্ট করা ফাইলগুলি প্লে করা যাবে না।

4.2 অনুরোধ প্যারামিটার

প্যারামিটারআবশ্যকবিবরণ
AdminEmailহ্যাঁDRM-X 5.0 প্রশাসক ইমেল ঠিকানা
WebServiceAuthStrহ্যাঁWeb Service auth স্ট্রিং
ProfileIDহ্যাঁলাইসেন্স প্রোফাইল ID (সংখ্যাসূচক; কোনো এনকোডিং প্রয়োজন নেই)
Inputহ্যাঁএনক্রিপ্ট করার ফাইলের সম্পূর্ণ পাথ (সাধারণ স্ট্রিং; কোনো এনকোডিং প্রয়োজন নেই)
Outputহ্যাঁএনক্রিপ্ট করা আউটপুট ফাইলের সম্পূর্ণ পাথ
ProfileEncryptedParam / enc_Input / enc_Outputনাসংরক্ষিত ফিল্ড — সাধারণত একটি খালি স্ট্রিং পাস করুন

4.3 প্রতিক্রিয়া ফিল্ড এবং কমান্ড-লাইন আর্গুমেন্টের মধ্যে ম্যাপিং (মূল)

প্রতিক্রিয়া ফিল্ডকমান্ড-লাইন আর্গুমেন্টবিবরণ
ProfileEncryptedParam-profileআপনার অ্যাকাউন্টের সাথে আবদ্ধ একটি এনক্রিপ্টেড লাইসেন্স-প্রোফাইল স্ট্রিং (URL-Safe Base64, যাতে - এবং _ রয়েছে)। আপনাকে অবশ্যই Web Service দ্বারা প্রত্যাবর্তিত মান ব্যবহার করতে হবে — কখনও সংখ্যাসূচক Profile ID পাস করবেন না, এবং কখনও নিজে এনকোড করবেন না। প্রতি ProfileID-এর জন্য এটি শুধুমাত্র একবার সংগ্রহ করা প্রয়োজন এবং তারপর দীর্ঘমেয়াদে ক্যাশে করে পুনরায় ব্যবহার করা যায় — প্রতিটি ফাইলের জন্য Web Service কল করার প্রয়োজন নেই।
enc_Input-input_file_utf8_base64_encodedUTF-8 Base64-এনকোড করা ইনপুট পাথ। আপনার প্রোগ্রামে স্থানীয়ভাবে এনকোড করা সুপারিশ করা হয় (PHP: base64_encode(); অন্যান্য ভাষায়, প্রথমে UTF-8 বাইটে রূপান্তর করুন, তারপর Base64 — বিভাগ 6 দেখুন)। এর জন্য Web Service কল প্রয়োজন নেই; সার্ভিস দ্বারা প্রত্যাবর্তিত enc_Input মানও একইভাবে কাজ করে।
enc_Output-output_file_utf8_base64_encodedUTF-8 Base64-এনকোড করা আউটপুট পাথ। স্থানীয়ভাবে এনকোড করা সুপারিশ করা হয় (উপরের মতো একই পদ্ধতি); সার্ভিস দ্বারা প্রত্যাবর্তিত enc_Output মানও কাজ করে।
GetPackagerEncryptedParamsResult—স্ট্যাটাস / বার্তা টেক্সট। দ্রষ্টব্য: কল সফল হোক বা ব্যর্থ হোক HTTP স্ট্যাটাস কোড 200। সফলতা নির্ধারণ করতে, আপনাকে অবশ্যই এই ফিল্ডের বিষয়বস্তু এবং তিনটি প্যারামিটার মান খালি নয় কিনা তা পরীক্ষা করতে হবে।

4.4 আহ্বান উদাহরণ (PHP / SoapClient)

এই Web Service একটি স্ট্যান্ডার্ড SOAP 1.1 সার্ভিস যা যেকোনো ভাষা থেকে একই অভিন্ন পদ্ধতিতে কল করা যায়: 4.1-এ তালিকাভুক্ত এন্ডপয়েন্টে একটি SOAP এনভেলপ POST করুন (অথবা ?WSDL থেকে স্বয়ংক্রিয়ভাবে একটি SOAP ক্লায়েন্ট তৈরি করুন), 4.2 থেকে প্যারামিটার পাস করুন, তারপর প্রতিক্রিয়ায় 4.3 থেকে তিনটি ফিল্ড পড়ুন। ভাষা অনুযায়ী সাধারণ SOAP ক্লায়েন্ট লাইব্রেরি:

ভাষা / প্ল্যাটফর্মসাধারণ SOAP ক্লায়েন্ট
PHPবিল্ট-ইন SoapClient ক্লাস (এই গাইডে ব্যবহৃত, WSDL মোড)
JavaJAX-WS (wsimport), Apache Axis2, Apache CXF
Pythonzeep、suds
C# / .NETVisual Studio "Add Service Reference", বা SvcUtil
Node.jssoap প্যাকেজ

নিম্নলিখিত উদাহরণটি সম্পূর্ণ কল প্রদর্শনের জন্য PHP-এর SoapClient ব্যবহার করে। কোডটি আপনার সার্ভারে get_params.php হিসাবে সংরক্ষণ করুন এবং চালান (PHP 7.4+ সহ soap এক্সটেনশন সক্রিয়) — এটি তিনটি কমান্ড-লাইন আর্গুমেন্ট মান প্রিন্ট করে:

<?php
// ========== Configuration (edit to match your account) ==========
$wsdl              = 'https://5.drm-x.com/haihaisoftlicenseservice.asmx?WSDL';  // China edition: https://5.drm-x.cn/...
$adminEmail        = 'admin@example.com';
$webServiceAuthStr = 'YOUR_AUTH_STRING';
$profileID         = '1001';
$input             = '/home/video/course01.mp4';
$output            = '/home/video/encrypted/course01_P.mp4';

// ========== Create a SoapClient (WSDL mode; the SOAP envelope is generated automatically) ==========
$client = new SoapClient($wsdl, [
    'soap_version'       => SOAP_1_1,
    'connection_timeout' => 20,
    'trace'              => true,          // enables __getLastRequest() for inspecting the raw request
]);

// ========== Call the method: the method name is the WSDL operation; arguments are an associative array ==========
$resp = $client->GetPackagerEncryptedParams([
    'AdminEmail'            => $adminEmail,
    'WebServiceAuthStr'     => $webServiceAuthStr,
    'ProfileID'             => $profileID,
    'Input'                 => $input,
    'Output'                => $output,
    'ProfileEncryptedParam' => '',
    'enc_Input'             => '',
    'enc_Output'            => '',
]);

// ========== The response is mapped to a stdClass object; read the fields directly ==========
$result  = $resp->GetPackagerEncryptedParamsResult;
$profile = $resp->ProfileEncryptedParam;   // this is the -profile argument value

if ($profile === '') {
    die("Call failed: $result\n");   // e.g. authentication errors appear here
}

// -profile: one call per ProfileID is enough. Cache it and reuse it —
//           do not call the Web Service again for every file you encrypt.
echo "-profile = $profile\n";

// Input / output paths: Base64-encode them locally (UTF-8). No Web Service call needed.
// If your PHP source file is saved as UTF-8, the strings are already UTF-8.
// Other languages work the same way: convert to UTF-8 bytes first, then Base64.
// (The service also returns enc_Input / enc_Output with the same values — either source is fine.)
$encIn  = base64_encode($input);
$encOut = base64_encode($output);
echo "-input_file_utf8_base64_encoded = $encIn\n";
echo "-output_file_utf8_base64_encoded = $encOut\n";

SoapClient নোট:

  • php-soap এক্সটেনশন অবশ্যই ইনস্টল এবং সক্রিয় থাকতে হবে (Windows-এ, php.ini-তে extension=soap আনকমেন্ট করুন; Linux-এ, php-soap প্যাকেজ ইনস্টল করুন)।
  • ব্যর্থ প্রমাণীকরণের মতো ব্যবসায়িক ত্রুটিগুলি SoapFault নিক্ষেপ করে না। সার্ভিসটি এখনও HTTP 200 সহ একটি সু-গঠিত প্রতিক্রিয়া প্রদান করে, এবং ত্রুটির পাঠ্য GetPackagerEncryptedParamsResult-এ থাকে। সর্বদা 4.3-এ বর্ণিত ফিল্ড মান পরীক্ষা করে সফলতা নির্ধারণ করুন।
  • ডিবাগিংয়ের জন্য, var_dump($client->__getLastRequest()) ব্যবহার করুন; প্রকৃত অনুরোধ এনভেলপ পরিদর্শন করতে।

5দ্বিতীয় ধাপ: এনক্রিপশন কমান্ড চালান

5.1 প্রথম ব্যবহার (Linux / macOS)

একটি টার্মিনালে, প্রোগ্রামের ডিরেক্টরিতে পরিবর্তন করুন এবং প্রথমে এক্সিকিউট অনুমতি দিন:

# Linux
chmod +x drm-x5-encrypt-sdk-linux-x86_64

# macOS (pick the one matching your architecture)
chmod +x drm-x5-encrypt-sdk-macos-x86_64
chmod +x drm-x5-encrypt-sdk-macos-arm64

5.2 একক-ফাইল এনক্রিপশন কমান্ড টেমপ্লেট

Windows (cmd / PowerShell):

drm-x5-encrypt-sdk.exe -server_domain com -profile <ProfileEncryptedParam value> -input_file_utf8_base64_encoded <Base64 of the input path> -output_file_utf8_base64_encoded <Base64 of the output path>

Linux:

./drm-x5-encrypt-sdk-linux-x86_64 -server_domain com -profile <ProfileEncryptedParam value> -input_file_utf8_base64_encoded <Base64 of the input path> -output_file_utf8_base64_encoded <Base64 of the output path>

macOS:

./drm-x5-encrypt-sdk-macos-arm64 -server_domain com -profile <ProfileEncryptedParam value> -input_file_utf8_base64_encoded <Base64 of the input path> -output_file_utf8_base64_encoded <Base64 of the output path>

5.3 আর্গুমেন্ট রেফারেন্স

আর্গুমেন্টবিবরণ
-server_domainলক্ষ্য DRM-X 5.0 সার্ভার সংস্করণ: com = আন্তর্জাতিক, cn = চীন। এটি অবশ্যই আপনার অ্যাকাউন্টের প্ল্যাটফর্ম এবং ধাপ 4-এ ব্যবহৃত Web Service এন্ডপয়েন্টের সাথে মিলতে হবে।
-profileএনক্রিপ্টেড লাইসেন্স-প্রোফাইল স্ট্রিং — Web Service দ্বারা প্রত্যাবর্তিত সম্পূর্ণ ProfileEncryptedParam মান (URL-Safe Base64, যাতে - এবং _ রয়েছে)। একটি সংখ্যাসূচক ID পাস করবেন না, নিজে Base64-এনকোড করবেন না, এবং শেষে অক্ষর যোগ বা মুছবেন না। প্রতি ProfileID-এর জন্য এটি শুধুমাত্র একবার সংগ্রহ করা প্রয়োজন এবং তারপর দীর্ঘমেয়াদে ক্যাশে করে পুনরায় ব্যবহার করা যায়।
-input_file_utf8_base64_encodedUTF-8 Base64-এনকোড করা ইনপুট ফাইল পাথ। স্থানীয়ভাবে এনকোড করা সুপারিশ করা হয় (যেমন PHP-এর base64_encode($path), বিভাগ 6 দেখুন); সার্ভিস দ্বারা প্রত্যাবর্তিত enc_Input মানও কাজ করে। পরম এবং আপেক্ষিক উভয় পাথ সমর্থিত, এবং পাথগুলিতে নন-ASCII অক্ষর এবং স্পেস থাকতে পারে।
-output_file_utf8_base64_encodedUTF-8 Base64-এনকোড করা আউটপুট ফাইল পাথ। স্থানীয়ভাবে এনকোড করা সুপারিশ করা হয় (উপরের মতো একই পদ্ধতি); সার্ভিস দ্বারা প্রত্যাবর্তিত enc_Output মানও কাজ করে। আউটপুটের প্যারেন্ট ডিরেক্টরি অবশ্যই আগে থেকে বিদ্যমান থাকতে হবে — প্রোগ্রাম এটি তৈরি করে না।

5.4 সম্পূর্ণ উদাহরণ

Windows:

drm-x5-encrypt-sdk.exe -server_domain com -profile UMuAZfLDToYGfmigBsRbklanDHRBoRrLrsTkI_W52KVnPcC-ZL-KU4UssGDA8Uja-4URQqsxw7WPsZL-CPWYQQj1jdwQsSbLri9_Q3YvPysCfMNtXKBHZvhrWlcsmNMg8FVqm7KFgr4ODrSQxAXgFV -input_file_utf8_base64_encoded RDpcSmFzb25caW5wdXRcMDEtdGVzdFZpZGVvLm1wNA== -output_file_utf8_base64_encoded RDpcSmFzb25cb3V0cHV0XDAxLXRlc3RWaWRlb19QLm1wNA==

এখানে RDpcSmFzb25c... ডিকোড হয় D:\Jason\input\01-testVideo.mp4-এ।

Linux:

./drm-x5-encrypt-sdk-linux-x86_64 -server_domain com -profile s5Gls5QDAz4LyC_USkG9rY0fyDU4cN90HhgvOe6-67OUn92UFWRFdv4N_7Qx-Ipxa_M5d123ZQEesB1BPnGkUs-HkFTwI1pZEwaj133IRLhaxuUfOpBBROkKZpPk_QxBKvoxiX4NVL-Rs6g457jWsV -input_file_utf8_base64_encoded Li9pbnB1dC8wMS1saW51eC1lbmNyeXB0LXZpZGVvLm1wNA== -output_file_utf8_base64_encoded Li9vdXRwdXQvMDEtbGludXgtZW5jcnlwdC12aWRlbzJfUC5tcDQ=

এটি ./input/01-linux-encrypt-video.mp4 → ./output/01-linux-encrypt-video2_P.mp4 এনক্রিপ্ট করে।

5.5 ফলাফল যাচাই

  • প্রোগ্রাম শেষ হলে, আউটপুট ডিরেক্টরিতে একটি এনক্রিপ্ট করা ফাইল তৈরি হয়েছে কিনা তা পরীক্ষা করুন (পার্থক্য বোঝাতে একটি _P সাফিক্স সুপারিশ করা হয়, যেমন course01_P.mp4);
  • এনক্রিপশনের জন্য DRM-X সার্ভারে নেটওয়ার্ক অ্যাক্সেস প্রয়োজন। নিশ্চিত করুন যে আপনার ফায়ারওয়াল / সিকিউরিটি গ্রুপ 5.drm-x.com বা 5.drm-x.cn-এ আউটবাউন্ড অ্যাক্সেসের অনুমতি দেয়;
  • বাল্ক প্রোডাকশন কন্টেন্ট এনক্রিপ্ট করার আগে একটি ছোট টেস্ট ভিডিও দিয়ে সম্পূর্ণ ওয়ার্কফ্লো যাচাই করা সুপারিশ করা হয়।

6ইনপুট / আউটপুট পাথের Base64 এনকোডিং (স্থানীয় এনকোডিং সুপারিশ করা হয়)

সুপারিশকৃত অনুশীলন: -input_file_utf8_base64_encoded / -output_file_utf8_base64_encoded এর মান আপনার নিজের প্রোগ্রামে এনকোড করে তৈরি করুন — প্রতিটি ফাইলের জন্য একবার Web Service কল করার প্রয়োজন নেই। এনকোডিং নিয়ম: প্রথমে পাথ স্ট্রিংকে UTF-8 বাইটে রূপান্তর করুন, তারপর স্ট্যান্ডার্ড Base64 এনকোডিং প্রয়োগ করুন। দ্রষ্টব্য: আপনার সোর্স ফাইলগুলি অবশ্যই UTF-8 হিসাবে সংরক্ষণ করতে হবে (এটি বিশেষত নন-ASCII পাথের জন্য গুরুত্বপূর্ণ; Windows-এ, ANSI / GBK এনকোডিং ব্যবহার করবেন না)। ভাষা অনুযায়ী উদাহরণ:

ভাষা / পরিবেশউদাহরণ (পাথ /home/video/course01.mp4 এনকোডিং)
PHPbase64_encode('/home/video/course01.mp4')
JavaBase64.getEncoder().encodeToString(path.getBytes(StandardCharsets.UTF_8))
Pythonbase64.b64encode(path.encode('utf-8')).decode()
C# / .NETConvert.ToBase64String(Encoding.UTF8.GetBytes(path))
Node.jsBuffer.from(path, 'utf8').toString('base64')
Linux / macOS shellprintf '%s' "/home/video/course01.mp4" | base64
Windows PowerShell[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("C:\video\course01.mp4"))

পুনরায় জোর দেওয়ার জন্য: -profile আর্গুমেন্ট স্থানীয়ভাবে তৈরি করার কোনো উপায় নেই। এটি আপনার অ্যাকাউন্টের সাথে আবদ্ধ একটি এনক্রিপ্টেড স্ট্রিং এবং শুধুমাত্র GetPackagerEncryptedParams Web Service এর মাধ্যমে পাওয়া যায়।

7সার্ভার-সাইড অটোমেশন উদাহরণ

"প্যারামিটার সংগ্রহ + এনক্রিপশন প্রোগ্রাম আহ্বান" চেইন করা আপনার ওয়েবসাইটের ব্যাক অফিস থেকে এক-ক্লিক এনক্রিপশন, বা নির্ধারিত ব্যাচ এনক্রিপশন সক্ষম করে। নিম্নলিখিত PHP উদাহরণটি Linux এনক্রিপশন প্রোগ্রাম আহ্বান করে (বিভাগ 4.4-এর কোড থেকে অবিরত; রানটাইমে, $profile প্রথমে ক্যাশে থেকে পড়া উচিত, এবং ক্যাশে করা মান না থাকলে শুধুমাত্র 4.4-এর Web Service কল করা উচিত):

<?php
// ...continuing from Section 4.4, with $profile / $encIn / $encOut already obtained:

$packager = '/opt/drmx5/drm-x5-encrypt-sdk-linux-x86_64';   // absolute path to the encryption program
$domain   = 'com';                                        // com = International, cn = China

// Make sure the output directory exists (the program does not create it)
$outDir = dirname(base64_decode($encOut));
if (!is_dir($outDir)) { mkdir($outDir, 0755, true); }

// Assemble and execute the command (escapeshellarg prevents injection; the argument
// values are Base64 and contain no spaces, so this is double protection)
$cmd = $packager
     . ' -server_domain '   . escapeshellarg($domain)
     . ' -profile '         . escapeshellarg($profile)
     . ' -input_file_utf8_base64_encoded '  . escapeshellarg($encIn)
     . ' -output_file_utf8_base64_encoded ' . escapeshellarg($encOut);

exec($cmd, $outLines, $exitCode);
echo 'Exit code: ' . $exitCode . PHP_EOL . implode(PHP_EOL, $outLines);

শেল ব্যাচ-এনক্রিপশন স্ক্রিপ্ট উদাহরণ (Linux — স্থানীয়ভাবে পাথ এনকোড করে, তারপর প্রতিটি ফাইল এনক্রিপ্ট করে):

#!/bin/bash
# batch_encrypt.sh — batch-encrypt all mp4 files under ./input into ./output
ADMIN_EMAIL="admin@example.com"
AUTH_STR="YOUR_AUTH_STRING"
PROFILE_ID="1001"
PACKAGER="./drm-x5-encrypt-sdk-linux-x86_64"
DOMAIN="com"   # China edition: change to cn

mkdir -p ./output
for f in ./input/*.mp4; do
  name=$(basename "$f" .mp4)
  out="./output/${name}_P.mp4"
  # Base64-encode the paths locally (UTF-8)
  in_b64=$(printf '%s' "$f"  | base64 -w0)
  out_b64=$(printf '%s' "$out" | base64 -w0)
  # The -profile string should be obtained once by your server via the Web Service
  # and cached — the same ProfileID's value can be reused for every file.
  "$PACKAGER" -server_domain "$DOMAIN" -profile "$PROFILE_ENC" \
      -input_file_utf8_base64_encoded "$in_b64" \
      -output_file_utf8_base64_encoded "$out_b64"
  echo "[done] $out"
done

সুপারিশকৃত অনুশীলন: একটি নির্দিষ্ট ProfileID-এর জন্য ProfileEncryptedParam Web Service এর মাধ্যমে একবার সংগ্রহ করুন এবং পুনরায় ব্যবহারের জন্য ক্যাশে করুন — প্রতিটি এনক্রিপ্ট করা ফাইলের জন্য একবার Web Service কল করবেন না। আপনার সার্ভারে পাথগুলি Base64-এনকোড (UTF-8) করে সরাসরি enc_Input / enc_Output সমতুল্য তৈরি করুন (PHP-তে: base64_encode($path), বিভাগ 6 দেখুন) — Web Service কল প্রয়োজন নেই। ব্যাচ-এনক্রিপ্ট করার সময়, ব্যান্ডউইথ এবং CPU পরিপূর্ণ হওয়া এড়াতে সমবর্তন সীমিত করুন (যেমন প্রতি সার্ভারে 2-4 এনক্রিপশন প্রক্রিয়া)।

8সচরাচর জিজ্ঞাসিত প্রশ্ন (FAQ)

Q1: Web Service "Your XML web service login info is not correct..." ফেরত দেয়

AdminEmail বা WebServiceAuthStr ভুল। DRM-X অ্যাডমিন কনসোলে উভয়ই পুনরায় পরীক্ষা করুন; নিশ্চিত করুন যে মানগুলিতে অগ্রণী বা পশ্চাদগামী স্পেস নেই। আরও মনে রাখবেন যে এই ত্রুটির জন্যও HTTP স্ট্যাটাস কোড এখনও 200 — আপনার প্রোগ্রামকে HTTP স্ট্যাটাস কোড নয়, প্রতিক্রিয়া ফিল্ড পরিদর্শন করে সফলতা নির্ধারণ করতে হবে।

Q2: সংখ্যাসূচক ID (যেমন 1001) সরাসরি -profile-এ পাস করলে ত্রুটি হয়

-profile অবশ্যই Web Service দ্বারা প্রত্যাবর্তিত সম্পূর্ণ ProfileEncryptedParam এনক্রিপ্টেড স্ট্রিং হতে হবে — সংখ্যাসূচক Profile ID নয়। সংখ্যাসূচক ID শুধুমাত্র Web Service কল করার সময় ব্যবহৃত হয়।

Q3: পাথে নন-ASCII অক্ষর বা স্পেস থাকলে এনক্রিপশন ব্যর্থ হয়?

পাথগুলি Base64 হিসাবে পরিবহন করা হয়, এবং নন-ASCII অক্ষর এবং স্পেস সম্পূর্ণরূপে সমর্থিত। মূল বিষয় হল এনকোডিং অবশ্যই UTF-8 ব্যবহার করতে হবে: Windows-এ, Notepad / cmd ডিফল্টভাবে ANSI (GBK) এনকোডিং ব্যবহার করতে পারে, যা Base64 ডিকোডিংয়ের পরে পাথ নষ্ট করে। বিভাগ 6-এ বর্ণিত হিসাবে আপনার প্রোগ্রামে পাথগুলি UTF-8 হিসাবে এনকোড করুন (UTF-8 হিসাবে সংরক্ষিত PHP সোর্স ফাইলের সাথে, সাধারণ base64_encode() সরাসরি কাজ করে; লিগ্যাসি GBK-এনকোড করা স্ট্রিংগুলি প্রথমে iconv('GBK', 'UTF-8', $path) বা mb_convert_encoding() দিয়ে রূপান্তর করা যায় তারপর এনকোড করা যায়)।

Q4: প্রোগ্রাম আউটপুট ব্যর্থতা রিপোর্ট করে / আউটপুট ডিরেক্টরি খুঁজে পায় না

আউটপুট ফাইলের প্যারেন্ট ডিরেক্টরি অবশ্যই আগে থেকে তৈরি করতে হবে (যেমন mkdir -p ./output)। এছাড়াও যাচাই করুন যে প্রোগ্রাম চালানো ব্যবহারকারীর সেই ডিরেক্টরির জন্য লেখার অনুমতি আছে।

Q5: macOS বলে প্রোগ্রামটি "cannot be opened because the developer cannot be verified"

প্রোগ্রামটি Apple-নোটারাইজড নয়, তাই Gatekeeper প্রথম লঞ্চ ব্লক করে। দুটির যেকোনো একটি সমাধান বেছে নিন: ① টার্মিনালে xattr -d com.apple.quarantine ./drm-x5-encrypt-sdk-macos-arm64 চালিয়ে কোয়ারেন্টাইন ফ্ল্যাগ সরান; ② অথবা System Settings → Privacy & Security-তে "Open Anyway" ক্লিক করুন।

Q6: Linux-এ প্রোগ্রামটি চালানো যায় না (Permission denied বা format error)

প্রথমে chmod +x drm-x5-encrypt-sdk-linux-x86_64 চালান। যদি "cannot execute binary file" পান, নিশ্চিত করুন যে সার্ভারটি x86_64 (uname -m)। বর্তমান প্যাকেজটি শুধুমাত্র x86_64 বিল্ড সরবরাহ করে; ARM সার্ভারের জন্য অনুগ্রহ করে Haihaisoft-এর সাথে যোগাযোগ করুন।

Q7: com বা cn কোনটি ব্যবহার করব? ভুলটি বেছে নিলে কী হয়?

এটি অবশ্যই আপনার DRM-X অ্যাকাউন্টের প্ল্যাটফর্মের সাথে মিলতে হবে: আন্তর্জাতিক অ্যাকাউন্টগুলি com ব্যবহার করে (এবং 5.drm-x.com কল করে), চীন অ্যাকাউন্টগুলি cn ব্যবহার করে (এবং 5.drm-x.cn কল করে)। একটি অমিল প্রমাণীকরণ ব্যর্থতা ঘটায়, বা এনক্রিপশন প্যারামিটার যা প্ল্যাটফর্মের সাথে মেলে না।

Q8: এনক্রিপ্ট করা ফাইলগুলি কীভাবে যাচাই করব?

DRM-X 5.0 ডেমো প্লেয়ার / আপনার ইন্টিগ্রেটেড প্লেয়ারে আউটপুট ফাইলগুলি খুলুন এবং নিশ্চিত করুন: লাইসেন্স ছাড়া প্লেব্যাক ব্লক করা হয়, এবং অ্যাডমিন কনসোলে একটি টেস্ট ব্যবহারকারীকে অনুমোদন করার পরে স্বাভাবিকভাবে প্লে হয়। বাল্ক প্রোডাকশন এনক্রিপশনের আগে ছোট আকারে যাচাই করুন।

9নোট এবং সর্বোত্তম অনুশীলন

  • মূল ফাইলগুলি রাখুন: আউটপুট একটি নতুন অবস্থান বা নতুন ফাইলের নামে লিখুন (যেমন _P সাফিক্স সহ) যাতে মূল ভিডিওগুলি কখনও ওভাররাইট না হয়।
  • বড়র আগে ছোট: একটি নতুন প্রোফাইল বা নতুন সার্ভার প্রথমবার ব্যবহার করার সময়, ব্যাচ প্রসেসিংয়ের আগে একটি ছোট টেস্ট ভিডিও দিয়ে সম্পূর্ণ "প্যারামিটার সংগ্রহ → এনক্রিপ্ট → লাইসেন্সযুক্ত প্লেব্যাক" প্রবাহ চালান।
  • কখনও আর্গুমেন্ট হাতে সম্পাদনা করবেন না: -profile একটি Base64 এনক্রিপ্টেড স্ট্রিং — এটি সম্পূর্ণরূপে কপি করুন (কোনো অতিরিক্ত অগ্রণী/পশ্চাদগামী স্পেস নেই, কোনো লাইন-র্যাপ ট্রাঙ্কেশন নেই)।
  • auth স্ট্রিং গোপন রাখুন: WebServiceAuthStr শুধুমাত্র সার্ভার-সাইড কনফিগারেশনে থাকা উচিত; GetPackagerEncryptedParams.php এর মতো ডেমো ওয়েব টুল পাবলিক ইন্টারনেটে স্থাপন করবেন না।
  • নেটওয়ার্ক প্রয়োজনীয়তা: এনক্রিপশনের সময় সার্ভারকে অবশ্যই DRM-X সার্ভারে পৌঁছাতে হবে (আন্তর্জাতিক 5.drm-x.com / চীন 5.drm-x.cn); ফায়ারওয়াল থাকলে আউটবাউন্ড পোর্ট 443 অনুমতি দিন।

অন্যান্য DRM-X 5.0 টিউটোরিয়াল

DRM-X 5.0 Introduction VideoDRM-X 5.0 ভূমিকা ভিডিও

DRM-X 5.0 এনক্রিপশন সফটওয়্যার প্ল্যাটফর্মের একটি নতুন প্রজন্ম। Haihaisoft সাধারণ DRM-X 5.0 ভিডিও ডেমো টিউটোরিয়াল প্রদান করে, যার মধ্যে রয়েছে DRM-X 5.0 ভূমিকা, ভিডিও এনক্রিপশন টিউটোরিয়াল, ওয়েবপেজ এনক্রিপশন টিউটোরিয়াল এবং কীভাবে HTML5 ভিডিও প্লেয়ার এম্বেড করতে হয়।

এখন দেখুন
DRM-X 5.0 ZJGet Windows Video TutorialWindows-এর জন্য DRM-X 5.0 ZJGet-এর মাধ্যমে ভিডিও কীভাবে সুরক্ষিত করবেন

এই ভিডিওটি দেখাবে কীভাবে ZJGet ব্রাউজার ব্যবহার করে উইন্ডোজে ফাইল এনক্রিপ্ট করতে হয়।

এখন দেখুন
DRM-X 5.0 ZJGet macOS Video TutorialmacOS-এর জন্য DRM-X 5.0 ZJGet-এর মাধ্যমে ভিডিও কীভাবে সুরক্ষিত করবেন

এই ভিডিওটি দেখাবে কীভাবে ZJGet ব্রাউজার ব্যবহার করে macOS ফাইল এনক্রিপ্ট করতে হয়।

এখন দেখুন
DRM-X 5.0 ZJGet Windows TutorialWindows-এর জন্য DRM-X 5.0 ZJGet দিয়ে শুরু করা

এই ভিডিওটি আপনাকে দেখাবে কিভাবে ZJGet ব্রাউজার ব্যবহার করে উইন্ডোজে এনক্রিপ্ট করা ফাইল ডাউনলোড, ইনস্টল এবং খুলতে হয়।

এখন দেখুন
DRM-X 5.0 ZJGet Text TutorialDRM-X 5.0 ZJGet ব্যবহারকারী গাইড

ZJGet ব্রাউজার ব্যবহারকারী গাইড। এই টিউটোরিয়ালটি আপনাকে ZJGet ব্রাউজারের মূল বৈশিষ্ট্য এবং ব্যবহারিক টিপস সহজে আয়ত্ত করতে সাহায্য করবে।

এখন দেখুন
DRM-X 5.0 ZJGet Graphic Tutorial AnswersDRM-X 5.0 ZJGet প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী (FAQ)

ZJGet ব্রাউজার ব্যবহার সংক্রান্ত প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী (FAQ)। এই বিভাগটি সবচেয়ে উপযোগী প্রশ্নোত্তরগুলি সংকলন করেছে যা আপনাকে আপনার মুখোমুখি হতে পারে এমন যেকোনো বাধা অতিক্রম করতে সাহায্য করবে।

এখন দেখুন