Embed YouTube Block – Fast Loading Videos, Shorts & Playlists
The default embed block for YouTube videos sucks. It slows down your site. The more videos on the page the more it slow. This single-block plugin fixes that. Why this block is better than the default one: Instead of loading the entire iframe, only the video thumbnail is loaded, resulting in significant performance improvements Ability to play multiple different videos as a custom playlist or input a playlist ID to play the whole playlist Ability to use a custom image as the video thumbnail Ability to set a custom aspect ratio value for displaying any kind of YouTube videos Ability to loop continuously once it finishes playing Ability to show related videos from the same channel as the initial video Automatically load the video title as the caption The same UI as the default core/embed, and you can use the video title as the caption of the block with one click It can be transformed from/to the core embed block. Automatically convert all default core embed YouTube blocks to this block with one line of code. This plugin also provides a PHP API for developers to render a YouTube video URL as this block; or to automatically transform core/embed YouTube videos into this block. The simplest example is: better_youtube_embed_block_render_block( ['url' => 'https://youtu.be/paSXmpHU9K4'] ); The example with all the parameters is: better_youtube_embed_block_render_block( [ 'url' => 'https://youtu.be/paSXmpHU9K4', 'aspectRatio' => '16/9', 'isMaxResThumbnail' => false, 'thumbnailFormat' => 'jpg', 'caption' => 'My awesome video', 'caption_kses' => false, 'customThumbnail' => 'https://example.com/bg.jpg', 'settings' => ['loop' => 1, 'rel' => 0], 'echo' => false, ] ); To automatically transform all core/embed YouTube videos on your site to this block, you need to put the following code to the wp-config.php file or your theme/plugin: define('BYEB_SPEED_UP_YOUTUBE_VIDEOS', true); or add_filter( 'byeb_speed_up_youtube_videos', '__return_true' ); On iOS, browsers like Safari and Chrome require two clicks to play videos. If you want to allow users to play videos with a single click, you need to add the following code to the wp-config.php file or your theme/plugin: define('BYEB_FORCE_IFRAME_ON_UNSUPPORTED_BROWSERS', true); Please check out this page to see how fast it helps. The page contains around 30 embedded YouTube videos but they don’t slow down the page. If this plugin is useful for you, please do a quick review and rate it on WordPress.org to help us spread the word. I would very much appreciate it. Please check out my other plugins if you’re interested: Content Blocks Builder – Build custom layouts and blocks visually in the Block Editor without needing a code editor, using only core blocks and native Gutenberg features. Meta Field Block – A single block to display custom fields in the Block Editor without coding. It supports ACF, MetaBox, WooCommerce, meta, rest field, shortcode and more. Works everywhere: in the Site Editor (FSE), the Block Editor, inside Query Loop, WooCommerce Product Collection, Term Query blocks, and even in template files. SVG Block – A block to display SVG images as blocks. Useful for images, icons, dividers, and buttons. It allows you to upload SVG images and load them into the icon library. Icon separator – A tiny block just like the core/separator block but with the ability to add an icon. Breadcrumb Block – A simple breadcrumb trail block that supports JSON-LD structured data and is compatible with WooCommerce. Block Enhancements – Adds practical features to blocks like icons, box shadows, transforms, etc. Counting Number Block – A block to display numbers with a counting effect The plugin is developed using @wordpress/create-block.
Top keywords
- block26×4.28%
- youtube11×1.81%
- videos10×1.64%
- embed8×1.32%
- blocks7×1.15%
- core7×1.15%
- ability6×0.99%
- video6×0.99%
- core embed5×0.82%
- custom5×0.82%
- editor5×0.82%
- youtube videos5×0.82%
WP YouTube Live
Displays the current YouTube live video from a specified channel via the shortcode [youtube_live]. Setup Notes Your YouTube livestream must be set to “Public” or it will not work. This is a security feature of YouTube’s API and unfortunately there’s no way to work around it. In addition, your live stream must be set to allow embedding on third-party sites. If that feature is unavailable, you may need to enable monetization for your account. See YouTube documentation for more information or help with allowing embedding. How It Works If no live video is available, you can display a specified video or a “channel player” showing all your recent videos. You can also enable auto-refresh to automatically check for a live video every 30 seconds (warning: will increase server load, so use with caution). By default, the server will check YouTube’s API and then cache that response for 15 minutes before checking the API again (you may change this value in the admin settings). If auto-refresh is enabled, clients will check against your server every 30 seconds and likely will hit that cache as well, so it can potentially take up to 16 minutes before a client will get a live video. The length of both caches can be changed using the wp_youtube_live_transient_timeout filter (see below for more information). If no live video is available when a page is loaded, several fallback options are available: “Show a custom HTML message” allows you to specify a custom message to show “Show scheduled live videos” will show a player and countdown until your next live video “Show last completed live video” will show your most recently-completed live video “Show recent videos from my channel” will show a playlist of recent videos from your channel “Show a specified playlist” will show a specified playlist “Show a specified video” will show a specified video “Show nothing at all” will show nothing at all When a video ends, users’ browsers will check your server again to see if a live video is available. If so, it will load that; if not, it will fall back as set in your options. Shortcode Options width: player width in pixels; defaults to what you set on the settings page height: player height in pixels; defaults to what you set on the settings page autoplay: whether or not to start playing immediately on load; defaults to false auto_refresh: (either true or false) overrides the auto-refresh setting on the settings page fallback_behavior: choose from the following: upcoming, completed, channel, playlist, video, message, no_message upcoming: the next upcoming scheduled video on the specified channel playlist: a specified playlist (shortcode must also include the fallback_playlist attribute) video: a specified video (shortcode must also include the fallback_video attribute) message: a specified message no_message: nothing at all fallback_playlist: a playlist URL to show when there are no live videos fallback_video: a video URL to show when there are no live videos fallback_message: a message to show when there are no live videos js_only: (either true or false) workaround for some caching issues; if a caching plugin (W3 Total Cache, WP Super Cache, etc.) or proxy (CloudFlare, etc.) caches the HTML while a video is live, visitors may continue to see an old live video even if it has ended. If set js_only is set to true, the server never displays the player code in the initial request and instead sends it in response to uncached ajax requests. This may also result in the video player being slightly delayed on page load due to the extra request, depending on the clients’ bandwidth and latency. Example shortcode: [youtube_live width="720" height="360" autoplay="true"] Filters The filter wp_youtube_live_no_stream_available will customize the message viewers see if there is no live stream currently playing, and takes effect after the fallback_message shortcode attribute is parsed (if fallback_message="no_message" is set in a shortcode, it will override the filter). For example, add this to your theme’s functions.php file: add_filter( 'wp_youtube_live_no_stream_available', 'my_ytl_custom_message' ); function my_ytl_custom_message( $message ) { $message = ' Please check back later or subscribe to our YouTube channel . Check again '; return $message; } The filter wp_youtube_live_transient_timeout is available to customize the cache timeout length in seconds. For example, add this to your theme’s functions.php file to set the cache length to 15 seconds instead of the default 900: add_filter( 'wp_youtube_live_transient_timeout', 'my_ytl_custom_timeout' ); function my_ytl_custom_timeout( $timeout ) { return 15; } Event Listener When a live stream is loaded, the wpYouTubeLiveStarted event is fired; you can use this to create custom front-end features on your site by adding an event listener: window.addEventListener('wpYouTubeLiveStarted', function() { /* your code here */ console.log('stream started'); /* your code here */ }); Development of this plugin is done on GitHub. Pull requests are always welcome.