LearnPlug Video Tracker Documentation
LearnPlug Video Tracker
LearnPlug Video Tracker · Moodle activity module · Documentation
Official product guide

LearnPlug Video Tracker

Reliable video progress, completion and engagement reporting inside Moodle

Video Tracker is a Moodle activity module that lets teachers add video-based learning to a course, save each learner’s watched progress, resume playback and complete or grade the activity using a configured viewing threshold.

Moodle activity Moodle 4.5–5.2 Starter & Professional Moodle Privacy API
Explore the editions ▶
Component mod_videotracker
Current release 1.2
Minimum Moodle 4.5
Maximum tested 5.2

What the activity does

  • Adds uploaded or externally hosted video to a Moodle course.
  • Records watched percentage, duration, last position and completion state per learner.
  • Resumes playback from the last recorded position.
  • Supports a fixed maximum grade of 100 and percentage-based completion.
  • Provides a teacher report with learner search, status and group filters.
  • Integrates with Moodle backup/restore, Privacy API and the Moodle App flow.
Edition naming: this guide uses Starter for the permanent, self-contained edition distributed without a licence key, and Professional for the commercially licensed edition.
Edition guide

Starter vs Professional

Both editions use the same Moodle component and activity type. Professional can upgrade Starter in place while preserving existing activities and learner progress.

Capability Starter Professional
Moodle-hosted video uploads Included Included
YouTube privacy-enhanced embeds Included Included
Public / unlisted Vimeo Included Included
Direct HTML5 URLs (MP4, WebM, HLS where supported) Included Included
Poster image and 16:9, 21:9, 4:3, 1:1 embed ratios Included Included
Saved learner progress and resume position Included Included with active licence
Percentage completion and gradebook integration Included Included with active licence
Teacher report: search, status and group filters Included Advanced report
Individual and bulk progress reset Included Included
CSV report export Not included Professional
Additional engagement analytics Core metrics Professional
Learning objectives (up to three per activity) Not included Professional
Anti-skip / fast-forward restriction Not included Professional
Maximum playback-rate policy Not included Professional
Disable download hint, PiP and right-click menu Not included Professional
AI speech-to-text subtitle generation Not included Professional · OpenAI
AI subtitle translation into 38 language variants Not included Professional · OpenAI
WebVTT upload, download, regeneration and track management Not included Professional
Automatic language detection and timed WebVTT output Not included Professional
Licence key, commercial updates and customer support Not required Required / included
Upgrade path: install Professional over Starter using Moodle’s standard plugin upgrade process. Do not uninstall Starter first; both editions use mod_videotracker .
Compatibility

Requirements

Moodle 4.5–5.2
PHP Moodle-supported
Cron Configured
Browser Modern HTML5

Platform

  • Moodle 4.5 or later, up to Moodle 5.2 for the documented 1.2 release.
  • A PHP version supported by the installed Moodle release.
  • Normal Moodle cron configuration.
  • HTTPS is strongly recommended, especially for external video and licence communication.
  • For uploaded video, Moodle file storage and server upload limits must accommodate the media size.

Additional requirements for Professional AI subtitles

  • A server-side OpenAI API key with available API credit.
  • ffmpeg for server-side audio extraction from uploaded HTML5 video.
  • ffprobe is recommended so long videos can be split into audio chunks below OpenAI upload limits.
  • PHP exec() must be available for automatic audio extraction.
  • Moodle cron must run regularly because generation and translation use background tasks.
  • Only Moodle-uploaded HTML5 video is supported by the current subtitle workflow. YouTube, Vimeo and direct external URLs are not supported for subtitle generation.

Permissions

Editing teachers and managers can add an activity. Students, teachers and managers can view it. The report and progress reset require the corresponding module capabilities:

  • mod/videotracker:addinstance
  • mod/videotracker:view
  • mod/videotracker:viewreports
  • mod/videotracker:resetprogress
External dependencies: YouTube, Vimeo, HLS delivery and other external URLs depend on the provider, the learner’s browser, network policy and content availability.
Administrator task

Installation and upgrade

Install from a ZIP package

Back up the site. Back up the Moodle database and dataroot according to your normal change process.
Open the installer. Go to Site administration › Plugins › Install plugins.
Upload the release ZIP. Confirm that the component is mod_videotracker .
Run validation. Review Moodle’s validation output and continue to the database upgrade.
Complete setup. Review settings, purge caches and test one activity as a teacher and learner.

