SmartVPVideoPlayerforWordPress

CategoryProduct Design & Development
Year2026
FocusProduct Design & Plugin UX

A WordPress plugin that renders eight different video sources — self-hosted MP4, YouTube, Vimeo, Wistia, Streamable, HLS, DASH and private Amazon S3 — through one player, with the same control bar, captions and sizing whichever source you pick.

  • Free version on WordPress.org
  • 14-day money-back guarantee
  • No CDN calls · GPL licensed
SmartVP Video Player on a page, showing the full control bar: play, rewind, fast-forward, progress bar, elapsed and total time, mute, volume, captions, settings, picture-in-picture, download and fullscreen.
Every frame on this page is a screenshot of the plugin running on a WordPress install, not a mockup.
8Video sources, one config screen
15Controls you can order or remove
0IP addresses stored by analytics
3Display modes: hero, sticky, popup
Source coverage/ 01

Everysource,andanhonestansweraboutwhateachonecando

A YouTube embed cannot carry your own subtitle files. An HLS manifest has no single MP4 to hand a download button. Rather than hide the fields that will not work, the editor reports which capabilities your chosen source actually supports — before you publish.

Which player capabilities each video source supports
SourceControl barAspect / radiusCaptionsQuality menuSpeedPreloadStart timeDownloadChaptersVAST ads
Direct MP4FreeSupportedSupportedSupportedSupportedSupportedSupportedSupportedSupportedSupportedSupported
YouTubeFreeSupportedSupportedNot supportedNot supportedNot supportedNot supportedSupportedNot supportedNot supportedNot supported
VimeoFreeSupportedSupportedNot supportedNot supportedNot supportedNot supportedNot supportedNot supportedNot supportedNot supported
WistiaLiteSupportedSupportedNot supportedNot supportedNot supportedNot supportedNot supportedNot supportedNot supportedNot supported
StreamableLiteSupportedSupportedNot supportedNot supportedNot supportedNot supportedNot supportedNot supportedNot supportedNot supported
HLS (.m3u8)ProSupportedSupportedSupportedNot supportedSupportedSupportedSupportedNot supportedNot supportedSupported
DASH (.mpd)ProSupportedSupportedSupportedNot supportedSupportedSupportedSupportedNot supportedNot supportedSupported
Amazon S3ProSupportedSupportedSupportedSupportedSupportedSupportedSupportedSupportedSupportedSupported

Autoplay, muted start, loop, poster, seek step, play-on-scroll and disable-pause work on all eight sources. Wistia and Streamable resolve to a direct MP4 where the provider exposes one, and fall back to the provider's own embed otherwise — the editor is told which happened.

The player/ 02

Thesameplayer,configureddifferently

One skin, one control bar and one sizing model across all eight sources — the difference between two players is configuration, not a different embed.

The player with the shipped default control bar: big play button, play, progress, current time, mute, volume and fullscreen.

The seven controls a new player ships with. Nothing was configured to get this.

Capabilities/ 03

Whatyouget,andwhichtieritlivesin

Nothing below is on a roadmap. Each item is shipping in the version named on its badge.

Playback control

Free

Fifteen player controls that you drag into the order you want, or drag out entirely.

  • Autoplay, muted start, loop
  • Playback speed, eight steps from 0.25× to 2×
  • Seek step of 1–60 seconds
  • Start-time offset
  • Preload: metadata, auto or none
  • Disable pause

Captions & access

Free

Subtitle tracks are real markup, not an overlay painted by JavaScript.

  • Multi-track WebVTT with label and language code
  • One track flagged as default
  • Keyboard-operable control sorter in the admin
  • prefers-reduced-motion respected
  • Translation-ready, all strings in the POT file

Sizing & appearance

Free

Sizing is resolved server-side, so the player does not jump once the video loads.

  • Original ratio matches the video's real dimensions
  • Fixed ratios: 16:9, 4:3, 21:9, 1:1, 9:16, custom
  • Max width in pixels or per cent
  • Corner radius 0–100px, with a site-wide default
  • Poster image per player
  • Accent colour (Pro)

Video security

Pro

The password gate runs before the player is built, so there is nothing in the page to find.

  • Media URL absent from the HTML until unlocked
  • Access carried by an HMAC-SHA256 cookie
  • Passwords hashed on save
  • S3 playback through short-lived presigned URLs

Analytics

Pro

Aggregate counters only. There is no column in the table for an IP address, because none is collected.

  • Play plus 25 / 50 / 75 / 100 % milestones
  • Thirty-day chart and a per-video table
  • Do-Not-Track honoured before anything is sent
  • Optional mirroring of events to Google Analytics

Playlists & display

Pro

Group existing players into a playlist without duplicating their configuration.

  • Three layouts: side list, bottom list, grid
  • Autoplay, loop and shuffle
  • Hero banner with scrim, heading and CTA
  • Dismissible sticky corner player
  • Popup lightbox
Workflow/ 04

Configure,preview,publish

A player is a post. You configure it once, then drop its shortcode anywhere you want that video to appear.

01

Pick a source

Choose one of the eight sources. The screen immediately lists what that source supports and what it does not — so you never fill in a field that will be ignored.

The Source and Media tab of the player editor, showing the video source dropdown and an expanded capabilities readout listing twenty supported capabilities for a direct MP4 source.
02

Shape the player

Drag controls into the order you want them, set the ratio, radius and width, add captions and quality renditions. A live preview sits above the settings and rebuilds as you go.

The Look tab showing the drag-and-drop control bar sorter with all fifteen controls in the Shown list, playback speed checkboxes, aspect ratio, max width and corner radius fields.
03

Publish and embed

Copy the shortcode from the players list and paste it into any post, page, template or page-builder text area — Elementor's Shortcode widget and do_shortcode() included.

