YouTube iframe API でさまざまな http/https および origin エラーが発生しますが、これは Safari のみの問題です (ほとんどのバージョンでバージョン 7.0.4 を使用していると思います)。
次のエラーが表示されます。
https://www.youtube.comにメッセージを投稿できません。受信者のオリジンはhttp://example.comです。
と:
オリジンが「 https://www.youtube.com 」のフレームが、オリジンが「 http://example.com 」のフレームにアクセスするのをブロックしました。アクセスを要求するフレームのプロトコルは「https」、アクセスされるフレームのプロトコルは「http」です。プロトコルが一致する必要があります。
その結果、動画は黒のままになり、動画内に再生アイコンが表示されることがあります。多くの場合、ビデオはかなりランダムに読み込まれます。ビデオ自体は自動的に再生されるため、クリックする必要はありません。他のすべてのブラウザーは正常に動作します。
Origin パラメータは、YTPlayer を作成するときに次のように設定されています。
playerVars: {
origin: 'http://example.com'
}
YouTube 自体は次のように読み込まれます。
var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
「 http://www.youtube.com/iframe_api」を指定してみました。同じエラーが発生します。私のドメインは https ではなく http です。これが問題の根本原因だと思います。YouTube のデフォルトが https になるのを止める方法がわかりません。