# Social Article Draft: Video Tracking in Moodle

## Research-backed positioning

The problem is not that Moodle lacks logs. Moodle can show course logs, activity reports, completion reports, grades and participation signals. The gap is that generic LMS tracking usually answers access questions: who opened the activity, when, how many times, and whether a configured completion condition fired.

Video learning needs a different level of evidence:

- Did the learner actually watch the required parts of the video?
- Did the completion event represent real playback or only a page view / end marker?
- Did the learner skip over critical sections?
- Was the video played faster than policy allows?
- Did the learner leave the tab while the video kept running?
- Can the teacher export evidence for compliance, certificates, onboarding or audits?

This is the gap Modern Video Player addresses. It treats video as a Moodle-native learning activity, not just a file, URL, page embed or media decoration.

## Story angles

### Compliance training

An organization needs every staff member to complete a safety video before renewing certification. The LMS says the activity was viewed, but the audit question is harder: did each learner actually watch the required sections, or did some people skip to the end? Modern Video Player gives the teacher validated watch percentage, watched seconds, max verified position, completion status and suspicious flags.

### Flipped classroom

An instructor records a short pre-class lecture and wants class time to start with discussion, not recap. A basic page view cannot show whether students reached the worked example in the middle of the video. Modern Video Player helps the instructor see who has meaningful watch progress and who may need support before class.

### Moodle administrator

A Moodle administrator is asked to prove video engagement using exports, logs and gradebook data. With ordinary embeds, the evidence can be scattered or indirect. Modern Video Player puts the video, completion, gradebook, report export, privacy handling and backup/restore flow inside one Moodle-native activity.

## LinkedIn article

### When a Video View Is Not Proof of Learning

Imagine this.

Five hundred employees must complete a safety video before a certification deadline. The LMS report says the activity was viewed. The completion report looks green.

Then the real question arrives:

Can you prove they watched the part that mattered?

Most LMS platforms can tell you that a learner opened an activity.

That is useful. But for video-based learning, it is not enough.

A teacher, compliance officer or training manager does not usually ask, "Did the learner click the video page?" The real question is sharper:

Did they watch the part that mattered?

This is a common problem across major LMS platforms, and it is especially visible in Moodle because Moodle is open, flexible and widely used for serious learning programs. Moodle gives educators strong building blocks: activity completion, course logs, activity reports, grades and custom activity rules. But when video is added as a normal file, URL, page embed or media resource, the tracking often stops at the surface.

The LMS may know that the activity was viewed. It may know that a completion condition was triggered. It may know a grade was received.

But it may not know whether the learner skipped from minute 2 to minute 28.

It may not know whether the video kept running in a hidden tab.

It may not know whether "100% complete" means watched, opened, clicked, reached the final second, or simply satisfied a weak proxy.

That gap matters.

In compliance training, watch-time is evidence. In onboarding, skipped sections can become operational risk. In flipped classrooms, video engagement shapes the quality of the next in-person session. In micro-credentials, completion has to mean more than attendance by click.

That is why I built Modern Video Player for Moodle.

Modern Video Player turns video into a Moodle-native activity with validated playback evidence.

Instead of relying only on a browser event or a page view, the player sends heartbeat updates to Moodle while the learner watches. The server validates the learner's current position, duration, playback rate, visibility state and session token. If the learner jumps too far ahead, exceeds the allowed playback speed or reports suspicious playback behavior, the server can reject or flag that progress.

The important difference is this:

Modern Video Player tracks watched coverage, not just elapsed time.

It stores validated watched segments, merges them, and calculates the real percentage of the video that was covered. If a learner watches the first five minutes, skips ten minutes, and watches the final five, the activity should not pretend the whole video was completed. The report should show what actually happened.

For teachers, this becomes practical immediately:

- A per-activity learner report shows progress, percent complete, total watched seconds, last heartbeat, max verified position, completion status and suspicious flags.
- CSV export supports audits, intervention lists and reporting outside Moodle.
- Native Moodle completion rules can require a validated watch percentage or a validated video ending.
- Gradebook integration can convert watched percentage into a Moodle grade.
- The next activity overlay can guide the learner forward only after video completion is earned.

For learners, the experience is still humane:

- Resume playback lets them continue from the last verified point.
- Captions, transcripts and chapter markers make the video easier to navigate and review.
- Learner bookmarks help them mark important timestamps.
- Keyboard controls, responsive UI and accessibility-focused controls keep the player usable.

For institutions, the plugin stays Moodle-first:

- Video files live inside Moodle's File API.
- There are no external tracking pixels.
- The plugin includes Moodle Privacy API support for export and deletion.
- Backup and restore preserve activity data.
- Moodle events can feed existing reporting workflows.

