Можно ли получить доступ к аудиоданным из ‹iframe›, например видео на YouTube или встроенному музыкальному проигрывателю, с помощью JavaScript?

Я встраиваю различные проигрыватели на свою веб-страницу (YouTube, Spotify, Bandcamp и т. д.) и хотел бы изменить состояние моей веб-страницы на основе встроенного звука. Как можно получить доступ к этим данным?

ОБНОВЛЕНИЕ: Из комментария evolutionxbox я изучил элемент одного из встроенных проигрывателей Bandcamp и нашел следующее:

    <script type="text/javascript">
        var playerdata = {"tracks":[{"title":"Virga I","encodings_id":1606233426,"file":{"mp3-128":"https://t4.bcbits.com/stream/.....
        var parentpage = "http://localhost:8080/"; // page we are embedded in
        var params = {"tracklist":"false","fgcol":null,"url_referrer":false...

        $(function() {
            HTMLEmbeddedPlayer3.init(playerdata, parentpage, params);
        });
    </script>

Это круто, потому что я могу программно увидеть переменную playerdata этого iframe и получить доступ к аудио, когда пользователь нажимает кнопку воспроизведения? Я попробую.

Bandcamp встраивает скриншот

ДОПОЛНИТЕЛЬНЫЙ:

Я также нашел эту полезную ветку: audio-ap">Можно ли визуализировать звук YouTube из iframe с помощью веб-аудио API?

Однако это решает только YouTube. Другие сервисы (и я в основном смотрю здесь на Bandcamp) не имеют API для потоковой передачи звука, поэтому он должен быть из самого iframe.

Поскольку на сайте воспроизводится звук, кажется, что должен быть какой-то способ перехвата между медиаслужбой и пользователем, но сейчас я его не вижу.


person recholsknauber    schedule 22.10.2020    source источник
comment
Возможно, если разные сайты предоставляют API для таких вещей. Иногда это делают более популярные сайты.   -  person CertainPerformance    schedule 23.10.2020
comment
Я так понимаю домены должны быть одинаковыми?   -  person evolutionxbox    schedule 23.10.2020
comment
А также stackoverflow.com/questions/1600488/   -  person evolutionxbox    schedule 23.10.2020
comment
Спасибо @evolutionxbox! Это привело меня в правильном направлении, и я обновил пост. Нашел функцию при проверке встроенного элемента, которую я могу вызвать.   -  person recholsknauber    schedule 23.10.2020


Ответы (1)


Нет, это невозможно по соображениям безопасности.

Контент другого происхождения будет недоступен.

person Brad    schedule 22.10.2020