abdal/spotplayer-php

PHP API client for SpotPlayer Secure Media Player service with DRM support

Installs: 3

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/abdal/spotplayer-php

1.2.0 2026-01-05 20:35 UTC

This package is auto-updated.

Last update: 2026-01-06 10:03:36 UTC


README

زبان: English | فارسی

License PHP Version Packagist

یک کلاینت حرفه‌ای PHP برای سرویس SpotPlayer که یک پخش‌کننده رسانه امن با پشتیبانی از مدیریت حقوق دیجیتال (DRM) است. این پکیج رابطی ساده و کاربردی برای مدیریت لایسنس‌ها، ایجاد لایسنس‌های تستی و ویرایش لایسنس‌های موجود از طریق API اسپات پلیر فراهم می‌کند.

🎯 چرا این نرم‌افزار ساخته شد

اسپات پلیر یک پخش‌کننده رسانه امن تخصصی است که تمرکز اصلی آن روی مدیریت حقوق دیجیتال (DRM) و جلوگیری از سرقت محتوا و دسترسی غیرمجاز می‌باشد. این پکیج PHP برای ساده‌سازی یکپارچه‌سازی API اسپات پلیر در برنامه‌های PHP ایجاد شده است و به توسعه‌دهندگان امکان می‌دهد تا:

  • مدیریت آسان لایسنس‌ها به صورت برنامه‌نویسی بدون نیاز به عملیات دستی در داشبورد
  • خودکارسازی ایجاد لایسنس برای پلتفرم‌های تجارت الکترونیک و دوره‌های آموزشی
  • یکپارچه‌سازی محافظت DRM در برنامه‌های PHP موجود
  • پشتیبانی از هر دو الگوی OOP و متد استاتیک برای انعطاف‌پذیری بیشتر

چه در حال ساخت یک پلتفرم آموزش الکترونیک باشید، سرویس استریم ویدیو یا هر برنامه‌ای که نیاز به محتوای رسانه‌ای محافظت شده دارد، این پکیج راه‌حلی قوی و مناسب برای توسعه‌دهندگان ارائه می‌دهد که به کاربران کمک می‌کند مشکل مدیریت لایسنس‌های محتوای دیجیتال محافظت شده را به طور مؤثر حل کنند.

✨ ویژگی‌ها و قابلیت‌ها

  • الگوهای استفاده دوگانه: پشتیبانی از هر دو روش فراخوانی مبتنی بر نمونه OOP و متد استاتیک
  • سازگار با PHP 7+: کار با PHP 7.0 و نسخه‌های بالاتر
  • یکپارچه‌سازی GuzzleHttp: کلاینت HTTP حرفه‌ای برای ارتباط قابل اعتماد با API
  • مدیریت لایسنس: ایجاد، ویرایش و مدیریت لایسنس‌های اسپات پلیر
  • پشتیبانی از لایسنس تستی: ایجاد آسان لایسنس‌های تستی برای توسعه
  • اعتبارسنجی جامع: اعتبارسنجی داخلی برای فیلدهای الزامی
  • مدیریت خطا: پیام‌های خطای دقیق و مدیریت استثنا
  • امنیت نوع: راهنمای نوع و مستندات مناسب
  • بارگذاری خودکار PSR-4: پشتیبانی از بارگذاری خودکار استاندارد Composer
  • پوشش کامل API: پشتیبانی کامل از تمام ویژگی‌های لایسنس اسپات پلیر شامل واترمارک، محدودیت دستگاه و کنترل دسترسی

📦 نیازمندی‌ها

  • PHP >= 7.0
  • Composer
  • GuzzleHttp (به صورت خودکار از طریق Composer نصب می‌شود)
  • کلید API اسپات پلیر (از داشبورد اسپات پلیر خود دریافت کنید)

🚀 نصب

پکیج را از طریق Composer نصب کنید:

composer require abdal/spotplayer-php

یا آن را به composer.json خود اضافه کنید:

{
    "require": {
        "abdal/spotplayer-php": "^1.0.0"
    }
}

سپس اجرا کنید:

composer install

📖 نحوه استفاده از نرم‌افزار

روش 1: استفاده از نمونه OOP

<?php