And for courses where focus matters, Focus Mode reduces common escape paths. It can disable Picture-in-Picture, suppress skip shortcuts, and pause playback when the tab is hidden.

That is not about spying on learners. It is about making required video accountable enough for the courses that depend on it.

The goal is simple:

If a course depends on video, Moodle should know more than "the page was opened."

It should know whether the learner actually watched.

Modern Video Player is my answer to that gap: a privacy-first, Moodle-native, evidence-driven video activity for courses where watch-time matters.

Because when a video is required for learning, compliance or certification, "viewed" should not be the same as "watched."

Suggested hashtags:

#Moodle #EdTech #LearningAnalytics #LMS #OnlineLearning #InstructionalDesign #ComplianceTraining #VideoLearning #OpenSource

## Facebook version

### A Video View Is Not the Same as Watching

Many Moodle courses use video for onboarding, compliance training, flipped classrooms and professional development.

But here is the problem: a normal LMS log can often tell you that a learner opened a page. It does not always prove they watched the video.

That creates a real gap for teachers and organizations:

- A learner can open the activity but skip important sections.
- A video can be marked complete without strong evidence of real watch progress.
- Teachers may have to download reports and manually guess who engaged.
- Compliance teams may need proof that is stronger than "activity viewed."

Modern Video Player for Moodle was built to solve that.

It is not just a video embed. It is a Moodle activity that tracks validated playback progress.

The plugin records watched segments, calculates real watch percentage, supports completion rules like "watch at least 80%," and can flag suspicious behavior such as jumping too far ahead or using a playback speed beyond the allowed setting.

Teachers get a clear learner report with progress, watched seconds, completion status, last heartbeat and suspicious flags. They can also export the report to CSV.

Learners still get a clean experience: resume playback, captions, transcript, chapters, bookmarks, keyboard controls and a focused viewing mode.

For organizations that need better evidence, Modern Video Player gives Moodle something more meaningful than "opened."

It helps Moodle answer the question that actually matters:

Did the learner watch the video?

#Moodle #EdTech #OnlineLearning #VideoLearning #LearningAnalytics

## Feature evidence from the plugin

- Version and support range: `version.php` declares `mod_modernvideoplayer`, release `1.3.5`, Moodle `4.5` through `5.2`.
- Heartbeat tracking: `amd/src/tracker.js` sends current time, duration, playback state, playback rate, tab visibility and session token.
- Server validation: `classes/local/validation.php` validates forward seeks, playback speed, hidden-tab playback and plausible progress.
- Segment tracking: `classes/local/progress_repository.php` stores and merges watched segments, then calculates total watched seconds.
- Moodle completion: `classes/completion/custom_completion.php` defines watched-percentage and validated-end completion rules.
- Reporting: `report.php`, `classes/local/reporting.php` and `classes/local/learners_table.php` provide KPI cards, learner table, filtering and downloadable exports.
- Gradebook integration: `lib.php` declares grade support and updates grades from watched percentage.
- Focus Mode: `amd/src/enforcer.js` disables Picture-in-Picture escape paths and pauses hidden-tab/window-blur playback when enabled.
- Accessibility and learner support: `amd/src/captions.js`, `amd/src/chapters.js`, templates and language strings support captions, transcript, chapters, bookmarks, keyboard controls and resume.
- Privacy posture: `classes/privacy/provider.php` covers progress, segments and bookmarks for Moodle Privacy API export/delete.

## Sources used

- Moodle Docs: Activity reports show the number of views per activity/resource: https://docs.moodle.org/502/en/Activity_report
- Moodle Docs: Activity completion can be based on criteria such as viewing, grade or manual completion: https://docs.moodle.org/502/en/Activity_completion
- Moodle Docs: Activity completion settings define view, grade and activity-specific requirements: https://docs.moodle.org/502/en/Activity_completion_settings
- Moodle Docs: Logs show accessed pages, timestamps, IP address and actions: https://docs.moodle.org/502/en/Logs
- Moodle Developer Docs: Moodle activity plugins can define custom completion rules: https://docs.moodle.org/dev/Student_activity_completion
- ADL/TLA: xAPI captures learning activity streams for learner performance data shared through an LRS: https://www.adlnet.gov/guides/tla/service-definitions/
- 1EdTech Caliper: Media analytics models video events such as start, pause, resume, ended, jump, speed and captions: https://www.imsglobal.org/sites/default/files/caliper/v1p1/caliper-spec-v1p1/caliper-spec-v1p1.html
- Video Analytics in Moodle Using xAPI: audience retention can identify replayed, skipped and drop-off portions of video: https://link.springer.com/article/10.1007/s10758-023-09720-3
- Making Sense of Moodle Log Data: Moodle log interpretation can be incomplete or misleading without understanding how events are generated: https://arxiv.org/abs/2106.11071
