youtube點擊計數


紀錄一下如何使用youtube api來計算嵌入影片被點擊的次數,這個API也可以用來控制嵌入影片的撥放、暫停等等,這裡就是利用影片的播放狀態來進行撥放的判斷。

youtube api網址
https://developers.google.com/youtube/iframe_api_reference?hl=zh-TW

下面為簡易範例,範例中$k為序號、vid為youtube的影片網址的v值、cid內則是自己判斷用的id。
首先是html的部分,這裡使用PHP的迴圈產生html。

<?php foreach($video_list as $k => $v){ ?>
<div id="tychange_<?=$k?>" vid="<?=$v['v']?>" cid="<?=$v['id']?>" ></div>
<?php } ?>

接著利用api判斷撥放狀態,在狀態有變化時利用jquery來進行狀態回傳。

//基本載入函數
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
//在youtube讀取完畢後執行
function onYouTubeIframeAPIReady() {
	$('.tychange').each(function(ind){
		_vid = $(this).attr('vid');
		new YT.Player('tychange_'+ind, {
			videoId: _vid
			,events: {
				'onStateChange': onPlayerStateChange
			}
		});
	});
}
//狀態變化時會被呼叫的函數
function onPlayerStateChange(event){
	if(event.data==1){//判斷狀態進行回傳
		cid = $('#'+event.target.h.id).attr('cid');
		$.ajax({
		    type: "POST",
		    url: "回傳用的網址",
		    data: {
		    	cid : cid
			},
			dataType: "html",
		    success: function(data){
		    }
   		});
	}
}

接著在後端靠著傳來的id進行額外的處理即可。

Tags : javascript youtube api