{"id":383807,"date":"2026-10-12T19:17:49","date_gmt":"2026-10-12T19:17:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/smartvp-video-player\/"},"modified":"2026-10-12T19:17:21","modified_gmt":"2026-10-12T19:17:21","slug":"smartvp-video-player","status":"publish","type":"plugin","link":"https:\/\/bo.wordpress.org\/plugins\/smartvp-video-player\/","author":23583042,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"SmartVP Video Player","header_author":"Alaeddine Zaoug","header_description":"A responsive Plyr-based video player for self-hosted MP4, YouTube and Vimeo, with play-on-scroll, custom controls and a live editor preview.","assets_banners_color":"32294b","last_updated":"2026-10-12 19:17:21","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/alaazaoug\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":45,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"alaazaoug","date":"2026-10-12 19:17:21","revision":3742382}},"upgrade_notice":{"1.1.0":"<p>Coming from &quot;Smart Video Player&quot;? Deactivate and delete it first. Settings and players are migrated to new option and meta names automatically. If you use the Lite or Pro add-on, update it to its latest version at the same time.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3742382,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3742382,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3742382,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3742382,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3742382,"resolution":"1","location":"assets","locale":"","width":1280,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3742382,"resolution":"2","location":"assets","locale":"","width":1440,"height":1118},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3742382,"resolution":"3","location":"assets","locale":"","width":962,"height":824},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3742382,"resolution":"4","location":"assets","locale":"","width":1440,"height":1628},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3742382,"resolution":"5","location":"assets","locale":"","width":1280,"height":560},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3742382,"resolution":"6","location":"assets","locale":"","width":1280,"height":560}},"screenshots":{"1":"A self-hosted video with captions and the settings menu (captions, quality and speed).","2":"The player editor: pick a source and watch the live preview update as you edit.","3":"Drag-and-drop control bar: choose which controls appear and in what order.","4":"Behaviour options, including play on scroll, muted start, loop and start time.","5":"All players in one list, each with a ready-to-copy shortcode.","6":"Site-wide defaults: pause other players, default aspect ratio and corner radius."}},"plugin_section":[],"plugin_tags":[170242,222,5637,1609,1610],"plugin_category":[50,56],"plugin_contributors":[286259],"plugin_business_model":[],"class_list":["post-383807","plugin","type-plugin","status-publish","hentry","plugin_tags-plyr","plugin_tags-video","plugin_tags-video-player","plugin_tags-vimeo","plugin_tags-youtube","plugin_category-media","plugin_category-social-and-sharing","plugin_contributors-alaazaoug","plugin_committers-alaazaoug"],"banners":{"banner":"https:\/\/ps.w.org\/smartvp-video-player\/assets\/banner-772x250.png?rev=3742382","banner_2x":"https:\/\/ps.w.org\/smartvp-video-player\/assets\/banner-1544x500.png?rev=3742382","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/smartvp-video-player\/assets\/icon-128x128.png?rev=3742382","icon_2x":"https:\/\/ps.w.org\/smartvp-video-player\/assets\/icon-256x256.png?rev=3742382","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/smartvp-video-player\/assets\/screenshot-1.png?rev=3742382","caption":"A self-hosted video with captions and the settings menu (captions, quality and speed)."},{"src":"https:\/\/ps.w.org\/smartvp-video-player\/assets\/screenshot-2.png?rev=3742382","caption":"The player editor: pick a source and watch the live preview update as you edit."},{"src":"https:\/\/ps.w.org\/smartvp-video-player\/assets\/screenshot-3.png?rev=3742382","caption":"Drag-and-drop control bar: choose which controls appear and in what order."},{"src":"https:\/\/ps.w.org\/smartvp-video-player\/assets\/screenshot-4.png?rev=3742382","caption":"Behaviour options, including play on scroll, muted start, loop and start time."},{"src":"https:\/\/ps.w.org\/smartvp-video-player\/assets\/screenshot-5.png?rev=3742382","caption":"All players in one list, each with a ready-to-copy shortcode."},{"src":"https:\/\/ps.w.org\/smartvp-video-player\/assets\/screenshot-6.png?rev=3742382","caption":"Site-wide defaults: pause other players, default aspect ratio and corner radius."}],"raw_content":"<!--section=description-->\n<p>SmartVP Video Player gives every video on your site the same clean, accessible player, whether the file lives in your Media Library, on a CDN, on YouTube or on Vimeo. Each player is created once under <strong>SmartVP Video Player \u2192 Add New Player<\/strong> and placed anywhere with a shortcode.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Sources:<\/strong> self-hosted or direct-link MP4, YouTube and Vimeo.<\/li>\n<li><strong>Original size:<\/strong> the player takes the video's own aspect ratio, so there are no black bars. Fixed ratios (16:9, 4:3, 21:9, 1:1, 9:16 or custom) are available too.<\/li>\n<li><strong>Play on scroll:<\/strong> start playing (muted) when the player scrolls into view and pause when it leaves.<\/li>\n<li><strong>Drag-and-drop control bar:<\/strong> choose which Plyr controls appear and in what order, with keyboard support.<\/li>\n<li><strong>Live preview:<\/strong> see the player, its size, corner radius and control bar while you edit, without saving.<\/li>\n<li><strong>Playback options:<\/strong> autoplay, muted start, loop, preload, start time, seek step, disable pause and playback speeds.<\/li>\n<li><strong>Subtitles and quality menu<\/strong> for direct MP4 sources (WebVTT tracks and multiple quality files).<\/li>\n<li><strong>Size and shape:<\/strong> max width, max height and corner radius per player, with site-wide defaults.<\/li>\n<li><strong>Lightweight YouTube embeds:<\/strong> YouTube shows a poster and loads the YouTube player only when the visitor presses play (or when autoplay or play-on-scroll starts it).<\/li>\n<li><strong>Pause others:<\/strong> starting one player pauses the rest on the page.<\/li>\n<li><strong>VideoObject structured data<\/strong> for players that have a poster.<\/li>\n<li><strong>Editor checks:<\/strong> warns about malformed links, a link that does not match the selected source, and a start time past the end of the video.<\/li>\n<li>Translation ready.<\/li>\n<\/ul>\n\n<h4>Usage<\/h4>\n\n<ol>\n<li>Go to <strong>SmartVP Video Player \u2192 Add New Player<\/strong>.<\/li>\n<li>Pick a source, then upload a file or paste a YouTube or Vimeo link.<\/li>\n<li>Adjust the look and behaviour while watching the preview, then publish.<\/li>\n<li>Copy the shortcode, for example <code>[smart_video id=\"123\"]<\/code>, into any post, page or widget.<\/li>\n<\/ol>\n\n<h4>For developers<\/h4>\n\n<p>The player exposes PHP filters and a small JavaScript API (<code>window.SmartVP<\/code>) for adding sources, render modes and features from another plugin or theme. The full list is documented at the top of <code>includes\/extend.php<\/code>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the services below only when a player uses them. It does not send any data to the plugin author.<\/p>\n\n<h4>YouTube (Google)<\/h4>\n\n<p>Used when a player's source is YouTube.<\/p>\n\n<ul>\n<li>In the visitor's browser, the YouTube embed (<code>https:\/\/www.youtube.com\/embed\/\u2026<\/code>) and the YouTube IFrame Player API (<code>https:\/\/www.youtube.com\/iframe_api<\/code>) load when the visitor presses play, or when autoplay or play-on-scroll starts the video. The default poster image is loaded from <code>https:\/\/i.ytimg.com\/<\/code>. YouTube receives the video ID, your site's address and the usual browser data (IP address, user agent).<\/li>\n<li>From your server, the player asks YouTube's oEmbed endpoint (<code>https:\/\/www.youtube.com\/oembed<\/code>) for the video's width and height so it can be sized correctly. Only the video URL is sent. The answer is cached for a day.<\/li>\n<\/ul>\n\n<p>YouTube <a href=\"https:\/\/www.youtube.com\/t\/terms\">Terms of Service<\/a> and Google <a href=\"https:\/\/policies.google.com\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<h4>Vimeo<\/h4>\n\n<p>Used when a player's source is Vimeo.<\/p>\n\n<ul>\n<li>In the visitor's browser, the Vimeo player (<code>https:\/\/player.vimeo.com\/video\/\u2026<\/code>, loaded with Vimeo's \"do not track\" option) and the Vimeo Player API script (<code>https:\/\/player.vimeo.com\/api\/player.js<\/code>) are loaded with the page that shows the player. Vimeo receives the video ID, your site's address and the usual browser data.<\/li>\n<li>From your server, the player asks Vimeo's oEmbed endpoint (<code>https:\/\/vimeo.com\/api\/oembed.json<\/code>) for the video's thumbnail, width and height. Only the video URL is sent. The answer is cached for a day.<\/li>\n<\/ul>\n\n<p>Vimeo <a href=\"https:\/\/vimeo.com\/terms\">Terms of Service<\/a> and <a href=\"https:\/\/vimeo.com\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<h4>Link check in the editor<\/h4>\n\n<p>While an editor types a video URL in the player settings, the plugin can check from your server that the link answers (a single small request to that URL, only for YouTube and Vimeo addresses, your own site, or links ending in a video file extension). Nothing else is sent. This runs only in wp-admin, for users who can upload files.<\/p>\n\n<h3>Third-party libraries<\/h3>\n\n<p>All bundled locally; nothing is loaded from a CDN.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/github.com\/sampotts\/plyr\">Plyr<\/a> 3.8.4 \u2014 MIT License. <code>vendor\/plyr\/plyr.js<\/code> is the unminified build of the <code>plyr.min.js<\/code> the plugin loads.<\/li>\n<li><a href=\"https:\/\/github.com\/Codestar\/codestar-framework\">Codestar Framework<\/a> 2.3.1 \u2014 GPLv2 or later. Used for the player settings and metabox screens; trimmed to the fields this plugin uses. Unminified sources are included next to the minified files.<\/li>\n<li><a href=\"https:\/\/github.com\/FortAwesome\/Font-Awesome\/tree\/v4.7.0\">Font Awesome<\/a> 4.7.0 \u2014 fonts SIL OFL 1.1, CSS MIT. Section icons in the settings screens.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin from <strong>Plugins \u2192 Add New<\/strong>, or upload the <code>smartvp-video-player<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate it from the <strong>Plugins<\/strong> screen.<\/li>\n<li>Open <strong>SmartVP Video Player<\/strong> in the admin menu to create your first player.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20show%20a%20player%20on%20a%20page%3F\"><h3>How do I show a player on a page?<\/h3><\/dt>\n<dd><p>Every player has a shortcode, shown on the player list and in the player editor. Paste it into a Shortcode block, the classic editor or a widget.<\/p><\/dd>\n<dt id=\"why%20does%20autoplay%20start%20muted%3F\"><h3>Why does autoplay start muted?<\/h3><\/dt>\n<dd><p>Browsers only allow video to start on its own when it is muted. Autoplay and play-on-scroll therefore always start muted; visitors can turn the sound on.<\/p><\/dd>\n<dt id=\"can%20i%20set%20defaults%20for%20every%20player%3F\"><h3>Can I set defaults for every player?<\/h3><\/dt>\n<dd><p>Yes. <strong>SmartVP Video Player \u2192 Settings<\/strong> has the site-wide aspect ratio, corner radius and the \"pause other players\" option. A player's own settings take priority.<\/p><\/dd>\n<dt id=\"is%20there%20a%20premium%20version%3F\"><h3>Is there a premium version?<\/h3><\/dt>\n<dd><p>Optional add-ons (SmartVP Video Player Lite and Pro) are sold separately and add further sources and display modes. Everything listed on this page works without them.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20delete%20the%20plugin%3F\"><h3>What happens to my data if I delete the plugin?<\/h3><\/dt>\n<dd><p>Deleting the plugin from the Plugins screen removes its players, their settings and its cached data.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>First release on WordPress.org, under the new name SmartVP Video Player (previously Smart Video Player).<\/li>\n<li>Updated Plyr to 3.8.4 and the bundled Codestar Framework to 2.3.1.<\/li>\n<li>Font Awesome is now bundled locally; the admin screens no longer load anything from a CDN, and the editor preview uses the local Plyr icons.<\/li>\n<li>All functions, hooks, options and meta keys now use the <code>smartvp_<\/code> prefix. Existing settings and players are migrated automatically on update.<\/li>\n<li>Add-on features moved out of this plugin into the add-ons. New extension hooks (PHP filters and the <code>window.SmartVP<\/code> JavaScript API) let add-ons register sources, render modes and player features.<\/li>\n<li>The quality menu now works for Direct MP4 players.<\/li>\n<li>Security: database queries in uninstall and migration use prepared statements; unused framework AJAX handlers removed.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Player corner rounding, per player or site-wide.<\/li>\n<li>Fixes for Vimeo cropping and Original size.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>New \"Original\" aspect ratio that sizes the player to the video, and a site-wide default ratio.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A responsive Plyr video player for self-hosted MP4, YouTube and Vimeo, with play-on-scroll, a drag-and-drop control bar and a live editor preview.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/383807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=383807"}],"author":[{"embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/alaazaoug"}],"wp:attachment":[{"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=383807"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=383807"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=383807"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=383807"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=383807"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=383807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}