Generally, it can take up to 15 minutes for the streaming page with the shortcode to recognize that you have a live stream, for several reasons: YouTube’s API caches information about your videos for a short time (seems to be 2 minutes max). To help you from exceeding the free API quota, this plugin caches YouTube’s API response for 15 minutes (configurable using the transient timeout setting), instead of checking the API every time an update is requested by a client. See Quota Units below for more information. If you are using a caching plugin (WP Super Cache, W3 Total Cache, etc.), the generated page content is cached on your server, including whatever shortcode content is available when the cache is created. However, this plugin provides a workaround by sending an Ajax request from the user’s browser when the page is loaded, and then every 30 seconds thereafter until a live video is available (also configurable using the wp_youtube_live_transient_timeout filter). In short, there’s a tradeoff between showing the live video immediately and minimizing API quota and server resource usage, and I’ve tried to strike a reasonable balance, while allowing you the ability to tweak the cache timeouts yourself to fit your needs. Quota Units The YouTube Data API used by this plugin enforces a daily quota limit. Each request to find live videos costs 100 quota units, and the current daily cap (as of April 14, 2020) is 10,000 daily quota units. Every time this plugin checks for live videos, it costs 100 quota units. The API responses are cached for 15 minutes (by default) on your server to help stay within the daily quota limit. End users’ browsers will request an update from your site every 30 seconds. The admin settings panel has a field to configure how often to check the YouTube Data API for live videos. A value of 900 seconds (15 minutes) should stay pretty close to the default daily quota. If you have low traffic during “off hours” (when you’re not likely to be broadcasting a live event), you may be able to experiment and set this lower, since the quota won’t be consumed as much during the off hours. Fallback behavior: “Show a custom HTML message” costs no additional quota units “Show scheduled live videos” fallback behavior costs an additional 100 quota units per API call plus 3 quota units for each scheduled video you have (until the next-scheduled video starts [plus a 15-minute “grace period” to give some leeway for your actual start time], or for 5 minutes if there are no videos scheduled) “Show last completed live video” fallback behavior costs an additional 100 quota units per API call “Show recent videos from my channel” fallback behavior costs 1 quota unit for the call + 2 quota units for each video listed “Show a specified playlist” fallback behavior costs 1 quota unit for the call + 2 quota units for each video in the playlist “Show a specified video” costs no additional quota units “Show nothing at all” costs no additional quota units Estimated quota usage: If the transient timeout is set to 900 seconds and the page containing the shortcode is open in a browser 24/7, it should cost 9,600 quota units per day, regardless of how many visitors (due to the plugin’s caching mechanism). If fallback behavior is set to “scheduled live videos” or “last completed live video,” it should cost an additional 100 quota units when the next-scheduled video begins (or every 5 minutes if no videos are scheduled). If fallback behavior is set to “specified playlist,” it should cost an additional 1 quota unit per page load plus 2 quota units per video in the playlist. If fallback behavior is set to “specified playlist” or “specified video,” it should cost an additional 3 quota unit per page load. These are estimates; your usage may vary. To see your actual quota usage in real time, visit the API Usage page. The YouTube quota limit has been tightened down in recent years: as of April 14, 2020, it allows a max of 10 thousand quota units per day. However, you can request a quota increase here. If your API project has been active for more than 2 years or so, you may have a drastically higher quota limit and can set the transient lower. I am looking at other ways to accomplish the necessary behavior closer to realtime while remaining within the quota limits. Terms of Service and Privacy Policy This plugin stores your channel ID and API token in your WordPress options table, but does not store or collect any other information. Because this plugin helps you use the YouTube service, you should refer to these documents as well: YouTube Terms of Service Google Privacy Policy