require_once 'vendor/autoload.php';

use Abdal\SpotPlayer\SpotPlayer;

// مقداردهی اولیه با کلید API شما
$spotPlayer = new SpotPlayer('YOUR_API_KEY_HERE');

// ایجاد یک لایسنس ساده
$licenseData = [
    'course' => ['5d2ee35bcddc092a304ae5eb'],
    'name' => 'customer-name',
    'watermark' => [
        'texts' => [
            ['text' => '09022223301']
        ]
    ]
];

$result = $spotPlayer->createLicense($licenseData);

echo "License ID: " . $result['_id'] . "\n";
echo "License Key: " . $result['key'] . "\n";
echo "License URL: " . $result['url'] . "\n";

روش 2: استفاده از متدهای استاتیک

می‌توانید از متدهای استاتیک به دو روش استفاده کنید:

گزینه الف: تنظیم کلید API یک بار، سپس استفاده از متدهای استاتیک

<?php

require_once 'vendor/autoload.php';

use Abdal\SpotPlayer\SpotPlayer;

// تنظیم کلید API یک بار
SpotPlayer::setStaticApiKey('YOUR_API_KEY_HERE');

// استفاده از متدهای استاتیک (از طریق متد جادویی __callStatic)
$licenseData = [
    'course' => ['5d2ee35bcddc092a304ae5eb'],
    'name' => 'customer-name',
    'watermark' => [
        'texts' => [
            ['text' => '09022223301']
        ]
    ]
];

$result = SpotPlayer::createLicense($licenseData);

گزینه ب: ارسال مستقیم کلید API به متد استاتیک

<?php

require_once 'vendor/autoload.php';

use Abdal\SpotPlayer\SpotPlayer;

// ارسال مستقیم کلید API به متد
$licenseData = [
    'course' => ['5d2ee35bcddc092a304ae5eb'],
    'name' => 'customer-name',
    'watermark' => [
        'texts' => [
            ['text' => '09022223301']
        ]
    ]
];

// استفاده از متد استاتیک صریح
$result = SpotPlayer::createLicenseStatic($licenseData, 'YOUR_API_KEY_HERE');

// یا استفاده از متد جادویی (نتیجه یکسان)
$result = SpotPlayer::createLicense($licenseData, 'YOUR_API_KEY_HERE');

ایجاد لایسنس تستی

$testLicenseData = [
    'test' => true,
    'course' => ['5d2ee35bcddc092a304ae5eb'],
    'name' => 'test-customer',
    'watermark' => [
        'texts' => [
            ['text' => '09022223301']
        ]
    ]
];

$result = $spotPlayer->createLicense($testLicenseData);

ایجاد لایسنس با ویژگی‌های کامل

$fullLicenseData = [
    'test' => false,
    'course' => ['5d2ee35bcddc092a304ae5eb', '5d2ee35bcddc092a304ae5ec'],
    'offline' => 30,
    'name' => 'premium-customer',
    'payload' => 'order-12345',
    'data' => [
        'confs' => 0,
        'limit' => [
            '5d2ee35bcddc092a304ae5eb' => '0-',
            '5d2ee35bcddc092a304ae5ec' => '1,4-6,10-'
        ]
    ],
    'watermark' => [
        'position' => 511,
        'reposition' => 15,
        'margin' => 40,
        'texts' => [
            [
                'text' => '09022223301',
                'repeat' => 10,
                'font' => 1,
                'weight' => 1,
                'color' => 2164260863,
                'size' => 50,
                'stroke' => ['color' => 2164260863, 'size' => 1]
            ]
        ]
    ],
    'device' => [
        'p0' => 1,  // تمام دستگاه‌ها
        'p1' => 1,  // ویندوز
        'p2' => 0,  // MacOS
        'p3' => 0,  // Ubuntu
        'p4' => 0,  // Android
        'p5' => 0,  // iOS
        'p6' => 0   // WebApp
    ]
];

$result = $spotPlayer->createLicense($fullLicenseData);

ویرایش لایسنس موجود

$licenseId = '5dcab540796f5d4d48a6570f';

