meysamhashemi / vod-client-sdk
There is no license information available for the latest version (1.0.2) of this package.
This is a client package to make your development process more faster.
1.0.2
2020-03-26 19:52 UTC
Requires
- php: >=7.1
- ankitpokhrel/tus-php: ^0.0.0
- guzzlehttp/guzzle: ^6.3
This package is not auto-updated.
Last update: 2024-12-24 00:22:24 UTC
README
This package has written in pure php which can be implemented in any PHP framework.
For more details please kindly take a look at the API Doc
- The Package has too registered
class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. */ public function boot() { } /** * Register any application services. */ public function register() { $this->app->bind('arvan-vod-sdk', function ($app) { return VodSdk::setToken('Apikey xxxxxxxxxxxx'); }); } } // SomeController.php $vodSdk = app('arvan-vod-sdk');
- UserDomain:
** * UserDomain: * There are only two end points for userDomains (create and show). * please be informed that, create action is only available for just one time and if a user wants to change * their userDomain, they need to cantact to Arvan support. */ // POST $userDomain = $vodkSdk->userDomain(); $createdDomain = $userDomain->createDomain(['subdomain' => 'whatever']); // GET $getUserDomain = $userDomain->getDomain();
- Channel:
** * in order to create a channel create method is available which accepts and array as the sample in below */ // Post $channel = $vodSdk->channel(); $newChannel = $channel-> create([ 'title' => 'string', 'description' => 'string', 'secure_link_enabled' => false, 'secure_link_key' => 'string', 'secure_link_with_ip' => true, 'ads_enabled' => false, 'present_type' => 'auto', 'campaign_id' => 'string' ]); // GET (all channels) $allChannels = $channel->showAll(); // GET (get specific channhel by id) $channelDetails = $channel->show('********-****-****-****-********') // PATCH (update a channel) $updatedChannel = $channel->update('5c6b18de-9763-423f-8d3e-f2e84e93c9d5', [ 'title' => 'whatever from sdk' ]); // DELETE (delete a channel) $channel->update('********-****-****-****-********');
- File:
// GET (get the whole channel files) $channelId = 'xxxx-xxxx-xxxx-xxxx'; $file = $vodSdk->file(); $allChannelFiles = $file->showAll($channelId) // channel ID must be set as a string $music = storage_path('music.mp3'); $storageUrl = $file->createStorage($channelId, $music); ** * response will be file id and URL, URL can be used to get file offset * in order to findout whether the file is completely uploaded or not. */ $uploadedFile = $file->upload($storageUrl); // HEAD (Uploaded file url is required) $fileOffset = $file->getOffset('https://napi.arvancloud.com/**************'); // DELETE (by file ID) $file->delete('********-****-****-****-********');
- Video / Audio:
$channelId = 'xxxx-xxxx-xxxx-xxxx'; $fileId = 'xxxx-xxxx-xxxx-xxxx'; $video = $file->video(); // GET (get the whole channel videos) $allChannelVideos = $video->showAll($channelId); // GET (get specific video by ID) $getVideo = $video->showAll('********-****-****-****-********'); //VideoId // POST (convert an uploaded file / upload with an address (URL) $newVideo = $video->create([ [ 'title' => 'string', 'description' => 'string', 'video_url' => 'string', // should be null or removed if file_id is exist 'file_id' => 'string', 'convert_mode' => 'auto/manual/profile', 'profile_id' => 'string', 'parallel_convert' => false, 'thumbnail_time' => 0, 'watermark_id' => 'string', 'watermark_area' => 'CENTER', // required if watermark_id is set 'convert_info' => [ // required if convert_mode is manual [ 'audio_bitrate' => 0, 'video_bitrate' => 0, 'resolution' => 'string' ], [ 'audio_bitrate' => 0, 'video_bitrate' => 0, 'resolution' => 'string' ], [ 'audio_bitrate' => 0, 'video_bitrate' => 0, 'resolution' => 'string' ] ] ] ]); // PATCH (update video or audio. Only title and description are editable) $updatedVideo = $video->update('video_id', [ 'title' => 'whatever', 'description' => 'something...' ]); // DELETE (by video / audio ID) $video->delete('********-****-****-****-********');
- Watermark:
// GET (get all channel watermarks) $channelId = 'xxxx-xxxx-xxxx-xxxx'; $watermark = $vodSdk->watermark(); $allChannelWarermark = $watermark->showAll($channelId) // channel ID must be set as a string // GET (get specific watermkark) $getWatermark = $watermark->showAll('********-****-****-****-********'); //WatermarkId // Post $newWatermark = $watermark->create([ 'title' => 'test', 'description' => 'dasdas', 'watermark' => storage_path('1.jpg') ], 'channel_id'); // PATCH $updatedWatermark = $watermark->update([ 'title' => 'new Name', 'description' => 'updated description' ]); // DELETE (by watermark ID) $watermark->delete('********-****-****-****-********'); //WatermarkId
- Subtitle:
$subtitle = $vodSdk->subtitle(); // GET (get all video subtitles) $videoSubtitles = $subtitle->showAll('********-****-****-****-********'); //VideoId // GET (get specific subtitle) $subtitle = $subtitle->show('********-****-****-****-********'); //SubtitleId // POST (create a subtitle) $newSubtitle = $subtitle->create([ 'lang' => 'en', 'subtitle' => storage_path('test.vtt') ], '********-****-****-****-********'); //VideoId // DELETE $subtitle->delete('********-****-****-****-********'); //SubtitleId
- Porfile:
$profile = $vodSdk->profile(); //GET (get all channel profiles) $allChannelprofiles = $profile->showAll('********-****-****-****-********'); //ChannelID //GET (get specific profile) $profile = $profile->show('********-****-****-****-********'); //ProfileID //POST $newProfile = $profile->create([ 'title' => 'string', 'description' => 'string', 'convert_mode' => 'auto', 'thumbnail_time' => 0, 'watermark_id' => 'string', 'watermark_area' => 'CENTER', 'convert_info' => [ [ 'audio_bitrate' => 0, 'video_bitrate' => 0, 'resolution' => 'string' ] ] ], '********-****-****-****-********'); //ChannelID //PATCH $newProfile = $profile->update('8a953ada-30b6-4279-b1ba-217ca108c06a', [ 'title' => 'updated title', 'description' => 'updated description', 'convert_mode' => 'manual', 'thumbnail_time' => 1, 'convert_info' => [ [ 'audio_bitrate' => ***, 'video_bitrate' => ***, 'resolution' => '****x***' ] ] ]); // DELETE $profile->delete('********-****-****-****-********'); //ProfileId