{"id":302197,"date":"2026-05-26T15:54:48","date_gmt":"2026-05-26T15:54:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/rus-video-embeds-insert-vk-video-rutube-dzen\/"},"modified":"2026-05-26T15:54:30","modified_gmt":"2026-05-26T15:54:30","slug":"rus-video-embeds","status":"publish","type":"plugin","link":"https:\/\/si.wordpress.org\/plugins\/rus-video-embeds\/","author":12531774,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.4","stable_tag":"1.1.4","tested":"6.9.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"RUS Video Embeds for VK Video, Rutube and Dzen","header_author":"WPlovers","header_description":"Embed videos from VK Video, Rutube, and Dzen \u2014 oEmbed, shortcodes, and a Gutenberg block.","assets_banners_color":"f2f3fb","last_updated":"2026-05-26 15:54:30","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/wplovers.ru\/donate\/","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/rus-video-embeds\/","header_author_uri":"https:\/\/wplovers.ru\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":52,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.4":{"tag":"1.1.4","author":"donatory","date":"2026-05-26 15:54:30"}},"upgrade_notice":{"1.1.4":"<p>Adds moderation-focused compliance updates: external services disclosure, build\/source documentation in readme, and canonical <code>wplrve<\/code> prefixes.<\/p>","1.1.3":"<p>Renamed plugin title for moderation compliance and moved\/fixed embed JS handling via WordPress enqueue pipeline.<\/p>","1.1.2":"<p>Improves VK thumbnail refresh stability for older FluentCommunity posts during edits.<\/p>","1.1.1":"<p>Fixed constant prefixes for Plugin Check compliance, translated to English, added required WordPress.org files.<\/p>","1.1.0":"<p>Adds Dzen embed-URL support, helpful notices for watch-URLs, configurable vertical margins, and editor fixes.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128-ru_RU.png":{"filename":"icon-128x128-ru_RU.png","revision":3549420,"resolution":"128x128","location":"assets","locale":"ru_RU","width":128,"height":128},"icon-128x128.png":{"filename":"icon-128x128.png","revision":3549420,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256-ru_RU.png":{"filename":"icon-256x256-ru_RU.png","revision":3549420,"resolution":"256x256","location":"assets","locale":"ru_RU","width":256,"height":256},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3549420,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500-ru_RU.png":{"filename":"banner-1544x500-ru_RU.png","revision":3549420,"resolution":"1544x500","location":"assets","locale":"ru_RU","width":1544,"height":500},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3549420,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-ru_RU.png":{"filename":"banner-772x250-ru_RU.png","revision":3549420,"resolution":"772x250","location":"assets","locale":"ru_RU","width":772,"height":250},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3549420,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"rus-video-embeds\/video":{"apiVersion":3,"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","name":"rus-video-embeds\/video","version":"1.1.1","title":"RU Video","category":"embed","icon":"video-alt3","description":"Embed videos from VK Video, Rutube, and Dzen","keywords":["video","\u0432\u0438\u0434\u0435\u043e","vk","rutube","\u0434\u0437\u0435\u043d","dzen","embed"],"textdomain":"rus-video-embeds","supports":{"html":false,"align":["wide","full"],"spacing":{"margin":["top","bottom"]}},"attributes":{"url":{"type":"string","default":""},"aspectRatio":{"type":"string","default":"16:9"},"autoplay":{"type":"boolean","default":false}},"editorScript":"file:.\/build\/index.js","editorStyle":"rve-embed-editor-styles"}},"tagged_versions":["1.1.4"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3549420,"resolution":"1","location":"assets","locale":"","width":2334,"height":1466},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3549420,"resolution":"2","location":"assets","locale":"","width":2864,"height":1698},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3549420,"resolution":"3","location":"assets","locale":"","width":2940,"height":1746},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3549420,"resolution":"4","location":"assets","locale":"","width":2878,"height":1746}},"screenshots":{"1":"Gutenberg block \u2014 paste a video URL and get an instant preview","2":"Settings page \u2014 default dimensions, autoplay, margins, providers","3":"Dzen embed notice \u2014 helpful instructions when a watch-URL is pasted","4":"Frontend \u2014 responsive video embed on the site"}},"plugin_section":[],"plugin_tags":[234200,230,209688,222,264494],"plugin_category":[50,56],"plugin_contributors":[264496,264495],"plugin_business_model":[],"class_list":["post-302197","plugin","type-plugin","status-publish","hentry","plugin_tags-dzen","plugin_tags-embed","plugin_tags-rutube","plugin_tags-video","plugin_tags-vkvideo","plugin_category-media","plugin_category-social-and-sharing","plugin_contributors-donatory","plugin_contributors-wplovers","plugin_committers-donatory"],"banners":{"banner":"https:\/\/ps.w.org\/rus-video-embeds\/assets\/banner-772x250.png?rev=3549420","banner_2x":"https:\/\/ps.w.org\/rus-video-embeds\/assets\/banner-1544x500.png?rev=3549420","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/rus-video-embeds\/assets\/icon-128x128.png?rev=3549420","icon_2x":"https:\/\/ps.w.org\/rus-video-embeds\/assets\/icon-256x256.png?rev=3549420","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/rus-video-embeds\/assets\/screenshot-1.jpg?rev=3549420","caption":"Gutenberg block \u2014 paste a video URL and get an instant preview"},{"src":"https:\/\/ps.w.org\/rus-video-embeds\/assets\/screenshot-2.jpg?rev=3549420","caption":"Settings page \u2014 default dimensions, autoplay, margins, providers"},{"src":"https:\/\/ps.w.org\/rus-video-embeds\/assets\/screenshot-3.jpg?rev=3549420","caption":"Dzen embed notice \u2014 helpful instructions when a watch-URL is pasted"},{"src":"https:\/\/ps.w.org\/rus-video-embeds\/assets\/screenshot-4.jpg?rev=3549420","caption":"Frontend \u2014 responsive video embed on the site"}],"raw_content":"<!--section=description-->\n<p>RUS Video Embeds adds support for Russian video hosting platforms in WordPress:<\/p>\n\n<ul>\n<li><strong>VK Video<\/strong> \u2014 vk.com\/video*, vkvideo.ru\/*<\/li>\n<li><strong>Rutube<\/strong> \u2014 rutube.ru\/video\/*<\/li>\n<li><strong>Dzen<\/strong> \u2014 dzen.ru\/embed\/* (embed links)<\/li>\n<\/ul>\n\n<p>This is an unofficial plugin and is not affiliated with VK, Rutube, or Dzen.<\/p>\n\n<p><strong>\u26a0\ufe0f Dzen notice:<\/strong> Regular video links (<code>dzen.ru\/video\/watch\/...<\/code>) <strong>do not work<\/strong> for embedding \u2014 Dzen uses separate embed links. When a watch-link is pasted, the plugin displays instructions on how to get the correct link. More info: <a href=\"https:\/\/wplovers.ru\/dzen-wordpress\/?utm_source=wordpress.org&amp;utm_content=dzen_embed\">How to embed Dzen video in WordPress<\/a><\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Auto-embed videos by URL (oEmbed) \u2014 just paste a link on its own line<\/li>\n<li>Shortcodes <code>[vk_video]<\/code>, <code>[rutube]<\/code>, <code>[dzen]<\/code> for the Classic Editor<\/li>\n<li>Gutenberg block \"RU Video\" with preview and settings<\/li>\n<li>Responsive iframe (16:9 by default)<\/li>\n<li>Configurable vertical margins via Gutenberg spacing presets<\/li>\n<li>Settings page: default dimensions, autoplay, margins, enable\/disable providers<\/li>\n<li>Security: sandboxed iframe, lazy loading, URL validation<\/li>\n<li>Extensible: add your own providers via the <code>rus_video_embeds_register_providers<\/code> filter<\/li>\n<\/ul>\n\n<h3>Usage<\/h3>\n\n<p><strong>oEmbed (automatic):<\/strong>\nSimply paste a video link on its own line in the editor:\n    https:\/\/rutube.ru\/video\/abc123def456\/<\/p>\n\n<p><strong>Shortcodes:<\/strong>\n    [vk_video url=\"https:\/\/vk.com\/video-123456_789012\"]\n    [rutube url=\"https:\/\/rutube.ru\/video\/abc123\/\" width=\"800\" height=\"450\"]\n    [dzen url=\"https:\/\/dzen.ru\/embed\/abc123def456\" autoplay=\"1\"]<\/p>\n\n<p><strong>Gutenberg:<\/strong>\nAdd the \"RU Video\" block and paste the URL.<\/p>\n\n<p><strong>Dzen \u2014 how to get an embed link:<\/strong><\/p>\n\n<ol>\n<li>Open the video on Dzen<\/li>\n<li>Click \"Share\" \u2192 \"Embed\"<\/li>\n<li>Copy the link from the <code>src<\/code> attribute in the iframe code (format: <code>https:\/\/dzen.ru\/embed\/...<\/code>)<\/li>\n<li>Paste this link into the block, shortcode, or oEmbed<\/li>\n<\/ol>\n\n<p>You can also paste the entire <code>&lt;iframe&gt;<\/code> code into the Gutenberg block \u2014 the plugin will automatically extract the embed URL.<\/p>\n\n<p>Detailed instructions with screenshots: <a href=\"https:\/\/wplovers.ru\/dzen-wordpress\/?utm_source=wordpress.org&amp;utm_content=dzen_embed\">How to embed Dzen video in WordPress<\/a><\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin uses external services to resolve and display video preview images in the FluentCommunity integration.<\/p>\n\n<p>1) <strong>VK video embed page (<code>vk.com<\/code>, <code>vkvideo.ru<\/code>)<\/strong>\n- <strong>What the service is used for:<\/strong> The plugin requests the video embed page to extract preview image metadata for FluentCommunity cards.\n- <strong>What data is sent and when:<\/strong> When a VK preview is generated or refreshed, WordPress sends an outbound HTTP GET request to the video embed URL. The request includes the target video URL and a standard WordPress user agent string (<code>WP-URLDetails\/... (+site-url)<\/code>).\n- <strong>Provider links:<\/strong> Terms of Service: https:\/\/vk.com\/terms ; Privacy Policy: https:\/\/vk.com\/privacy<\/p>\n\n<p>2) <strong>VK preview image CDN (<code>iv.okcdn.ru<\/code>)<\/strong>\n- <strong>What the service is used for:<\/strong> The plugin builds and uses the final VK preview image URL from <code>iv.okcdn.ru<\/code> to show the thumbnail in FluentCommunity previews.\n- <strong>What data is sent and when:<\/strong> When preview metadata is parsed for VK embeds, the plugin constructs an external image URL on <code>iv.okcdn.ru<\/code>. The browser and\/or WordPress may request this image URL when rendering preview cards.\n- <strong>Provider links:<\/strong> Terms of Service: https:\/\/ok.ru\/regulations ; Privacy Policy: https:\/\/ok.ru\/privacy<\/p>\n\n<p>3) <strong>Rutube preview image CDN (<code>rtbcdn.ru<\/code>)<\/strong>\n- <strong>What the service is used for:<\/strong> Rutube thumbnails used in preview cards are loaded from Rutube CDN domains such as <code>rtbcdn.ru<\/code>.\n- <strong>What data is sent and when:<\/strong> When a Rutube URL is parsed by FluentCommunity (<code>RemoteUrlParser<\/code>) and the preview is rendered, the thumbnail URL returned by Rutube metadata is requested by the browser\/WordPress.\n- <strong>Provider links:<\/strong> Terms of Service: https:\/\/rutube.ru\/info\/agreement\/ ; Privacy Policy: https:\/\/rutube.ru\/info\/privacy\/<\/p>\n\n<p>4) <strong>Dzen preview image CDN (<code>avatars.dzeninfra.ru<\/code>)<\/strong>\n- <strong>What the service is used for:<\/strong> Dzen thumbnails used in preview cards are loaded from Dzen infrastructure domains such as <code>avatars.dzeninfra.ru<\/code>.\n- <strong>What data is sent and when:<\/strong> When a Dzen URL is parsed by FluentCommunity (<code>RemoteUrlParser<\/code>) and the preview is rendered, the thumbnail URL returned by Dzen metadata is requested by the browser\/WordPress.\n- <strong>Provider links:<\/strong> Terms of Service: https:\/\/dzen.ru\/legal\/ru\/termsofuse\/index.html ; Privacy Policy: https:\/\/yandex.ru\/legal\/confidential\/<\/p>\n\n<h3>Development \/ Build<\/h3>\n\n<p>JavaScript source code for block assets is included in this plugin package:\n    blocks\/video\/src\/<\/p>\n\n<p>Compiled production assets used at runtime are located in:\n    blocks\/video\/build\/<\/p>\n\n<p>Build commands:\n1. <code>npm install<\/code>\n2. <code>npm run build<\/code><\/p>\n\n<p>Public source repositories:\n- WordPress.org plugin SVN: https:\/\/plugins.trac.wordpress.org\/browser\/rus-video-embeds\/\n- GitHub mirror: https:\/\/github.com\/wplovers-ru\/rus-video-embeds<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>rus-video-embeds<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the \"Plugins\" menu in WordPress<\/li>\n<li>Configure the plugin under \"Settings\" \u2192 \"RUS Video Embeds\"<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20video%20platforms%20are%20supported%3F\"><h3>Which video platforms are supported?<\/h3><\/dt>\n<dd><p>VK Video, Rutube, and Dzen. You can add your own via the <code>rus_video_embeds_register_providers<\/code> filter.<\/p><\/dd>\n<dt id=\"do%20private%20videos%20work%3F\"><h3>Do private videos work?<\/h3><\/dt>\n<dd><p>Embedding only works for public videos. Private VK videos may not display.<\/p><\/dd>\n<dt id=\"why%20doesn%27t%20my%20dzen%20video%20link%20work%3F\"><h3>Why doesn't my Dzen video link work?<\/h3><\/dt>\n<dd><p>Dzen uses different links for viewing and embedding. A regular link like <code>dzen.ru\/video\/watch\/...<\/code> won't work for embeds. You need a special embed link in the format <code>dzen.ru\/embed\/...<\/code>. To get it, click \"Share\" \u2192 \"Embed\" under the video and copy the link from the iframe code. <a href=\"https:\/\/wplovers.ru\/dzen-wordpress\/?utm_source=wordpress.org&amp;utm_content=dzen_embed\">Detailed instructions<\/a><\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Added clear \"External services\" disclosure with data flow and Terms\/Privacy links for VK, OK CDN, Rutube CDN, and Dzen CDN<\/li>\n<li>Documented JS source\/build workflow in readme for WordPress.org human-readable code compliance<\/li>\n<li>Standardized plugin-specific runtime prefixes to canonical <code>wplrve<\/code> and removed short <code>rve<\/code> identifiers<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Renamed plugin title to \"RUS Video Embeds for VK Video, Rutube and Dzen\" for WordPress.org moderation compliance<\/li>\n<li>Migrated plugin-specific short prefix identifiers from <code>rve<\/code> to <code>wplrve<\/code> in Settings API keys and block editor localized object<\/li>\n<li>Replaced inline embed JS with enqueued script and fixed Gutenberg preview scrollbar behavior<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>FluentCommunity: stable refresh of VK thumbnails when editing older posts<\/li>\n<li>FluentCommunity: media_preview now refreshes when image is missing or stale<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fixed global constant prefixes for WordPress.org Plugin Check compliance<\/li>\n<li>Added core <code>pre_oembed_result<\/code> integration for better compatibility with third-party oEmbed pipelines (e.g., FluentCommunity)<\/li>\n<li>Added ABSPATH guards, LICENSE, uninstall.php<\/li>\n<li>Translated all strings to English for WordPress.org; Russian available via translate.wordpress.org<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Dzen: informative notice with instructions when a watch-URL is pasted instead of a broken iframe<\/li>\n<li>Dzen: full embed-URL support (<code>dzen.ru\/embed\/*<\/code>) across all contexts<\/li>\n<li>Dzen: iframe code parsing in Gutenberg block \u2014 automatic embed-URL extraction<\/li>\n<li>Fixed scrollbars in Gutenberg and Classic Editor \u2014 inline styles for self-contained rendering<\/li>\n<li>Added editor CSS for correct preview rendering in editors<\/li>\n<li>Default vertical margin setting (Gutenberg spacing presets) in plugin settings<\/li>\n<li><code>spacing.margin<\/code> support in Gutenberg block with auto-applied default value<\/li>\n<li>Updated plugin name and settings menu<\/li>\n<li>Updated readme.txt with Dzen instructions and full changelog<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>VK Video, Rutube, Dzen support<\/li>\n<li>oEmbed, shortcodes, Gutenberg block<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Settings page<\/li>\n<li>Responsive iframe<\/li>\n<\/ul>","raw_excerpt":"Embed videos from VK Video, Rutube, and Dzen \u2014 oEmbed, shortcodes, and a Gutenberg block.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/302197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=302197"}],"author":[{"embeddable":true,"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/donatory"}],"wp:attachment":[{"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=302197"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=302197"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=302197"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=302197"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=302197"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=302197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}