WordPress plugin intelligence profile

Bharti Subtitles

Generate subtitles for your Media Library videos in the browser. No API key, no per-minute cost, and the video is never uploaded anywhere.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.1
Current version1.0.0
WordPress coverageTested up to WordPress 7.1
Minimum stackWP 6.2 · PHP 7.4
Directory statusactive
Last directory update2 Sept 20262mo ago
Active installationsNewAdoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records Bharti Subtitles version 1.0.0 as active, updated 2mo ago and tested up to WordPress 7.1.

Overview

About this plugin

Pick a video in your Media Library, press one button, and get a subtitle file

attached to it. Visitors then see a subtitles button on the video player.

The speech-to-text runs in the browser, on the machine of whoever pressed

the button. Not on your server, and not on anyone’s API. That single decision

is what this plugin is, and everything below follows from it.

Nothing leaves the computer

There are two ways to turn speech into text: send the audio somewhere and get

the words back, or run the model where the audio already is. This plugin does

the second.

For a marketing clip either way is fine. For patient education, legal

recordings, internal training, HR material or paid membership content, sending

the file to a third party is often the difference between allowed and not

allowed.

The browser reads the file, works on it, and writes the result back. The only

thing that ever downloads is the speech model itself, once.

No account, no key, no bill

  • Nothing to sign up for. No OpenAI account, no API key to create, store,

rotate or explain to a client.

  • No per-minute charge. Transcription services meter audio by the minute.

Nothing here is metered — caption the same course twice, or a hundred hours

of it, and the cost does not change.

  • No server load. Your host never transcodes or transcribes anything, so

this runs on the cheapest shared hosting without a queue, a cron job or a

worker process.

How it works

  • Go to Media > Bharti Subtitles, choose a video and the spoken language, press

Generate subtitles

  • Watch the lines appear, then fix anything the model misheard — names and

technical words are usually where it slips

  • Press Save to this video. The.vtt is written beside the video and

attached to it

vtt instead and take it to YouTube, Vimeo or a video

editor.

What you get

  • 17 languages, including Hindi, Marathi and Hinglish written in Roman

script

  • Every line editable before you save
  • Works with the Gutenberg Video block and the classic [video] shortcode
  • Control how the subtitles look — font, size, bold, capitals, colour,

background and opacity, shadow, position and alignment — with a live preview

  • Translation ready, with a.pot file included

Accessibility

1 requirement (Success Criterion

2). If your site has an accessibility obligation, this is one of the items

on the list.

Honest limits

Most of this would normally be left out of a plugin page. It is here because

the wrong expectation wastes your time and mine.

  • The first run downloads the speech model — about 50 MB for most

languages, about 250 MB for Hindi, Marathi and Hinglish, which need a larger

one. The browser keeps it, so it is once per machine, not once per video.

  • Speed depends on the machine, not the hosting. A modern laptop manages

roughly real time or better. An old one will be slower.

  • No bulk or overnight processing. One video at a time, with a browser tab

open. Doing it in bulk would mean a server doing the work, and then the zero

cost and the privacy both disappear.

  • Hindi, Marathi and Hinglish need more correcting than English. The model

has seen far less of them. What you get is a usable draft to fix, which is

much faster than typing from nothing — but it is a draft, and the panel says

so before you press the button.

  • The video must be one your browser can play. MP4 (H.264 + AAC) and WebM

are safest. mov will not decode.

What it needs

  • A current version of Chrome, Edge, Firefox or Safari
  • An internet connection the first time, to download the speech model
  • A writable uploads folder — the.vtt is saved beside the video

Source code and build

The two files in assets/js/ are built, not written by hand. Their complete

source ships inside this plugin so nothing needs to be taken on trust:

  • src/ — all of the TypeScript and React that becomes them
  • package.json, tsconfig.json, vite.config.ts, vite.worker.config.ts —

the build configuration

To rebuild from that source:

npm install npm run build

js and

js exactly as shipped.

Third-party code

Bundled into those two files by the build, both unmodified:

  • React 18.3 — https://github.com/facebook/react — MIT
  • Transformers.js 3.8.1 — https://github.com/huggingface/transformers.js —

0

External services

Two things are downloaded into the browser the first time you generate

subtitles, and then kept by the browser’s cache. Nothing is uploaded, no

account is needed, and no key is required.

The speech engine

  • What: ONNX Runtime Web, the WebAssembly engine that runs the model.

1.

  • When: the first time you press Generate subtitles, once per browser.
  • Sent: nothing. It is a download.

The speech model

  • What: an OpenAI Whisper model, converted for the browser. About 50 MB

for most languages, about 250 MB for Hindi, Marathi and Hinglish.

  • Server: Hugging Face — https://huggingface.co/
  • When: the first time you use a given language, once per browser.
  • Sent: nothing. It is a download.

Your video is never sent to either of them, or to anywhere else. It is read

from your own Media Library by your own browser and worked on there.

com/terms and

com/terms/privacy-policy-jsdelivr-net · Hugging Face —

co/privacy

Serving them yourself

If your site cannot reach an outside server — some government, medical and

internal deployments cannot, and jsDelivr is blocked in some countries — put

the files on your own host and point the plugin at them:

com/onnx/'; } );

1/dist/.

js

remoteHost.

Be honest with yourself about this before installing: if the first run cannot

reach these two servers, the plugin cannot generate subtitles. After that

first run it works offline.

WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • speech to text
  • accessibility
  • captions
  • subtitles
  • video
Compatibility & maintenance

Compatibility & maintenance

Tested with WP 7.1

Marked as tested with the current WordPress 7.1 release.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.1
Minimum requirementsWordPress 6.2 · PHP 7.4
Update activity2 Sept 20262mo ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

No tracked version or compatibility changes have been recorded by WP PlugIndex yet.

Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.