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: 10
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-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-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-01 11:34:59 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.