{"id":350956,"date":"2026-08-19T06:18:48","date_gmt":"2026-08-19T06:18:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/story-video-block\/"},"modified":"2026-08-19T06:36:50","modified_gmt":"2026-08-19T06:36:50","slug":"story-video-block","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/story-video-block\/","author":20545557,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.0.4","requires":"6.8","requires_php":"7.4","requires_plugins":null,"header_name":"Story Video Block","header_author":"Akshat Saxena","header_description":"A video + text block for testimonial and story-style sections. Paste a YouTube, Vimeo, Dailymotion, Facebook, Twitch, Wistia, Loom, TikTok, VideoPress, or direct video-file URL and it lazy-loads a click-to-play embed.","assets_banners_color":"f2f5ff","last_updated":"2026-08-19 06:36:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/github.com\/akshat009","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"developerakshat","date":"2026-08-19 06:36:50"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3653938,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3653938,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.gif":{"filename":"banner-1544x500.gif","revision":3653938,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.gif":{"filename":"banner-772x250.gif","revision":3653938,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3653963,"resolution":false,"location":"assets","locale":"","contents":"{\"landingPage\":\"\\\/wp-admin\\\/post-new.php?post_type=page\",\"preferredVersions\":{\"php\":\"8.0\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"story-video-block\"}}]}"}},"all_blocks":{"create-block\/story-video-block":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"create-block\/story-video-block","version":"0.1.0","title":"Story Video Block","category":"media","icon":"video-alt3","description":"A video and text section with lazy-loaded video embeds.","keywords":["video","youtube","story","testimonial"],"example":{},"supports":{"html":false,"align":["wide","full"]},"attributes":{"align":{"type":"string","default":"full"},"videoUrl":{"type":"string","default":""},"videoProvider":{"type":"string","default":"youtube"},"videoId":{"type":"string","default":""},"posterUrl":{"type":"string","default":""},"posterId":{"type":"number"},"posterAlt":{"type":"string","default":""},"heading":{"type":"string","default":""},"headingTag":{"type":"string","default":"h2"},"description":{"type":"string","default":""},"backgroundColor":{"type":"string","default":""},"textColor":{"type":"string","default":""},"transcriptUrl":{"type":"string","default":""},"transcriptName":{"type":"string","default":""},"transcriptSize":{"type":"string","default":""},"playButtonStyle":{"type":"string","default":"default"},"playIcon":{"type":"string","default":"triangle"},"videoPosition":{"type":"string","default":"right"},"showQuotationMarks":{"type":"boolean","default":false},"cardStyle":{"type":"string","default":"standard"},"quoteText":{"type":"string","default":""},"authorName":{"type":"string","default":""},"authorTitle":{"type":"string","default":""},"avatarUrl":{"type":"string","default":""},"avatarId":{"type":"number"},"avatarAlt":{"type":"string","default":""}},"textdomain":"story-video-block","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","viewScriptModule":"file:.\/view.js"}},"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3653938,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3653938,"resolution":"10","location":"assets","locale":"","width":1312,"height":545},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3653938,"resolution":"2","location":"assets","locale":"","width":1312,"height":545},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3653938,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3653938,"resolution":"4","location":"assets","locale":"","width":1312,"height":545},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3653938,"resolution":"5","location":"assets","locale":"","width":1440,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3653938,"resolution":"6","location":"assets","locale":"","width":1312,"height":546},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3653938,"resolution":"7","location":"assets","locale":"","width":1440,"height":900},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3653938,"resolution":"8","location":"assets","locale":"","width":1312,"height":521},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3653938,"resolution":"9","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"Editor \u2014 standard layout, with the Video, Layout, Testimonial, and Content settings in the sidebar and a dedicated Styles tab for background and text color.","2":"Frontend \u2014 standard layout with a YouTube video.","3":"Editor \u2014 media-left layout with a Dailymotion video.","4":"Frontend \u2014 media-left layout with a Dailymotion video.","5":"Editor \u2014 overlapping media card style with a Twitch video.","6":"Frontend \u2014 overlapping media card style; the video pokes out above and below the card.","7":"Editor \u2014 testimonial mode with a quote, author, and a Facebook video.","8":"Frontend \u2014 testimonial mode with a quote, author, and a Facebook video.","9":"Editor \u2014 branded play button style with a Loom video.","10":"Frontend \u2014 branded play button style with a Loom video."}},"plugin_section":[],"plugin_tags":[148076,5211,222,5637,1610],"plugin_category":[50,53,56],"plugin_contributors":[273671],"plugin_business_model":[],"class_list":["post-350956","plugin","type-plugin","status-publish","hentry","plugin_tags-gutenberg","plugin_tags-testimonial","plugin_tags-video","plugin_tags-video-player","plugin_tags-youtube","plugin_category-media","plugin_category-ratings-and-reviews","plugin_category-social-and-sharing","plugin_contributors-developerakshat","plugin_committers-developerakshat"],"banners":{"banner":"https:\/\/ps.w.org\/story-video-block\/assets\/banner-772x250.gif?rev=3653938","banner_2x":"https:\/\/ps.w.org\/story-video-block\/assets\/banner-1544x500.gif?rev=3653938","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/story-video-block\/assets\/icon-128x128.gif?rev=3653938","icon_2x":"https:\/\/ps.w.org\/story-video-block\/assets\/icon-256x256.gif?rev=3653938","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/story-video-block\/assets\/screenshot-1.png?rev=3653938","caption":"Editor \u2014 standard layout, with the Video, Layout, Testimonial, and Content settings in the sidebar and a dedicated Styles tab for background and text color."},{"src":"https:\/\/ps.w.org\/story-video-block\/assets\/screenshot-2.png?rev=3653938","caption":"Frontend \u2014 standard layout with a YouTube video."},{"src":"https:\/\/ps.w.org\/story-video-block\/assets\/screenshot-3.png?rev=3653938","caption":"Editor \u2014 media-left layout with a Dailymotion video."},{"src":"https:\/\/ps.w.org\/story-video-block\/assets\/screenshot-4.png?rev=3653938","caption":"Frontend \u2014 media-left layout with a Dailymotion video."},{"src":"https:\/\/ps.w.org\/story-video-block\/assets\/screenshot-5.png?rev=3653938","caption":"Editor \u2014 overlapping media card style with a Twitch video."},{"src":"https:\/\/ps.w.org\/story-video-block\/assets\/screenshot-6.png?rev=3653938","caption":"Frontend \u2014 overlapping media card style; the video pokes out above and below the card."},{"src":"https:\/\/ps.w.org\/story-video-block\/assets\/screenshot-7.png?rev=3653938","caption":"Editor \u2014 testimonial mode with a quote, author, and a Facebook video."},{"src":"https:\/\/ps.w.org\/story-video-block\/assets\/screenshot-8.png?rev=3653938","caption":"Frontend \u2014 testimonial mode with a quote, author, and a Facebook video."},{"src":"https:\/\/ps.w.org\/story-video-block\/assets\/screenshot-9.png?rev=3653938","caption":"Editor \u2014 branded play button style with a Loom video."},{"src":"https:\/\/ps.w.org\/story-video-block\/assets\/screenshot-10.png?rev=3653938","caption":"Frontend \u2014 branded play button style with a Loom video."}],"raw_content":"<!--section=description-->\n<p>Story Video Block is a Gutenberg video block that pairs a video with a heading, description, and attribution \u2014 built for video testimonial and story-style page sections. Paste a YouTube, Vimeo, or other video URL, add a poster image, and the block handles a fast, click-to-play embed automatically.<\/p>\n\n<p>Unlike most video blocks, nothing is shipped to visitors just to swap a poster image for a video player: the click-to-play interaction runs on WordPress's native <code>@wordpress\/interactivity<\/code> module \u2014 no React, no jQuery, no extra framework loaded on the front end.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>One field, auto-detected<\/strong> \u2014 paste a URL from YouTube, Vimeo, Dailymotion, Facebook, Twitch, Wistia, Loom, TikTok, VideoPress, or a self-hosted <code>.mp4<\/code>\/<code>.webm<\/code>\/<code>.ogg<\/code>\/<code>.mov<\/code> file. The provider and video ID are detected automatically.<\/li>\n<li><strong>Poster image<\/strong> \u2014 auto-pulled from YouTube, Dailymotion, and Loom, or upload your own for any provider.<\/li>\n<li><strong>Click-to-load playback<\/strong> \u2014 no video player loads until the visitor clicks play, keeping the page fast.<\/li>\n<li><strong>No React, no jQuery on the front end<\/strong> \u2014 the click-to-play interaction runs on WordPress's native <code>@wordpress\/interactivity<\/code> module (a script module, not a classic script), not a framework. Nothing is shipped to visitors just to swap a poster image for a video embed.<\/li>\n<li><strong>Configurable play button<\/strong> \u2014 4 built-in icon shapes x 3 color styles, and extendable via WordPress filters if you want to bring your own icon library.<\/li>\n<li><strong>Testimonial mode<\/strong> \u2014 swap the heading\/description for a quote, author name, author title, and avatar.<\/li>\n<li><strong>Media position<\/strong> \u2014 video on the left or right of the content.<\/li>\n<li><strong>Card style<\/strong> \u2014 standard, or an \"overlapping media\" look where the video pokes out above\/below the card.<\/li>\n<li><strong>Background color control<\/strong>, plus CSS custom properties for everything else (padding, gap, radius, shadow, play-button colors, and more) so a theme can restyle the block without editing plugin files.<\/li>\n<li><strong>Transcript upload<\/strong> \u2014 attach a PDF\/Word\/text file for accessibility; renders as a labeled download link.<\/li>\n<li><strong>Developer filters<\/strong> \u2014 <code>story_video_block_css_vars<\/code> and <code>story_video_block_content<\/code> let a theme or must-use plugin adjust the block's frontend CSS\/markup from <code>functions.php<\/code>.<\/li>\n<li><strong>Accessible by default<\/strong> \u2014 labeled controls, <code>aria-label<\/code>s on interactive elements, decorative images marked as such, and visible \"opens in a new tab\" hints for screen readers.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/story-video-block<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Add the \"Story Video Block\" block to any post or page and paste a video URL in the sidebar.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20video%20providers%20are%20supported%3F\"><h3>Which video providers are supported?<\/h3><\/dt>\n<dd><p>YouTube, Vimeo, Dailymotion, Facebook, Twitch, Wistia, Loom, TikTok, VideoPress, and self-hosted video files (<code>.mp4<\/code>, <code>.webm<\/code>, <code>.ogg<\/code>, <code>.mov<\/code>).<\/p><\/dd>\n<dt id=\"why%20does%20the%20block%20require%20a%20poster%20image%3F\"><h3>Why does the block require a poster image?<\/h3><\/dt>\n<dd><p>The play button overlays a poster image so the real video embed isn't loaded until a visitor actually presses play. For providers without an automatic thumbnail, you'll need to upload one.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20block%27s%20colors%2C%20fonts%2C%20or%20spacing%20without%20a%20child%20theme%3F\"><h3>Can I change the block's colors, fonts, or spacing without a child theme?<\/h3><\/dt>\n<dd><p>Yes. Every visual value is a CSS custom property. Add a filter in your theme's <code>functions.php<\/code>:<\/p>\n\n<pre><code>add_filter( 'story_video_block_css_vars', function ( $vars ) {\n    $vars['--story-video-block-bg']          = '#000';\n    $vars['--story-video-block-font-family'] = '\"Poppins\", sans-serif';\n    return $vars;\n}, 10, 3 );\n<\/code><\/pre>\n\n<p>Every variable the block reads (with its default) \u2014 set any subset of these from the filter above:<\/p>\n\n<p><strong>Card<\/strong><\/p>\n\n<ul>\n<li><code>--story-video-block-bg<\/code> (<code>#21759b<\/code>) \u2014 background color<\/li>\n<li><code>--story-video-block-color<\/code> (<code>#fff<\/code>) \u2014 text color<\/li>\n<li><code>--story-video-block-font-family<\/code> (<code>inherit<\/code>) \u2014 font<\/li>\n<li><code>--story-video-block-padding<\/code> (<code>24px<\/code>) \u2014 card padding<\/li>\n<li><code>--story-video-block-gap<\/code> (<code>32px<\/code>) \u2014 gap between media and content<\/li>\n<li><code>--story-video-block-media-overflow<\/code> (<code>80px<\/code>) \u2014 how far media pokes out in the \"overlapping media\" card style<\/li>\n<li><code>--story-video-block-block-gap<\/code> (<code>40px<\/code>) \u2014 extra spacing reserved above\/below for that same overlap<\/li>\n<\/ul>\n\n<p><strong>Media (video\/facade\/poster)<\/strong><\/p>\n\n<ul>\n<li><code>--story-video-block-radius<\/code> (<code>12px<\/code>) \u2014 corner rounding<\/li>\n<li><code>--story-video-block-shadow<\/code> (<code>0 8px 24px rgba(0,0,0,.25)<\/code>) \u2014 drop shadow<\/li>\n<li><code>--story-video-block-media-margin-bottom<\/code> (<code>12px<\/code>)<\/li>\n<li><code>--story-video-block-facade-bg<\/code> (<code>#000<\/code>) \u2014 poster background before the image loads<\/li>\n<\/ul>\n\n<p><strong>Play button<\/strong><\/p>\n\n<ul>\n<li><code>--story-video-block-play-btn-size<\/code> (<code>64px<\/code>), <code>--story-video-block-play-btn-padding<\/code> (<code>18px<\/code>), <code>--story-video-block-play-btn-radius<\/code> (<code>50%<\/code>), <code>--story-video-block-play-btn-bg<\/code> (<code>rgba(255,255,255,.9)<\/code>), <code>--story-video-block-play-btn-color<\/code> (<code>#111<\/code>) \u2014 default style<\/li>\n<li><code>--story-video-block-play-btn-minimal-size<\/code> (<code>56px<\/code>), <code>--story-video-block-play-btn-minimal-color<\/code> (<code>#fff<\/code>), <code>--story-video-block-play-btn-minimal-shadow<\/code> \u2014 \"minimal\" style<\/li>\n<li><code>--story-video-block-play-btn-branded-size<\/code> (<code>80px<\/code>), <code>--story-video-block-play-btn-branded-padding<\/code> (<code>22px<\/code>), <code>--story-video-block-play-btn-branded-bg<\/code> (<code>#e63946<\/code>), <code>--story-video-block-play-btn-branded-color<\/code> (<code>#fff<\/code>) \u2014 \"branded\" style<\/li>\n<\/ul>\n\n<p><strong>Testimonial quote &amp; author<\/strong><\/p>\n\n<ul>\n<li><code>--story-video-block-quote-margin<\/code> (<code>0 0 16px<\/code>), <code>--story-video-block-quote-size<\/code> (<code>1.25em<\/code>)<\/li>\n<li><code>--story-video-block-quote-mark-open<\/code> (<code>\u201c<\/code>), <code>--story-video-block-quote-mark-close<\/code> (<code>\u201d<\/code>)<\/li>\n<li><code>--story-video-block-author-gap<\/code> (<code>12px<\/code>), <code>--story-video-block-avatar-size<\/code> (<code>48px<\/code>)<\/li>\n<li><code>--story-video-block-author-name-weight<\/code> (<code>600<\/code>), <code>--story-video-block-author-title-opacity<\/code> (<code>0.8<\/code>)<\/li>\n<\/ul>\n\n<p>Anything not covered by a variable can still be styled with plain CSS targeting <code>.wp-block-create-block-story-video-block<\/code> from your theme, or via the <code>story_video_block_content<\/code> filter for full markup control.<\/p><\/dd>\n<dt id=\"does%20this%20block%20track%20visitors%20or%20call%20any%20external%20service%20on%20page%20load%3F\"><h3>Does this block track visitors or call any external service on page load?<\/h3><\/dt>\n<dd><p>No. Nothing loads until a visitor clicks play, at which point the browser requests the embed directly from the video provider (e.g. YouTube) the same way any embedded video would.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A fast video testimonial block for Gutenberg \u2014 YouTube, Vimeo &amp; more, with a poster image and click-to-play embed. Zero React\/jQuery on the front end.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/350956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=350956"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/developerakshat"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=350956"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=350956"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=350956"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=350956"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=350956"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=350956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}