Manual installation

Extract the package so the plugin is located at mod/videotracker , then visit Site administration › Notifications . The folder must not be nested as mod/videotracker/videotracker .

Upgrade Starter to Professional

Obtain the latest Professional package for your entitlement.
Install it over the existing Starter component using the standard Moodle upgrade process.
Complete the database upgrade; existing activities and progress are preserved.
Open Site administration › Plugins › Activity modules › Video Tracker License.
Start the 14-day trial or enter the purchased key and billing email, then activate.
Do not uninstall Starter before upgrading. Uninstallation can remove plugin data. Use the in-place upgrade path.
Teacher workflow

Quickstart for teachers

Open the course, turn editing on and select Add an activity or resource .
Choose LearnPlug Video Tracker , add a name and optional description.
Choose the video source: upload, YouTube, Vimeo or external URL.
Upload the video or paste the full HTTPS URL. For an external player, select its aspect ratio.
Optionally upload a poster image shown before playback starts.
Set the required viewing percentage from 0 to 100. A value of 0 disables this custom threshold.
Configure the fixed grade out of 100 and the grade-to-pass value where required.
Professional: add up to three learning objectives and configure playback policies.
Professional with an uploaded video: save the activity, open Manage subtitles , then generate AI subtitles or upload a source WebVTT file.
Save and display. Test video, subtitles, tracking and completion with a learner account.
Use the activity report to review progress, filter learners and reset progress when justified.
Completion design: align the viewing threshold, grade-to-pass and Moodle completion conditions. Test the complete learner journey before releasing the activity.
Media delivery

Video sources

Source How to configure Important notes
Moodle upload Select Upload and add the video file. Stored and delivered through Moodle. Best control compatibility for Professional playback policies.
YouTube Select YouTube and paste the full video URL. Uses YouTube’s privacy-enhanced embed domain. Learner browsers still connect to YouTube.
Vimeo Select Vimeo and paste a public or unlisted URL. Provider privacy and embed permissions apply.
Direct HTML5 Select External and paste an HTTPS MP4, WebM or HLS URL. Playback depends on browser codec support, CORS, MIME type and server range requests.

Display options

  • Optional poster / preview image.
  • External embed ratios: 16:9, 21:9, 4:3 and 1:1.
  • Use 21:9 for cinematic content where it reduces black bars.
Privacy: uploaded video and learner progress remain in Moodle. External sources cause the learner’s browser to contact the selected provider. Document those providers in your privacy information where applicable.
Professional

Content protection

Professional includes playback controls that discourage casual skipping or downloading. They improve learning-flow enforcement but are not digital-rights management.

Control Behaviour Limitation
Allow fast-forward When disabled, learners cannot jump beyond content already watched. Best on Moodle-hosted / HTML5 video; external players are best-effort.
Maximum playback rate Caps the selectable speed at 1×, 1.25×, 1.5× or 2×, or leaves it unrestricted. External provider APIs may limit enforcement.
Disable download button Adds the browser nodownload control hint. Browsers may ignore it; it does not fully prevent downloading.
Disable picture-in-picture Requests that the browser suppress PiP mode. Only where supported by the browser/player.
Disable right-click menu Blocks the context menu on the HTML5 video element. Deterrent only; not a security boundary.
No browser control can guarantee that playable media cannot be copied. For high-value content, use appropriate streaming access controls and organisational measures in addition to these deterrents.
Professional · OpenAI

AI functionality and subtitles

Professional can create timed subtitles from an uploaded video, translate the resulting cues into multiple languages and manage the generated WebVTT tracks directly from the Moodle activity.

Speech-to-text OpenAI transcription
Translation 38 language variants
Output Timed WebVTT
Processing Moodle background tasks

Automatic subtitle workflow

Upload the video to Moodle. AI subtitles currently work only with the activity’s uploaded HTML5 video source.
Open Manage subtitles. The user needs the mod/videotracker:managesubtitles capability.
Generate source subtitles. Video Tracker extracts audio server-side with ffmpeg and sends it to the configured OpenAI speech-to-text model.
Wait for cron. The job moves through queued, processing and ready states. Long media may be divided into chunks with ffprobe.
Review the source track. The detected language, model, status and any processing error are shown in the track manager.
Select target languages. Queue one or more AI translations after the source track is ready.
Publish through the player. Ready tracks are stored inside Moodle and presented as subtitle tracks during playback.

