2017-11-06 6 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

설정 onError 이벤트 핸들러를하고 event.data === 100 확인합니다. YouTube IFrame Player API에는 모든 플레이어 오류 이벤트가 설명되어 있습니다. 비디오의 지속 시간이 0초 경우

+0

'onError'에 이벤트 리스너를 추가 할 수 있지만 사용자가 비디오에서 재생을 누르면 트리거됩니다 ... 플레이어로드시에만이를 감지 할 수있는 방법이 있습니까? – 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

없음을 재생할 수 없습니다 삭제 될 가능성이 높다 적어도 간단하지 않습니다.

관련 문제