Title: Kreva SRT Subtitles for Tutor LMS
Author: Kreva Estudio
Published: <strong>September 14, 2026</strong>
Last modified: September 14, 2026

---

Search plugins

![](https://ps.w.org/kreva-srt-subtitles-for-tutor-lms/assets/banner-772x250.png?
rev=3694362)

![](https://ps.w.org/kreva-srt-subtitles-for-tutor-lms/assets/icon-256x256.png?rev
=3694362)

# Kreva SRT Subtitles for Tutor LMS

 By [Kreva Estudio](https://profiles.wordpress.org/krevaestudio/)

[Download](https://downloads.wordpress.org/plugin/kreva-srt-subtitles-for-tutor-lms.0.1.4.zip)

 * [Details](https://wordpress.org/plugins/kreva-srt-subtitles-for-tutor-lms/#description)
 * [Reviews](https://wordpress.org/plugins/kreva-srt-subtitles-for-tutor-lms/#reviews)
 * [Development](https://wordpress.org/plugins/kreva-srt-subtitles-for-tutor-lms/#developers)

 [Support](https://wordpress.org/support/plugin/kreva-srt-subtitles-for-tutor-lms/)

## 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 `.srt` yourself, 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` / `tutorLessonPlayerReady` event), it doesn’t
   replace or interfere with Plyr.

**How to use it:**

 1. Activate the plugin.
 2. Go to _Tutor LMS  SRT Subtitles_.
 3. Pick the `.srt` file for each lesson from the Media Library.
 4. The subtitles button appears automatically on that lesson — only on lessons that
    have an `.srt` uploaded.

Both administrators and Tutor instructors can manage subtitles.

This plugin requires the Tutor LMS plugin to be installed and active.

## Screenshots

[⌊The Tutor LMS -> SRT Subtitles admin screen: pick the .srt file for each lesson
straight from the Media Library.⌉⌊The Tutor LMS -> SRT Subtitles admin screen: pick
the .srt file for each lesson straight from the Media Library.⌉[

The Tutor LMS -> SRT Subtitles admin screen: pick the .srt file for each lesson 
straight from the Media Library.

[⌊A lesson with subtitles on: the plugin adds its own button to the player and renders
the caption over the video.⌉⌊A lesson with subtitles on: the plugin adds its own
button to the player and renders the caption over the video.⌉[

A lesson with subtitles on: the plugin adds its own button to the player and renders
the caption over the video.

[⌊Close-up of the subtitles button the plugin adds to the player controls.⌉⌊Close-
up of the subtitles button the plugin adds to the player controls.⌉[

Close-up of the subtitles button the plugin adds to the player controls.

## 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 `.srt` URL could download the transcript 
without being enrolled. If your lessons are paid and the `.srt` content 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.

### What happens if I upload an .srt with formatting tags (“, “) exported from YouTube Studio?

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.

Contributors

 *   [ Kreva Estudio ](https://profiles.wordpress.org/krevaestudio/)

[Translate “Kreva SRT Subtitles for Tutor LMS” into your language.](https://translate.wordpress.org/projects/wp-plugins/kreva-srt-subtitles-for-tutor-lms)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/kreva-srt-subtitles-for-tutor-lms/),
check out the [SVN repository](https://plugins.svn.wordpress.org/kreva-srt-subtitles-for-tutor-lms/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/kreva-srt-subtitles-for-tutor-lms/)
by [RSS](https://plugins.trac.wordpress.org/log/kreva-srt-subtitles-for-tutor-lms/?limit=100&mode=stop_on_copy&format=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 Plugins` header (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 to` bumped to 7.1.

#### 0.1.3

 * Renamed from “Tutor LMS – Custom SRT Subtitles” (slug `tutor-srt-subtitles`) 
   to “SRT Subtitles for Tutor LMS” (slug `srt-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” (slug `kreva-srt-subtitles-for-tutor-lms`) to add a distinctive
   brand identifier.
 * Added `License` / `License URI` to the plugin header and removed the discouraged`
   load_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 `.srt` files to the Media Library is now scoped
   by capability instead of being global.
 * Added an activation hook that defensively grants `manage_tutor_instructor` to
   the administrator role, in case Tutor’s own activation hook never ran on the 
   site (e.g. cloned/imported installs).

#### 0.1.1

 * Fix: `.srt` files exported from YouTube Studio carried formatting tags (`<font
   >`, `<i>`) that showed up as literal text in the overlay.

#### 0.1.0

 * Initial release.

## Meta

 *  Version **0.1.4**
 *  Last updated **14 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [accessibility](https://wordpress.org/plugins/tags/accessibility/)[captions](https://wordpress.org/plugins/tags/captions/)
   [srt](https://wordpress.org/plugins/tags/srt/)[subtitles](https://wordpress.org/plugins/tags/subtitles/)
 *  [Advanced View](https://wordpress.org/plugins/kreva-srt-subtitles-for-tutor-lms/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/kreva-srt-subtitles-for-tutor-lms/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/kreva-srt-subtitles-for-tutor-lms/reviews/)

## Contributors

 *   [ Kreva Estudio ](https://profiles.wordpress.org/krevaestudio/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/kreva-srt-subtitles-for-tutor-lms/)