
內容簡介
此 WordPress 外掛可透過簡碼 [youtube_live] 顯示特定頻道目前的YouTube 直播影片。
設置注意事項
您的YouTube 直播必須設置為「公開」,否則它將無法運作。這是YouTube API 的安全功能,不幸的是,沒有任何解決方法。
此外,您的直播流必須設置為允許在第三方網站嵌入。如果此功能不可用,您可能需要為您的帳戶啟用盈利。請參閱YouTube 文檔以獲得更多信息或幫助允許嵌入。
它的運作方式
如果沒有可用的直播視頻,您可以顯示指定的視頻或「頻道播放器」來顯示您最近的所有視頻。
您也可以啟用自動刷新,每30秒自動檢查是否有直播視頻(警告:這將增加服務器負載,因此請謹慎使用)。
默認情況下,服務器將檢查YouTube 的API,然後將其快取30秒,然後再次檢查API。如果啟用了自動刷新,客戶端將每30秒檢查一次您的服務器,並可能也會遇到該快取,因此客戶端可能需要60秒才能獲得一個直播視頻。
兩個緩存的長度可以使用wp_youtube_live_transient_timeout篩濾器更改(有關更多信息,請參閱下面)。
如果在加載頁面時找不到直播視頻,將提供幾個回退選項:
「顯示自定義HTML訊息」允許您指定要顯示的自定義訊息
「顯示預定直播視頻」將顯示一個播放器和倒數計時器,直到您的下一個直播視頻
「顯示上次完成的直播視頻」將顯示您最近完成的直播視頻
「顯示我的頻道最近的視頻」將顯示一個播放列表,其中包含您頻道的最近視頻
「顯示指定的播放列表」將顯示指定的播放列表
「顯示指定的視頻」將顯示指定的視頻
「完全不顯示任何東西」將不顯示任何東西
當影片結束時,使用者的瀏覽器會再次檢查您的服務器,以查看是否有可用的直播影片。 如果有,它會載入該影片;否則,它會按照您的選項回退。
簡碼選項
width:播放器的像素寬度,預設為您在設置頁面上設置的值
height:播放器的像素高度,預設為您在設置頁面上設置的值
autoplay:是否立即播放,預設為 false
auto_refresh:(任一true或false)覆蓋設置頁面上的自動刷新設置
fallback_behavior:從以下選擇: upcoming , completed , channel, playlist, video , message, no_message
upcoming:指定頻道中的下一個預定視頻
playlist:指定的播放列表(簡碼還必須包含fallback_playlist 屬性)
video:指定的視頻(簡碼也必須包含fallback_video 屬性)
message:指定的訊息
no_message:完全不顯示
fallback_playlist:在沒有直播影片時顯示的播放列表網址
fallback_video:在沒有直播影片時顯示的視頻網址
fallback_message:在沒有直播影片時顯示的訊息
js_on
外掛標籤
開發者團隊
📦 歷史版本下載
原文外掛簡介
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.