Manual WebVTT workflow

If automatic extraction is unavailable, a teacher can upload a valid .vtt source subtitle file, select its source language and then use AI to create translation tracks. Existing source tracks can be replaced.

Supported translation languages

Arabic, Bulgarian, Catalan, Chinese (Simplified and Traditional), Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Portuguese (Brazil), Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian and Vietnamese.

Track management

Action or status Meaning
Generate / regenerate source Queues a fresh AI transcription from the uploaded video.
Queue translations Creates background translation jobs for selected languages other than the source language.
Upload / replace source Uses a teacher-provided WebVTT file as the source track.
Download Downloads a ready subtitle track as WebVTT.
Delete Removes the selected track and its stored subtitle file.
Queued / processing / ready Normal background-processing lifecycle.
Out of date A translation no longer matches the current source subtitle content and should be regenerated.
Failed Processing did not complete; the manager displays the last stored error.

Default AI configuration

Setting Default Purpose
OpenAI API key Not set Stored server-side; never exposed in the browser.
Transcription model whisper-1 Produces timestamped speech-to-text output.
Translation model gpt-4.1-mini Translates subtitle cues while preserving their structure.
ffmpeg path ffmpeg Extracts audio from the uploaded video.
ffprobe path ffprobe Supports safe chunking of long videos.
Privacy and data processing: automatic generation sends extracted audio to OpenAI. Translation sends the source subtitle text and requested target languages to OpenAI. Use the feature only for media you are authorised to process, configure an appropriate data-processing basis and update your privacy information and vendor records.
Human review is required. AI transcription and translation can contain errors, especially with names, technical terminology, accents, poor audio or overlapping speech. Review every track before relying on it for accessibility or assessment.
Teacher reporting

Analytics and reporting

Learner data recorded

The plugin stores the course-module reference, completion state, video duration, last reported playback time, resume position, sequencing and timestamp information, plus compatibility flags used by the activity.

Report capability Starter Professional
Per-learner watched percentage Yes Yes
Status: not started, in progress, completed Yes Yes
Last position and last viewed Yes Yes
Search, status and group filters Yes Yes
Grade display Yes Yes
Individual / bulk progress reset Yes Yes
CSV export No Yes
Additional engagement insights Core report Advanced
Reset actions are destructive for the selected learner progress. Restrict mod/videotracker:resetprogress to trusted roles and confirm scope before using bulk reset.
Privacy workflow: Video Tracker implements Moodle’s Privacy API so stored progress data can participate in Moodle privacy export and deletion processes.
Site administration

Admin settings

Starter

Starter is self-contained and requires no licence key, trial registration, external account or API key. Teachers configure activity settings in each course. The administration page also provides a gradebook diagnostic / repair action.

Professional licence

Setting / action Purpose
Licence email Email used for trial activation or the billing email used for purchase.
Licence key Commercial key assigned to the Moodle site.
Start free 14-day trial Creates and activates a full-feature trial after explicit consent.
Activate / validate / deactivate Manages this Moodle site’s activation and refreshes entitlement status.
Licence overview Shows status, domain, expiry, activations, last check and runtime mode.
Update state Shows installed and latest available versions and update availability.
Diagnostics Displays recent licence activity and errors for troubleshooting.
OpenAI API key Server-side credential used for AI transcription and subtitle translation; it is not exposed to learners’ browsers.
OpenAI transcription model Speech-to-text model used to create timestamped source subtitles. Default: whisper-1 .
OpenAI translation model Text model used to translate subtitle cues. Default: gpt-4.1-mini .
ffmpeg / ffprobe paths Server commands used for audio extraction and safe chunking of longer videos.
Advanced troubleshooting Server URL, shared secret, site URL override, instance ID and optional product slug; change only when instructed.
Trial data disclosure: starting a trial sends the licence email, Moodle site URL, instance ID, Moodle version and plugin version to the LearnPlug licence server after the administrator accepts the consent checkbox.

Licence runtime states

  • Premium active: Professional features are enabled.
  • Offline grace: a previous successful validation temporarily protects access when the server is unreachable; the duration is controlled by the licence server.
  • Restricted demo: video playback remains available, but premium tracking, reports, objectives and enforcement are locked.
