FastPix Video API

Local plugins ::: local_fastpix
Maintained by FastPix Inc, Tharun Budidha
A foundation Moodle plugin that connects your site to FastPix, the video hosting and streaming platform. It provides the shared HTTP gateway, asset cache, webhook ingestion, and JWT signing used by the FastPix activity module, filter, and editor plugins. Install it once, and the rest of the FastPix × Moodle suite builds on top of it.
Latest release:
2 sites
47 downloads
Current versions available: 1

FEATURES

Gateway and integration
- Direct upload and URL-pull workflows for video assets.
- Server-side request forgery (SSRF) protection on URL-pull sources.
- Shared HTTP gateway with circuit breaker and rate limiter, backed by Moodle Universal Cache.
- Asset cache that keeps Moodle and FastPix in sync without re-fetching metadata on every request.

Webhook ingestion
- Idempotent ingestion with per-asset ordering; duplicate events are silently ignored.
- Dual-secret rotation: when you rotate the signing secret, the verifier accepts the previous value for 30 minutes, so you can update both sides without losing deliveries.
- Public webhook endpoint at /local/fastpix/webhook.php.
- Subscribes to video.media.created, video.media.ready, video.media.updated, video.media.failed, and video.media.deleted events.

Playback and DRM
- Local RS256 JWT signing for private and DRM-protected playback. The signing key is generated on first use.
- Optional DRM, controlled by a feature flag and a DRM Configuration ID. If only one is set, DRM stays disabled.
- Signed playback tokens are time-limited and tied to the requesting user, so links can't be shared outside the course context.

Operations and observability
- Public health check endpoint at /local/fastpix/health.php — no authentication required, rate-limited to 30 requests per minute per IP, returns JSON.
- Compatible with Pingdom, UptimeRobot, and Prometheus blackbox exporter.
- Returns 200 when healthy, 503 on upstream failure, and 429 when rate-limited.

Privacy and data hygiene
- Full Moodle Privacy API support, including per-asset deletion under GDPR.
- User identifiers are sent to FastPix only as a site-specific HMAC value (user_hash), never as raw Moodle user IDs.
- The webhook ledger is pruned after 90 days; soft-deleted assets are permanently removed after a 7-day grace window.


REQUIREMENTS

- Moodle 4.5 LTS or later.
- PHP 8.1 or later (tested through PHP 8.3).
- A FastPix account with API credentials and a webhook signing secret. Sign up at https://dashboard.fastpix.com/signup if you don't have one.
- A shared Moodle Universal Cache (MUC) backend such as Redis, Memcached, or the file store on a single-server install with one PHP-FPM pool. The gateway circuit breaker and rate limiter rely on shared cache state, so they need a backend that all PHP workers can reach.


INSTALL

1. Download the latest release from this plugins directory page.
2. Sign in to your Moodle site as an administrator.
3. Go to Site administration > Plugins > Install plugins and upload the ZIP file. Don't unzip it first.
4. Continue through the validation screen, then select Upgrade Moodle database now.
5. Open Site administration > Server > FastPix and paste your API Key, API Secret, and webhook signing secret.

Full installation and configuration instructions live in the README on GitHub: https://github.com/FastPix/moodle-local_fastpix#install


CAPABILITIES

- local/fastpix:configurecredentials — Open the FastPix settings page and edit API credentials, the webhook secret, and DRM configuration. Default role: Manager.


THIRD-PARTY LIBRARIES

This plugin bundles firebase/php-jwt v6.10.0 (BSD-3-Clause) under classes/vendor/php-jwt/ for JWT signing. There are no Composer dependencies at runtime. See thirdpartylibs.xml for machine-readable details.


PRIVACY

Implements a full Moodle Privacy API provider. Raw Moodle user IDs are never sent to FastPix; instead, a site-specific HMAC value (user_hash) is used. The webhook ledger is pruned after 90 days, and soft-deleted assets are permanently removed after a 7-day grace window. Per-asset deletion under GDPR is supported.


LICENSE

Copyright © 2026 FastPix Inc. Released under the GNU GPL v3 or later: https://www.gnu.org/licenses/gpl-3.0.html

Screenshots

Screenshot #0
Screenshot #1
Screenshot #2

Contributors

FastPix Inc (Lead maintainer)
Tharun Budidha: Developer
Please login to view contributors details and/or to contact them

Comments

Show comments
Please login to post comments