WP YouTube Live Wordpress Plugin - Rating, Reviews, Demo & Download

WP YouTube Live Preview Wordpress Plugin - Rating, Reviews, Demo & Download
No ratings yet
Free
Follow for free plugins, new theme releases and theme news

Plugin Description

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 = '<p>Please check back later or subscribe to <a target="_blank" href="https://youtube.com/channel/UCH…">our YouTube channel</a>.</p>
    <p><button type="button" class="button" id="check-again">Check again</button><span class="spinner" style="display:none;"></span></p>';
    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.

Screenshots

  1. Settings screen

    Settings screen


Reviews & Comments