Support

Frequently asked questions

Will upgrading from Starter to Professional keep existing data?

Yes. Professional uses the same Moodle component and is designed to upgrade Starter in place while preserving activities and learner progress.

Do I uninstall Starter before installing Professional?

No. Install Professional as an in-place upgrade. Uninstalling can remove plugin data.

Does Starter require a licence or LearnPlug account?

No. Starter does not require a licence key, trial registration, external account, API key or paid service.

Can Video Tracker completely prevent downloads?

No. Professional can hide the download control, disable the right-click menu and request other restrictions, but browsers may ignore hints and any playable media can potentially be captured.

Why are some controls weaker on YouTube or Vimeo?

External providers control their players. Anti-skip, playback-rate, download and PiP controls are limited by the provider API and are best-effort only.

What happens when a Professional licence is invalid?

The activity enters restricted demo mode: playback remains available, but premium tracking, reports, objectives, completion progression and playback enforcement are restricted.

Can a learner resume where they stopped?

Yes. The plugin saves the last resume position and restores it on return when tracking is available.

How is completion calculated?

Teachers configure a required watched percentage between 0 and 100. The activity uses a fixed maximum grade of 100 and can work with Moodle completion and passing-grade conditions.

Does the plugin work in the Moodle App?

Yes. The plugin includes Moodle App integration and can open the activity in the app’s in-app browser for playback and tracking.

Which videos support automatic AI subtitles?

The current subtitle workflow supports Moodle-uploaded HTML5 videos. YouTube, Vimeo and direct external URLs are not supported for automatic subtitle generation.

Can I use subtitles without automatic transcription?

Yes. Upload a valid WebVTT source file, choose its language and use it directly or queue AI translations.

What data is sent to OpenAI?

Generation sends audio extracted from the uploaded video. Translation sends the source subtitle text and requested target languages. Processing uses the administrator’s server-side OpenAI API key.

Where should I report a Starter issue?

Use the public project discussions at GitHub Discussions . Professional customers should use the support channel supplied with their purchase.

Commercial information

Terms of Sale

Important: this section is a product-documentation summary. The checkout page, order confirmation, invoice and any separately agreed written terms form the authoritative commercial agreement. Mandatory consumer or statutory rights are not excluded.

1. Products

Starter is the permanent licence-free edition distributed under GNU GPL v3 or later. Professional is commercially distributed software that requires a valid trial or paid entitlement to unlock premium runtime features, updates and commercial support.

2. Orders and payment

Prices, taxes, billing period, currency and payment method are those shown at checkout or in the accepted quotation. An order is complete when payment is accepted and the licence details are issued, unless the order confirmation states otherwise.

3. Licence activation

A Professional key is activated for the permitted Moodle site or number of activations stated in the order. The customer must use accurate billing and activation details and keep keys confidential. Reassignment, staging allowances and domain changes are subject to the purchased entitlement and support approval.

4. Trial

The full-feature trial runs for 14 days from activation. Starting it requires explicit consent to send the licence email and technical site identifiers to the licence server. At expiry, the plugin moves to restricted demo mode unless a paid licence is activated.

5. Delivery, updates and support

Delivery is electronic. Professional updates and commercial support are supplied during the active entitlement period and within the scope stated on the product page or quotation. Starter support is community-based.

6. Renewal and expiry

Renewal behaviour and term length follow the order. When an entitlement expires, Professional premium functions may be restricted after any applicable server-controlled grace period; learner video access remains available in restricted demo mode.

7. Cancellations and refunds

Cancellation and refund eligibility follow the checkout terms, applicable law and the nature of digital delivery. Where the customer requests immediate digital performance, statutory withdrawal rights may be affected only to the extent permitted by law.

8. Customer responsibilities

The customer is responsible for Moodle administration, backups, compatible infrastructure, lawful media rights, privacy notices, role permissions and testing before production deployment.

9. External services

YouTube, Vimeo, hosting providers, payment processors and other external services operate under their own availability and terms. LearnPlug does not control those third-party services.

10. Warranty and liability

The open-source component is supplied under GPL terms. Any commercial warranty, service commitment or limitation of liability is defined by the authoritative sale terms and applicable law. Nothing in this summary limits liability that cannot lawfully be limited.

LearnPlug Video Tracker · Starter and Professional Moodle 4.5–5.2 · Back to top ↑