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

3.0.0-alpha.3 2025-10-31 20:23 UTC

README

CI Maintainability Code Coverage Security Rating Latest Stable Version Latest Unstable Version License

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.csv and 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:

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.