Description
Tutor LMS masks its YouTube videos with Plyr, which hides the player’s native subtitle (CC) button. This plugin adds its own button that turns subtitles on/off from an .srt file YOU attach per lesson — it doesn’t depend on the video having captions on YouTube, manual or automatic.
Why custom subtitles instead of YouTube’s captions:
- Full quality control: you review the
.srtyourself, instead of relying on YouTube’s automatic speech recognition (which mangles negations and proper names). - Works the same with third-party videos: the video owner doesn’t need to have uploaded captions — only playback-time sync is needed, which YouTube’s API exposes for any embed.
- Doesn’t touch the player: it hooks into the extension point Tutor deliberately exposes (
window.TutorLessonPlayer/tutorLessonPlayerReadyevent), it doesn’t replace or interfere with Plyr.
How to use it:
- Activate the plugin.
- Go to Tutor LMS SRT Subtitles.
- Pick the
.srtfile for each lesson from the Media Library. - The subtitles button appears automatically on that lesson — only on lessons that have an
.srtuploaded.
Both administrators and Tutor instructors can manage subtitles.
This plugin requires the Tutor LMS plugin to be installed and active.
Screenshots



FAQ
Is the .srt file reachable at a public URL?
Yes. The file is uploaded to the WordPress Media Library, which serves attachments at a public URL by default (this is standard WordPress behavior, not something this plugin decides). Even though Tutor requires enrollment to view the full lesson, anyone who knows or guesses the direct
.srtURL could download the transcript without being enrolled. If your lessons are paid and the.srtcontent is sensitive, keep this in mind — consider a private-media plugin if that’s a concern for your site.Does it work with Vimeo or HTML5 video?
Syncing uses
plyr.currentTime, which Plyr normalizes across providers. It hasn’t been formally tested outside of YouTube, but nothing in it is YouTube-specific.The tags are stripped and the clean text is shown. Italics and color are not rendered.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Kreva SRT Subtitles for Tutor LMS” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Kreva SRT Subtitles for Tutor LMS” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.1.4
- Removed the bundled translation files (
.po/.mo/.pot). Translations are handled through translate.wordpress.org once the plugin is hosted there. - Renamed the internal function, constant, asset and CSS-class prefixes to a plugin-specific namespace, to rule out any collision with the host plugin’s own identifiers.
- Declared the Tutor LMS dependency through the
Requires Pluginsheader (WordPress 6.5+). - Bounded the admin lesson query instead of loading every post at once.
- Hardening: unslash request input before sanitizing, and escape the post-save redirect URL.
Tested up tobumped to 7.1.
0.1.3
- Renamed from “Tutor LMS – Custom SRT Subtitles” (slug
tutor-srt-subtitles) to “SRT Subtitles for Tutor LMS” (slugsrt-subtitles-for-tutor-lms), per WordPress.org’s plugin directory guideline on trademarks (a third-party product name can’t be the sole or initial term of a plugin slug), and then to “Kreva SRT Subtitles for Tutor LMS” (slugkreva-srt-subtitles-for-tutor-lms) to add a distinctive brand identifier. - Added
License/License URIto the plugin header and removed the discouragedload_plugin_textdomain()call. - Source strings (code and readme) switched from Spanish to English, the expected default for a WordPress.org plugin.
0.1.2
- The permission model now uses
manage_tutor_instructor(covers both instructors and administrators) instead of restricting everything to administrators. - The filter that allows uploading
.srtfiles to the Media Library is now scoped by capability instead of being global. - Added an activation hook that defensively grants
manage_tutor_instructorto the administrator role, in case Tutor’s own activation hook never ran on the site (e.g. cloned/imported installs).
0.1.1
- Fix:
.srtfiles exported from YouTube Studio carried formatting tags (<font>,<i>) that showed up as literal text in the overlay.
0.1.0
- Initial release.
