youtubeにこんな便利なAPIがあったとは。
iframe 組み込みの YouTube Player API リファレンス
https://developers.google.com/youtube/iframe_api_reference?hl=ja#Playback_status
下記のような機能(関数)を使いました。
動画の再生を開始してからの経過時間を秒数で返します。
player.getCurrentTime():Number
<!-- 1. The <iframe> (and video player) will replace this <div> tag. --> <div id="player"></div> <script> // 2. This code loads the IFrame Player API code asynchronously. var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); // 3. This function creates an <iframe> (and YouTube player) // after the API code downloads. var player; function onYouTubeIframeAPIReady() { player = new YT.Player('player', { height: '390', width: '640', videoId: '-PdPCGkaOyM', events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange } }); } // 4. The API will call this function when the video player is ready. function onPlayerReady(event) { event.target.pauseVideo(); } // 5. The API calls this function when the player's state changes. // The function indicates that when playing a video (state=1), // the player should play for six seconds and then stop. var done = false; function onPlayerStateChange(event) { setTimeout(showTime, 5000); function showTime() { if (!done) { if(5 < player.getCurrentTime()){ showGood(); done = true; }else{ setTimeout(showTime, 1000); } } } } function showGood() { $('#shareBox').fadeIn(500); } </script> <div id="shareBox"> <!--シェアボタンを入れておきましょう--> </div>