n3xt0r / dashclip-delivery
video distribution: ingests (local/Dropbox), SHA-256 dedupes, auto-assigns to channels (weighted quotas), delivers signed time-limited offer links for single/ZIP downloads (with info.csv), tracks downloads/returns, generates ffmpeg previews—plus real-time ZIP progress over WebSockets and a Filament
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 13
Type:project
pkg:composer/n3xt0r/dashclip-delivery
Requires
- php: ^8.4
 - ext-intl: *
 - ext-zip: *
 - bezhansalleh/filament-shield: ^4.0
 - filament/filament: ^4.0
 - gboquizosanchez/filament-log-viewer: ^2.0.0
 - laravel/framework: ^12.0
 - laravel/reverb: ^1.0
 - laravel/tinker: ^2.10.1
 - maennchen/zipstream-php: ^3.2
 - pbmedia/laravel-ffmpeg: ^8.0
 - spatie/flysystem-dropbox: ^3.0
 - spatie/laravel-activitylog: ^4.10
 - webklex/laravel-imap: ^6.2
 
Requires (Dev)
- fakerphp/faker: ^1.23
 - laravel/pail: ^1.2.2
 - laravel/pint: ^1.13
 - laravel/sail: ^1.41
 - mockery/mockery: ^1.6
 - nunomaduro/collision: ^8.6
 - phpunit/phpunit: ^12.3.12
 
- dev-master
 - 3.x-dev
 - 3.0.0-beta.3
 - 3.0.0-beta.2
 - 3.0.0-beta.1
 - 3.0.0-alpha.3
 - 3.0.0-alpha.2
 - 3.0.0-alpha
 - 2.x-dev
 - 2.5.0
 - 2.4.0
 - 2.3.0
 - 2.2.0
 - 2.1.3
 - 2.1.2
 - 2.1.1
 - 2.1.0
 - 2.0.2
 - 2.0.1
 - 2.0.0
 - 1.2.1
 - 1.2.0
 - 1.1.3
 - 1.1.2
 - 1.1.1
 - 1.1.0
 - 1.0.1
 - dev-develop
 - dev-dependabot/composer/laravel/framework-12.36.1
 - dev-dependabot/composer/phpunit/phpunit-12.4.2
 - dev-dependabot/composer/filament/filament-4.2.0
 - dev-dependabot/composer/laravel/sail-1.47.0
 - dev-hotfix
 - dev-fix/ffmpeg
 - dev-feature/tests
 - dev-refactor/remove-deprecated
 - dev-feature/video-upload
 - dev-codex/add-video-duration-handling-in-form-submission
 - dev-feature/upload-js
 - dev-codex/add-video-upload-with-slider-for-selection
 - dev-feature/upload
 - dev-feature/126-einführung-eines-rollen--und-rechtesystems-für-registrierte-user
 - dev-codex/add-integration-tests-for-maillogresource
 - dev-codex/add-integration-tests-for-mail-classes
 - dev-codex/add-unittests-and-integration-tests-for-branch-2.x
 - dev-feature/stats
 - dev-codex/replace-app-version-with-githubversion
 - dev-codex/update-statistics-view-with-filters
 - dev-codex/add-statistics-page-to-backend-hqolyh
 - dev-codex/add-statistics-page-to-backend
 - dev-optimize/optimize
 
This package is auto-updated.
Last update: 2025-11-03 22:00:29 UTC
README
Dashclip-Delivery
Project Description
Dashclip-Delivery is a Laravel application for distributing video material to various channels. New videos are
ingested from an upload directory or from Dropbox, stored on a configured storage, and then fairly distributed
to channels based on quotas and weighting. Channels receive signed links via email to an offer page,
where they can download individual videos or a ZIP file with an accompanying info.csv. Unneeded videos
can be returned, and all downloads are logged.
Features
- Ingest: recursive scanning of an upload folder (local or Dropbox) with deduplication via SHA-256.
 - Distribution: assignment of new or expired videos to channels (weighted round-robin, weekly quota).
 - Notification: sending emails with temporary download links and offer pages.
 - Offer & Download: web interface for selecting and ZIP-downloading selected videos including 
info.csvand tracking of pickups. - Previews: generation of short MP4 clips using 
ffmpeg. - Dropbox Integration: OAuth connection and automatic token refresh.
 
Prerequisites
- PHP 8.4
 - Composer
 - Node.js & npm (for building assets)
 - ffmpeg
 - A Laravel-supported database (e.g., SQLite)
 - Optional: Dropbox app with Client ID and Secret
 
Installation
cp .env.example .env composer install npm install php artisan key:generate php artisan migrate
Useful Commands
| Command | Description | 
|---|---|
php artisan ingest:unzip | 
Extracts ZIP files from a directory. | 
php artisan ingest:scan | 
Scans the upload folder and stores new videos. | 
php artisan info:import | 
Imports clip information from an info.csv. | 
php artisan assign:distribute | 
Distributes videos to channels. | 
php artisan notify:offers | 
Sends offer links via email. | 
php artisan notify:reminders | 
Notifies channels about pending offers before expiration. | 
php artisan assign:expire | 
Marks expired assignments and temporarily blocks channels. | 
php artisan dropbox:refresh-token | 
Refreshes the Dropbox token. | 
php artisan weekly:run | 
Executes Expire → Distribute → Notify in sequence. | 
php artisan video:cleanup | 
Deletes downloaded videos whose expiration has exceeded the specified number of weeks. | 
Documentation
Detailed explanations of structure and usage can be found in the docs directory:
Tests
composer test
License
This project is dual-licensed:
- AGPL-3.0-or-later - Free for open source use
 - Commercial License - For proprietary use
 
See the respective license files for details.
Contact for commercial licensing: info@php-dev.info
Copyright
Copyright (c) 2025 Ilya Beliaev This project includes code licensed under AGPL-3.0. Commercial licensing available separately.