2017-11-06 2 views
0

iFrame APIを使用してYouTubeで動画が削除されたかどうかを検出できますか?iFrame APIを使用してYouTubeの動画が削除されたかどうかを検出するには

次のコードは、YouTubeのiframeへの変更を検出しますが、リモートで閉じることができる唯一のデータポイントは-3です。これは起動していないことを意味しますが、これはすべての動画にも適用できます。

CodePen

<iframe id="yt-iframe" width="630" height="354" src="http://www.youtube.com/embed/Rlm8YH2i9gY?enablejsapi=1" frameborder="0" allowfullscreen=""></iframe> 

<script type="text/javascript"> 

    var tag = document.createElement('script'); 
    tag.id = 'yt-script'; 
    tag.src = 'https://www.youtube.com/iframe_api'; 
    var firstScriptTag = document.getElementsByTagName('script')[0]; 
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

    console.log('yt scripts loaded'); 
    var player; 
    function onYouTubeIframeAPIReady() { 
     player = new YT.Player('yt-iframe', { 
      events: { 
       'onReady': onPlayerReady, 
       'onStateChange': onPlayerStateChange 
      } 
     }); 
    } 

    function onPlayerReady(event) { 
     console.log('video player ready'); 
    } 

    function onPlayerStateChange(event) { 
    console.log(event.data); 

    } 
</script> 

答えて

1

セットアップevent.data === 100ためonErrorイベントハンドラとチェック。 YouTube IFrame Player APIには、すべてのプレーヤーエラーイベントが記述されています。ビデオの期間が0秒である場合は、ビデオの長さをチェックすることで、ビデオを再生する前に検出することができ

+0

イベントリスナーを 'onError'に追加することができましたが、これはユーザーがビデオでPlayを押したときにのみトリガーされます...プレーヤーの負荷でこれを検出できる方法はありますか? – Imran

+0

そうは思いません。プレーヤーをクリックすると、YouTubeに動画情報を取得するリクエストが送信されます。その後、プレーヤーはビデオが削除されたことを知り、アプリケーションに知らせます。 iframeを表示する前にこれを知る唯一の方法は、公式YouTube APIを直接使用することです。 – Blender

0

は、/削除される可能性が高いん

<iframe id="yt-iframe" width="630" height="354" src="http://www.youtube.com/embed/tPEE9ZwTmy0?enablejsapi=1" frameborder="0" allowfullscreen=""></iframe> 

<script type="text/javascript"> 
    var tag = document.createElement('script'); 
    tag.id = 'yt-script'; 
    tag.src = 'https://www.youtube.com/iframe_api'; 
    var firstScriptTag = document.getElementsByTagName('script')[0]; 
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

    console.log('YT scripts loaded'); 
    var player; 
    function onYouTubeIframeAPIReady() { 
     player = new YT.Player('yt-iframe', { 
      events: { 
       'onReady': onPlayerReady, 
       'onStateChange': onPlayerStateChange 
      } 
     }); 
    } 

    function onPlayerReady(event) { 
     console.log('Video player ready'); 
     if (event.target.getDuration() <= 0) { 
      console.log('Video likely to be removed'); 
     } 
    } 

    function onPlayerStateChange(event) { 
     console.log(event.data); 
    } 
</script> 
0

を再生することはできません、 atleast簡単ではない。

関連する問題