WordPress maintenance or security needs? Reach out!
TLDWP

Plugin: wp-youtube-live (Used by 18 domains)

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.

'; 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.

DomainExposuresHeadersLast Checked
a*l*a*h.com (WP 7.1) F Aug 30, 2026
w*r*d*e*t*t*.com (WP 7.1) F Aug 29, 2026
r*d*o*o*i*s*n.it (WP 7.1) F Aug 24, 2026
r*d*c*c.org (WP 6.8.8) C Aug 23, 2026
c*n*u*e*a*t*o*n*w*.com (WP 7.1) F Aug 22, 2026
g*-*o*r*h*i*e*.nl (WP 7.1) C Aug 22, 2026
j*m*s*v*.org (WP 7.0.4) F Aug 21, 2026
s*p*r*s*a*n*b*l*.com F Aug 20, 2026
p*r*l*b*e.org (WP 7.0.4) F Aug 18, 2026
s*v*r*s*u*i*s.com F Aug 17, 2026
g*a*t*d.faith F Aug 17, 2026
j*n*u*r*y.com (WP 6.9.1) F Aug 15, 2026
p*s*o*j*s*t*o*p*o*.com F Aug 15, 2026
g*s*.org (WP 7.0.2) F Aug 3, 2026
f*b*t*a*s*h*o*.pl (WP 5.8.13) F Jul 24, 2026
m*s*h*o*.com (WP 5.4.19) F Jul 21, 2026
o*a*l*s*n*l*v*.com (WP 7.0.2) F Jul 20, 2026
b*b*y*i*e*s.com (WP 6.8) F Jul 14, 2026

Top 50 Plugins

Plugin Count
elementor 1,743,156
contact-form-7 1,731,455
elementor-pro 1,037,773
woocommerce 805,132
revslider 596,307
jetpack 447,863
js_composer 411,263
wp-rocket 331,515
essential-addons-for-elementor-lite 259,779
gravityforms 254,014
complianz-gdpr 253,282
google-site-kit 242,752
cookie-law-info 224,733
instagram-feed 221,255
sitepress-multilingual-cms 207,463
header-footer-elementor 202,300
google-analytics-for-wordpress 200,947
bluehost-wordpress-plugin 190,159
elementskit-lite 175,765
gutenberg 168,999
litespeed-cache 145,680
cookie-notice 145,651
gutenberg-core 143,513
gtranslate 121,755
the-events-calendar 121,165
wpforms-lite 119,878
astra-sites 109,898
popup-maker 107,612
woocommerce-payments 107,392
tablepress 101,679
honeypot 96,973
coblocks 96,677
astra-addon 91,999
duracelltomi-google-tag-manager 89,077
wp-smushit 88,944
layerslider 87,070
all-in-one-seo-pack 87,047
bb-plugin 85,130
akismet 83,509
ml-slider 82,351
premium-addons-for-elementor 81,712
cleantalk-spam-protect 80,832
mailchimp-for-wp 79,580
megamenu 79,131
ewww-image-optimizer 77,141
jet-engine 76,936
wp-pagenavi 76,809
fusion-builder 75,758
smart-slider-3 74,740
gravityformsrecaptcha 73,047

Top 50 Themes

Theme Count
hello-elementor 613,366
Divi 486,851
astra 406,190
flatsome 144,601
Avada 119,146
generatepress 112,937
pub 99,469
oceanwp 78,767
kadence 77,979
enfold 67,331
salient 63,893
twentyseventeen 53,428
twentytwentyfour 52,485
bb-theme 51,994
betheme 51,843
cocoon-master 50,294
blocksy 50,233
h4 49,952
twentytwentyfive 45,621
woodmart 44,803
dt-the7 44,758
neve 37,312
Avada-Child-Theme 36,550
gox 36,063
lightning 30,761
bridge 30,519
twentytwentyone 29,664
swell 29,254
twentytwenty 28,251
bricks 26,750
Impreza 25,686
Newspaper 23,797
twentytwentythree 21,617
epik-redesign 18,905
twentytwentytwo 18,396
uncode 18,101
twentysixteen 17,431
pro 17,387
storefront 15,937
sydney 15,854
Total 14,163
factory-templates-4 13,834
hello-theme-child-master 13,776
themify-ultra 12,800
hestia 12,376
yootheme 12,335
yith-wonder 11,798
porto 11,692
jupiter 11,680
extendable 11,634