abdal/spotplayer-php
Composer 安装命令:
composer require abdal/spotplayer-php
包简介
PHP API client for SpotPlayer Secure Media Player service with DRM support
README 文档
README
یک کلاینت حرفهای 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)
- ایمیل: Prof.Shafiei@Gmail.com
- GitHub: @ebrasha
- Twitter/X: @ProfShafiei
- LinkedIn: profshafiei
- تلگرام: @ProfShafiei
📜 مجوز
این پروژه تحت مجوز GPL-2.0-or-later منتشر شده است.
توجه: این پکیج یک کلاینت مستقل PHP برای API اسپات پلیر است و به طور رسمی وابسته به اسپات پلیر نیست. قبل از استفاده از این پکیج، مطمئن شوید که یک حساب کاربری و کلید API معتبر اسپات پلیر دارید.
abdal/spotplayer-php 适用场景与选型建议
abdal/spotplayer-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4 次下载、GitHub Stars 达 1, 最近一次更新时间为 2026 年 01 月 05 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「license」 「DRM」 「media-player」 「spotplayer」 「ebrasha」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 abdal/spotplayer-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 abdal/spotplayer-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 abdal/spotplayer-php 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
PHP-Client which enables you to seamlessly integrate the Bitmovin API into your existing projects
HiDev plugin for license generation
Shaka PHP is a library that uses Shaka Packager for DASH and HLS packaging and encryption, supporting Common Encryption for Widevine and other DRM Systems.
A PSR-7 compatible library for making CRUD API endpoints
Cpanel Licensing Class
Fantastico Licensing Class
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 25
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-2.0-or-later
- 更新时间: 2026-01-05