Как определить, когда закончится воспроизведение видео на YouTube?

Я работаю над сайтом с тоннами встроенных видео YouTube, клиент хочет показать всплывающее окно всякий раз, когда видео перестает расплываться.

Я посмотрел на youtube api и, кажется, есть способ обнаружить, когда заканчивается видео:

http://code.google.com/apis/youtube/js_api_reference.html

но я не могу вставлять видео, как они упомянули на этой странице, так как все видео уже находятся на сайте (тысячи, которые были добавлены вручную, вставив код для вставки).

Есть ли способ обнаружить окончание этих видео без изменения какого-либо из существующих видео (используя javascript)?

Ответ 1

Это можно сделать через API-интерфейс проигрывателя YouTube:

http://jsfiddle.net/7Gznb/

Рабочий пример:

    <div id="player"></div>

    <script src="http://www.youtube.com/player_api"></script>

    <script>

        // create youtube player
        var player;
        function onYouTubePlayerAPIReady() {
            player = new YT.Player('player', {
              width: '640',
              height: '390',
              videoId: '0Bmhjf0rKe8',
              events: {
                onReady: onPlayerReady,
                onStateChange: onPlayerStateChange
              }
            });
        }

        // autoplay video
        function onPlayerReady(event) {
            event.target.playVideo();
        }

        // when video ends
        function onPlayerStateChange(event) {        
            if(event.data === 0) {          
                alert('done');
            }
        }

    </script>

Ответ 2

Что вы можете сделать, это включить script на всех страницах, которые делают следующее... 1. Найдите youtube-iframe: найдите его по ширине и высоте по названию или, найдя www.youtube.com в своем источнике. Вы можете это сделать... - цикл через window.frames по циклу for-in, а затем отфильтровывать по свойствам

Надеюсь, что это поможет