foxws/laravel-shaka
| Install | |
|---|---|
composer require foxws/laravel-shaka |
|
| Latest Version: | 3.0.1 |
| PHP: | ^8.4 |
| Laravel: | 13 |
| Older releases: | 11 · 12 |
| License: | MIT |
| Last Updated: | Oct 15, 2026 |
| Links: | GitHub · Packagist |
Laravel Shaka
Package video and audio into HLS and DASH with Shaka Packager, on top of foxws/laravel-media. Read the source from any Laravel disk, and write the result to any disk.
Shaka Packager packages already-encoded video; it doesn't re-encode. That makes it fast. Encode several qualities first with laravel-media's rendition ladder, then package them together.
See the full documentation: Installation, Usage, Testing, Configuration, Upgrading from 2.x.
Requirements
- PHP 8.4 or higher
- Laravel 13
- foxws/laravel-media 0.3.4 or higher
- The Shaka Packager binary
Installation
composer require foxws/laravel-shaka
Install the packager binary, then check the setup:
php artisan media:info
[!TIP] Let your AI agent do the hard parts. This package ships a Laravel Boost skill,
laravel-shaka-development, that teaches your agent how to install, configure and use Laravel Shaka. Install Boost and select the skill when prompted:composer require laravel/boost --dev php artisan boost:installAlready using Boost? Run
php artisan boost:update --discoverto pick up the skill. Then just ask, for example: "Package my encoded videos into HLS and DASH with cbcs encryption."
Quick start
use Foxws\Media\Encryption\ProtectionScheme;
use Foxws\Media\Facades\Media;
$result = Media::fromDisk('media')
->open('videos/clip.mp4')
->shaka()
->addStreamsFrom()
->withHlsPlaylist()
->withDashManifest()
->withEncryption(scheme: ProtectionScheme::Cbcs)
->toDisk('s3')
->save('streams/clip');
This writes one set of encrypted segments with both an HLS playlist and a DASH manifest, and uploads them to streams/clip on the s3 disk. shaka() is laravel-media's packaging builder with the Shaka Packager driver; set MEDIA_PACKAGER=shaka to use it for every package() call.
Shaka Packager's other options, such as DRM systems, key servers and live DASH, are typed methods on ShakaOptions:
use Foxws\Shaka\ProtectionSystem;
use Foxws\Shaka\ShakaOptions;
->withOptions(ShakaOptions::make()->protectionSystems(ProtectionSystem::Widevine)->lowLatencyDashMode())
Testing
composer test
Links
Credits
Used by Stry, a self-hosted video streaming app.
AI, specifically Claude, was used to help build this package. All AI-assisted output is reviewed by me, and I retain final say over everything that is implemented and released.
License
MIT. See License File.
Related Packages
Encode video into several qualities and package it into HLS and DASH with Shaka...
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 3.0.1 | ^8.4 | ^13.0 | MIT | |
| 3.0.0 | ^8.4 | ^13.0 | MIT | |
| 2.4.0 | ^8.3 | ^12.0|| | MIT | |
| 2.3.2 | ^8.3 | ^12.0|| | MIT | |
| 2.3.1 | ^8.3 | ^12.0|| | MIT | |
| 2.3.0 | ^8.3 | ^12.0|| | MIT | |
| 2.2.1 | ^8.3 | ^12.0|| | MIT | |
| 2.2.0 | ^8.3 | ^12.0|| | MIT | |
| 2.1.1 | ^8.3 | ^12.0|| | MIT | |
| 2.1.0 | ^8.3 | ^12.0|| | MIT | |
| 2.0.2 | ^8.3 | ^12.0|| | MIT | |
| 2.0.1 | ^8.3 | ^12.0|| | MIT | |
| 2.0.0 | ^8.3 | ^12.0|| | MIT | |
| 1.9.0 | ^8.3 | ^11.0 || | MIT | |
| 1.8.3 | ^8.3 | ^11.0 || | MIT | |
| 1.8.2 | ^8.3 | ^11.0 || | MIT | |
| 1.8.1 | ^8.3 | ^11.0 || | MIT | |
| 1.8.0 | ^8.3 | ^11.0 || | MIT | |
| 1.7.0 | ^8.3 | ^11.0 || | MIT | |
| 1.6.0 | ^8.3 | ^11.0 || | MIT | |
| 1.5.0 | ^8.3 | ^11.0 || | MIT | |
| 1.4.0 | ^8.3 | ^11.0 || | MIT | |
| 1.3.0 | ^8.3 | ^11.0 || | MIT | |
| 1.2.0 | ^8.3 | ^11.0 || | MIT | |
| 1.1.0 | ^8.3 | ^11.0 || | MIT | |
| 1.0.0 | ^8.3 | ^11.0 || | MIT | |
| 0.9.0 | ^8.3 | ^11.0 || | MIT | |
| 0.8.0 | ^8.3|| | ^11.0|| | MIT | |
| 0.7.0 | ^8.3|| | ^11.0|| | MIT | |
| 0.6.0 | ^8.3|| | ^11.0|| | MIT |
Showing the latest 30 of 35. See every release on Packagist