sajed-zarinpour/spotplayer

spotplayer.ir 视频服务(DRM)API 的包装器。

v1.0.1 2024-02-09 21:35 UTC

This package is auto-updated.

Last update: 2024-09-15 20:34:31 UTC


README

Laravel 对 spotplayer.ir 视频服务(DRM)API 的包装器

此包提供了一个用于 spotplayer.ir 网站的 API 包装器。Spotplayer 是一个面向教师的视频分享网站,它提供了一种在他们的网站或 Spotplayer 应用程序(适用于 Windows、MacOS、Ubuntu、IOS 和 Android)上流式传输他们的视频的方式,从而确保他们的内容的版权。

安装

步骤 1

使用 Composer 安装此包

composer require sajed-zarinpour/spotplayer

步骤 2

使用以下命令发布包的配置文件

php artisan vendor:publish --provider="SajedZarinpour\SpotPlayer\Providers\SpotPlayerServiceProvider"

步骤 3

config/spotplayer.php

使用方法

该包提供 Facade 和辅助函数。假设你想调用一个函数 some_func,以下调用是等价的:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use SajedZarinpour\Spotplayer\Facades\SpotPlayer;

class SpotPlayerController extends Controller
{
    
    public function play(Request $request)
    {
       ...
       SpotPlayer::some_func();
       ...
    }
}

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;


class SpotPlayerController extends Controller
{
    
    public function play(Request $request)
    {
         ...
         spotplayer()->some_func();
         ...
    }
}

注意使用 Facade 时的导入。

基本使用方法

环境变量

SPOTPLAYER_API=YOURAPIKEY
SPOTPLAYER_MODE=test # OR production
SPOTPLAYER_DOMAIN=localhost # YOUR DOMAIN

生成许可证

// Setting up a device
$device = spotplayer()->setDevice(
    $numberOfAllowedActiveDevices=2, 
    $Windows=0, 
    $MacOS=0, 
    $Ubuntu=0, 
    $Android=0, 
    $IOS=0, 
    $WebApp=2
);

// Generating a license
$licence = spotplayer()->licence(
    $name='John Doe', 
    $courses=['courseId1','courseId2'], 
    $watermarks='watermark text', 
    $device, 
    $payload='payload'
);

dump('licence id is:' . $licence['_id']);
dump('licence key is:' . $licence['key']);
dump('licence URL is:' . $licence['url']);

die;

注意

要生成 cookie X,如果你在本地主机上提供服务,确保你使用以下方式运行你的 Laravel 程序:

php artisan serve --host=localhost

否则 cookie 不会设置。此外,确保 Laravel 不会通过添加以下内容到 Midllware/EncryptCookies 中的 $except 数组来加密 cookie X

protected $except = ['X'];

测试

该包使用 pest 进行测试。确保你已正确设置 Pest.php

uses(
    Tests\TestCase::class,
)->in('Feature', '../vendor/sajed-zarinpour/spotplayer/tests');

此外,打开 vendor/sajed-zarinpour/spotplayer/tests/Unit/CourseTest.php 并编辑文件以使用你的课程数据之一。

dataset('provide_getCourseDetail_data', function () {
    return [
        [
            'put your spotplayer course id here!',
        ]
    ];
});

运行以下命令以运行测试

./vendor/bin/pest vendor/sajed-zarinpour/spotplayer/tests/

示例

你可以参考 laravel 最小示例 以获取最小示例。

文档

你可以参考 文档 获取更多信息。