The All Players list table in wp-admin, with a shortcode column showing a copyable shortcode for each player.
Embed[smart_video id=10]

The primary method, and the one that works everywhere — the block editor's Shortcode block, Elementor's Shortcode widget, or do_shortcode() in a theme template.

Inside wp-admin/ 05

SettingsthatlooklikeWordPress,becausetheyare

No separate app, no iframe to an external dashboard. The whole plugin lives in wp-admin and speaks its visual language.

The Behaviour tab of the player editor with autoplay, loop, play-on-scroll and threshold settings.

Play-on-scroll starts the video when it enters the viewport and pauses it when it leaves. The threshold slider decides how much of it has to be visible first.

Advanced/ 06

Thepartsthatarehardtobuildyourself

A password gate that actually withholds the video

Most protection is decoration: the video URL still sits in the page source, and anyone who opens the developer tools can copy it. SmartVP returns the gate before the player is ever built.

  • On the protected demo page, searching the delivered HTML for the video filename returns nothing.
  • Access is carried by an HMAC-SHA256 cookie derived from your WordPress salts.
  • The password is hashed on save, never stored in the clear.
The password form shown in place of the video, reading This video is password protected, with a password field and a submit button.

Analytics with nothing to leak

The statistics table has four columns: which video, which milestone, which day, and how many. There is no row per visitor, because there is no visitor identity to store.

  • Play, 25 %, 50 %, 75 % and completion, counted per day.
  • No cookies, no IP addresses, no user IDs.
  • Do-Not-Track is checked before the first request is made.
  • Events can be mirrored to Google Analytics if you want them there too.
The analytics dashboard with a thirty-day bar chart and a per-video performance table showing plays and milestone counts.

Playlists that reuse the players you already made

A playlist is a list of existing players, not a second place to configure the same video. Change the player once and every playlist that references it follows.

  • Side list, bottom list or thumbnail grid.
  • Autoplay the first item, loop the set, or shuffle.
  • Its own shortcode: [smart_video_playlist id=23]
A playlist on the front end with the main player on the left and three thumbnails stacked on the right, the active item outlined.

Three ways to place a video, beyond the page flow

Hero, sticky and popup are separate display modes on the same player, not separate plugins.

  • Hero — full-bleed banner with a scrim, heading, subheading and call to action.
  • Sticky — pins to the corner when the viewer scrolls past, with a close button.
  • Popup — a poster that opens the video in a modal over the page.
A page scrolled to the footer with the video pinned as a small player in the bottom-right corner, with a close button.
Responsive/ 07

Sizedfromtheratio,notfromaguess

The aspect ratio is resolved before the page renders, so the player reserves its space immediately instead of collapsing and then jumping once the video's dimensions arrive.

The advanced player on a 390-pixel-wide phone viewport, control bar intact and the video filling the column width.
Phone · 390 px
The playlist on an 834-pixel-wide tablet viewport, with the thumbnail list reflowing beneath the main player.
Tablet · 834 px
A playlist on a phone viewport with the video on top and playlist items stacked below it.
Playlist on phone
Performance/ 08

Whattheplugindoesnotload

No benchmark numbers here, because a benchmark of someone else's site would not tell you anything. What follows is how the plugin decides what to send.

Scripts and styles are registered globally but enqueued from inside the shortcode. A page with no player downloads no player CSS and no player JavaScript.

hls.js and dash.js ship inside the Pro add-on and are enqueued only when the player being rendered is actually an HLS or DASH source.

A YouTube player renders as a poster and a play button. The iframe — and every request YouTube makes with it — is created when the visitor decides to watch.

Plyr, hls.js and dash.js are bundled in the plugin. No CDN, no external fonts, no icon service. One exception, stated plainly: enabling VAST advertising loads Google's IMA SDK at playback time.

Player scripts are registered with the in-footer flag, so they do not block the first render of the page.

Ratio and radius arrive as CSS custom properties on the wrapper, so the layout is stable before any JavaScript runs.

Comparison/ 09

AgainstthewayWordPresshandlesvideooutofthebox

The honest comparison is with core WordPress, which is what most sites are actually using.

 SmartVP Video PlayerCore video block / oEmbed
SourcesEight, configured identicallySelf-hosted files, or an oEmbed provider's own player
Control barFifteen controls, ordered by drag or keyboardBrowser default controls
Consistency across sourcesOne player skin for every sourceEach provider brings its own player and branding
CaptionsMulti-track WebVTT with labels, languages and a defaultSingle track per source on the core video block
Quality switchingNamed renditions in the settings menuNot available for self-hosted files
YouTube privacyNothing loads until the visitor clicksThe embed and its requests load with the page
ReuseConfigure once, embed the shortcode anywhereRe-configure at each insertion point
Access controlPer-video password, gated server-sideProPost-level password only
Engagement dataMilestone counters per videoProNone

On comparisons with other plugins. We deliberately did not publish a feature grid against a named competitor. Those tables age badly, and the ones we could verify would be a mixture of things we do better, things they do better, and a long middle of things both products do. Where a competitor has something SmartVP lacks — a native Gutenberg block, an Elementor widget, watermarking, end screens — this page simply does not claim it.

Get the plugin / 10

Free on WordPress.org. Lite and Pro from $15 a year.

Plans, the full Free / Lite / Pro comparison and checkout are on the plugin's own page.

Questions/ 11

Frequentlyasked

Create a player under SmartVP Video Player → Add New Player, pick your source and configure it, then publish. The players list shows a shortcode for each one — copy it and paste it wherever you want the video, for example [smart_video id=10].

SmartVP Video Player 1.1.0 · Lite 1.1.0 · Pro 1.1.0

More Projects

View all my projects

Like what you see?Book a free discovery call.