Moodle Plugins directory: Interactive Video: Versions: 1.2 | Moodle.org
Interactive Video
Activities ::: mod_interactivevideo
Maintained by
Sokunthearith "T" Makara
Transform your video/audio content into an interactive learning adventure! Add dynamic annotations and interactions like H5P activities, PDFs, HTML games/simulations, rich text, and more. Track every learner’s journey with detailed reports.
Interactive Video 1.2
Moodle 4.1, 4.2, 4.3, 4.4, 4.5
Released: Freitag, 11. April 2025, 05:43
Code prechecks
overview
phplint
phpcs
js0 | 17
css39 | 0
phpdoc
savepoint
thirdparty
grunt1 | 0
shifter
mustache
gherkin
HTML | XMLChangelog
All notable changes to this project will be documented in this file.
[1.2.0] - 2025-04-11
Added
- Support for upcoming Moodle 5.0 (both the main plugin and all interaction plugins).
- Bulk-delete interactions from the editor page.
- PDF Viewer: Ability to set specific pages to display in the viewer, and ability to resume from the last viewed page.
- H5P Upload: Ability to set text direction for H5P content (LTR/RTL).
Fixed
- When Moodle is installed in a subdirectory, the stylesheets are not loaded correctly.
[1.1.6] - 2025-04-03
Added
- Implemented
State Saving
for H5P contents. The state will be saved in the database and restored when the user reopens the content. - Chapters can now be locked. See more details in https://mod-interactive-video.canny.io/changelog/interactive-video-v116
Updated
- Dropping usermodified column from interactivevideo_settings table. This column is not used anymore.
[1.1.5] - 2025-03-30
https://mod-interactive-video.canny.io/changelog/interactive-video-v115
[1.1.4] - 2025-03-11
Updated
- Initial support for RTL.
- Generalize advanced field for interactivevideo_items, allowing plugins to add any field to the advanced object.
[1.1.3] - 2025-03-07
Fixed
- Content bank item form missed fields for setting actions after passing grade.
[1.1.2] - 2025-03-01
https://mod-interactive-video.canny.io/changelog/interactive-video-v112
[1.1.1] - 2025-02-15
Fixed
- The action menu was hidden on the activity card in Moodle 4.1.
- Update thirdpartylibs.xml
[1.1.0] - 2025-02-15
https://mod-interactive-video.canny.io/changelog/interactive-video-v11
[1.0.3] - 2025-01-25
Fixed
- Player didn't fire
ivplayerReady
event if the browser blocked autoplay. - Share-moment link included
embed=1
if the link was created from the modal. onPaused
method was not implemented onbeforeunload
event, resulting in the watched time not being saved.
Updated
- Spotify player sometimes shows the preview version of the music tracks depending on the browser and user login. In this case, the interactions might be cut off. So, when the player is in preview mode, users will now get an error message before the player is destroyed.
- Kill all client-side background processes and event listener if the video is invisible and paused for 30 minutes on view page and 10 minutes on interactions page. If the video already ends, the processes will be killed after 5 minutes of inactivity.
- Get processed data from server only once for each interaction. Processed data will be saved to this.cache object with the annotation id. When the interaction is relaunched in the same session, the cached version will be used; therefore, releasing some burden from the server. This applies to view page only. One interaction page, a new data is fetched everytime the interaction is launched.
- Notify user if the browser blocks autoplay and encourage them to allow it on the current site.
- Kill the interactive video if on Brave browser with autoplay blocked. (We'll re-enable it in the future when Brave browser stops overly blocking the
play
method.) - Improve ability for other plugins to extend the mod_form and completion conditions/states, and more importantly, make sure removing or disabling the related plugins does not caused any completion issues.
- Improve accuracy in calculting the time spent on interaction. For instance, resume counting when interaction is relaunched and pause counting when interaction is no longer active (e.g. activity closed or video playing).
- Right-click on timestamp on the interaction list to quick-edit the interaction's timestamp. Right-click on the input to set value to the current time.
- Minor accessiblity/UI/UX improvements
Added
- Two url parameters to control the player appearance:
dm
for dark mode anddf
for distraction-free mode. Example:https://yourmoodlesite.com/mod/interactivevideo/view.php?id=1&dm=1&df=1
; - Allow extension plugins to include js methods on the mod_form. To enable this, the plugin must add an element on the mod_form with the class '.requirejs' and the data attribute
data-plugin
value as the amd module name. Example:<div class="requirejs" data-plugin="local_ivanalytics/main"></div>
. The plugin must implement the methodmform
to add the required js code. convertHMSToSeconds
in the base class to convert HH:MM:SS/MM:SS/SS to seconds.- Ability to lock the top navigation when watching the video on a modal on the course page.
checkautoplay
to pre-check if the browser allows autoplay video on mute. Useplayer.allowAutoplay
to check.- New events:
interactionrefresh
(after the refresh button is clicked),iv:autoplayBlocked
(as soon as the player methodload
runs.) active
class to#message
element of the current/visible interaction.
[1.0.2] - 2025-01-17
Fixed
- Custom start time for Spotify episode
- Timestamp column width is not respected on Safari.
Totaltime
is undefined in some circumstances.- When the video restarts, the annotation that has
timestamp=starttime
is skipped. - Individual completion record is not deleted from the report page on Moodle 4.1.
- Rumble's
isPlaying
method always returns true.
Updated
- Improve error handling: remove/hide elements above the video to show the error screen (e.g. YouTube video no longer available)
- Only get
posterImage
and title when on editing form (opts.editform
) - If the video is already paused, do not pause again if not necessary.
- Reset
viewAnno
when the video restarts. - Increase frequency for Spotify and PeerTube since their time update interval is longer than others.
- PeerTube: use
playbackStatusChange
to check/dispatch the pause state. - PeerTube: ensure video resets to start time before dispatching
iv:playerReady
. - Wistia: get annotation data from the database only after the password is validated.
[1.0.1] - 2025-01-14
Fixed
- Dailymotion video and SoundCloud audio played from the start after ended.
- iv:playerReady fired twice for Wistia video when password-protected.
- Destroy method didn't work correctly on SoundCloud/Spotify.
Updated
- Resize player iframe for SoundCloud/Spotify.
- Add player type to body class.
- Add a key icon to the poster image on the card if video is password-protected
- Only auto update the video end time if it is 0 or undefined.
[1.0] - 2025-01-13 - First Stable
Added
- Support for Panopto, Spotify, PeerTube, Kinescope, SproutVideo, Rutube, and Rumble (Site admin must select them in the site settings to enable them.)
- Support for different video visibility options including unlisted, private, and password protected (subject to video providers).
- New appearance setting: Square poster image. If your poster image is a square, check this option to display it nicely on the activity card.
- Tutorial video for each interaction type.
- Quality change, fast-forward and rewind buttons on editor timeline.
- Full Privacy API implementation.
- New placeholder columns in interactivevideo_items table: intg1, intg2 and intg3.
- New column in interactivevideo_completion: lastviewed for last watched timestamp.
- New site settings: defaulttheme, disablecustomtime and videosharinginstructions
Fixed
- Column names "start" and "end" are reserved keywords in mySQL, Oracle, and postgreSQL. Changed to "starttime" and "endtime" respectively.
- Fixed SQL in backup API for postgreSQL support.
- Skipped segment at the end of the video prevents displaying end screen and onEnded event.
- "requiremintime" column not backed up.
- When "enabled video types" setting is set to html5video and videolink, the URL input on the mod_form is hidden.
- Endscreen is not shown on some occassion.
- Interactions repeatedly open if they are put too close to one another (e.g. 0.1s).
- Many minor fixes
Updated
- Add title attribute to buttons for accessibility improvement
- Use "gradebookroles" for report. Previously, it was set to roleid=5.
- Update query for group report to include only users in "gradebookroles".
- Prevent autoplaying if start screen has content.
- Interaction drawer is removed when video is replayed.
- Save lastviewed time in interactivevideo_completion rather than browser's cache.
- On activity editing form, right-click on start time or end time to set the value to the current video time.
- On activity editing form, when changing the start time or end time, the video will seek to the specified timestamp.
- Update player scripts to ensure video state is updated (e.g. isEnded,isPaused,isPlaying) as quickly as possible.
- Ensure video is paused before launching interaction. Player must return isPaused = true or isPlaying = false;
- Performance/memory improvement on playback.
- Set component=mod_interactivevideo on H5P player to enable H5PIntegration.reportingIsEnabled.
- Change vimeo regex to allow more URL variations such as custom URL (e.g. vimeo.com/{username}/{customtext}).
[RC0.2] - 2024-11-12
Added
- Closed caption/subtitle for Vimeo, Dailymotion, and YouTube.
- Set video quality for Vimeo (only works with videos from PRO+).
- Bulk create interactive video activities by drag-n-dropping a CSV file on course page. CSV file must contain at least the videourl column.
- Support for left sidebar if plugin implements it. (hassidebar class to the body)
- New language (PT_BR) contributed by @eduardokraus
Fixed
- If grade set to 0, update_grade method will create an endless loop until memory runs out.
- Dailymotion autoplay behavior.
- Other bugs fix.
Update
- When saving progress, only update grade if grademax isn't 0 and gradeinstance exists.
- When video start and end time are incorrect for some reason (e.g. < 0, > duration, start >= end, end == 0), update start and end columns in the interactivevideo table on first access.
- Styling improvements.
[RC0.1] - 2024-11-01
First release
Version information
- Version build number
- 2025041100
- Version release name
- 1.2
- Maturity
- Stable Version
- MD5 Sum
- 7768a4ad033e127e1ec7d019838bcbb8
- Supported software
- Moodle 4.1, Moodle 4.2, Moodle 4.3, Moodle 4.4, Moodle 4.5
- The more recent release 1.2.2 (2025041800) exists for Moodle 4.1
- The more recent release 1.2.2 (2025041800) exists for Moodle 4.2
- The more recent release 1.2.2 (2025041800) exists for Moodle 4.3
- The more recent release 1.2.2 (2025041800) exists for Moodle 4.4
- The more recent release 1.2.2 (2025041800) exists for Moodle 4.5
Version control information
- Version control system (VCS)
- GIT
- VCS repository URL
Default installation instructions for plugins of the type Activities
- Make sure you have all the required versions.
- Download and unpack the module.
- Place the folder (eg "assignment") in the "mod" subdirectory.
- Visit http://yoursite.com/admin to finish the installation