$editData = [
    'name' => 'updated-customer',
    'data' => [
        'limit' => [
            '5d2ee35bcddc092a304ae5eb' => '0-'
        ]
    ],
    'device' => [
        'p1' => 1  // به‌روزرسانی فقط محدودیت دستگاه ویندوز
    ]
];

$result = $spotPlayer->editLicense($licenseId, $editData);

مدیریت خطا

try {
    $result = $spotPlayer->createLicense($licenseData);
} catch (\InvalidArgumentException $e) {
    // خطاهای اعتبارسنجی (فیلدهای الزامی مفقود، و غیره)
    echo "خطای اعتبارسنجی: " . $e->getMessage();
} catch (\RuntimeException $e) {
    // خطاهای درخواست API
    echo "خطای API: " . $e->getMessage();
}

🔧 متدهای API

createLicense(array $licenseData, string|null $apiKey = null): array (متد نمونه)

یک لایسنس جدید در اسپات پلیر ایجاد می‌کند. می‌تواند روی یک نمونه فراخوانی شود.

createLicenseStatic(array $licenseData, string|null $apiKey = null): array (متد استاتیک)

یک لایسنس جدید در اسپات پلیر ایجاد می‌کند. می‌تواند به صورت استاتیک فراخوانی شود. همچنین می‌توانید از SpotPlayer::createLicense() استفاده کنید که به صورت خودکار این متد را از طریق __callStatic فراخوانی می‌کند.

فیلدهای الزامی:

  • course (array): آرایه شناسه‌های دوره
  • name (string): نام مشتری
  • watermark.texts (array): آرایه اشیاء متن واترمارک
    • watermark.texts[].text (string): متن واترمارک (الزامی)

فیلدهای اختیاری:

  • test (bool): برای لایسنس‌های تستی روی true تنظیم کنید
  • offline (int): روزهای دسترسی آفلاین (0-365)
  • payload (string): داده‌های payload سفارشی
  • data (array): داده‌های لایسنس شامل محدودیت‌ها و پیکربندی‌ها
  • watermark (array): پیکربندی کامل واترمارک
  • device (array): محدودیت‌های دسترسی دستگاه

بازگشت: آرایه حاوی _id، key و url

editLicense(string $licenseId, array $licenseData, string|null $apiKey = null): array (متد نمونه)

یک لایسنس موجود را ویرایش می‌کند. می‌تواند روی یک نمونه فراخوانی شود. فقط فیلدهای ارائه شده به‌روزرسانی می‌شوند.

editLicenseStatic(string $licenseId, array $licenseData, string|null $apiKey = null): array (متد استاتیک)

یک لایسنس موجود را ویرایش می‌کند. می‌تواند به صورت استاتیک فراخوانی شود. همچنین می‌توانید از SpotPlayer::editLicense() استفاده کنید که به صورت خودکار این متد را از طریق __callStatic فراخوانی می‌کند. فقط فیلدهای ارائه شده به‌روزرسانی می‌شوند.

پارامترها:

  • $licenseId (string): شناسه لایسنس برای ویرایش
  • $licenseData (array): فیلدهای برای به‌روزرسانی
  • $apiKey (string|null): کلید API اختیاری

بازگشت: داده‌های لایسنس به‌روزرسانی شده

🐛 گزارش مشکلات

اگر با مشکلی مواجه شدید یا در پیکربندی مشکل دارید، لطفاً از طریق ایمیل Prof.Shafiei@Gmail.com با ما در تماس باشید. همچنین می‌توانید مشکلات را در GitLab یا GitHub گزارش دهید.

❤️ حمایت مالی

اگر این پروژه برای شما مفید بود و مایل به حمایت از توسعه بیشتر هستید، لطفاً در نظر داشته باشید که کمک مالی کنید:

🤵 برنامه‌نویس

ساخته شده با عشق توسط ابراهیم شفیعی (EbraSha)

📜 مجوز

این پروژه تحت مجوز GPL-2.0-or-later منتشر شده است.

توجه: این پکیج یک کلاینت مستقل PHP برای API اسپات پلیر است و به طور رسمی وابسته به اسپات پلیر نیست. قبل از استفاده از این پکیج، مطمئن شوید که یک حساب کاربری و کلید API معتبر اسپات پلیر دارید.