Skip to content

A highly targeted package for downloading video in chunks.

License

Notifications You must be signed in to change notification settings

dev-think-one/nova-chunked-video

Repository files navigation

Laravel nova ChunkedVideo Field

Packagist License Packagist Version Total Downloads Build Status Code Coverage Scrutinizer Code Quality

Laravel Nova field to upload big size video using chunks.

Versions targeting

Nova Package
V1-3 V1
V4 V2-3

Installation

You can install the package via composer:

composer require think.studio/nova-chunked-video
# optional publish configs
php artisan vendor:publish --provider="NovaChunkedVideo\FieldServiceProvider" --tag="config"

Usage

\NovaChunkedVideo\ChunkedVideo::make( 'Video', 'big_video' )
    ->acceptedTypes( 'video/mp4' )
    ->disk( 'my_private_disk' )
    ->store( function ( $filePath, $disk, $model, $attribute, $request ) {
        // something like delete old video and save new
        $model->big_video = $filePath;
        $model->save();
        
        // WARNING: response should return url.
        return Storage::disk($disk)->url($filePath);
    } )
    ->preview( function ($value, $disk, $model ) {
        return Storage::disk($disk)->url($value);
    } )
    ->download(function (NovaRequest $request, Model $model, ?string $disk, $value) {
        return $value ? Storage::disk($disk)->download($value) : null;
    })
    ->delete(function (NovaRequest $request, $model, ?string $disk, $value) {
        if ($value) {
            Storage::disk($disk)->delete($value);
        }
    
        return true;
    })
    ->help( 'Usually a large video: 0.5-2GB. Max size 3GB' ),

Credits

  • Think Studio

About

A highly targeted package for downloading video in chunks.

Resources

License

Stars

Watchers

Forks

Packages

No packages published