2011 年 3 月 22 日編集: Youtube が HTTPS アクセスを提供するようになったため、この質問はもはや重要ではありません: http://apiblog.youtube.com/2011/02/https-support-for-youtube-embeds.html
私たちのアプリケーションは HTTPS で実行されているため、ほとんど問題は発生しません。ただし、YouTube に関して言えば、SSL 接続を介してコンテンツを表示しないという事実は、クリップを埋め込もうとするときに頭痛の種になります。ほとんどの場合、Internet Explorer の有名な小さな警告メッセージが原因です。
「安全に配信されたウェブページのコンテンツのみを表示しますか? このページには、安全な HTTPS を使用して配信されないコンテンツが含まれています ... など」
これをいくつかの方法で解決しようとしました。最も有望なのは、Apache の ProxyPass 機能を使用して YouTube にマッピングすることでした。
このような:
ProxyPass: /youtube/ http://www.youtube.com
ProxyPassReverse: /youtube/ http://www.youtube.com
これにより、迷惑な警告がなくなります。ただし、YouTube SWF はストリーミングを開始できません。SWF は、ブラウザにロードできますが、単に「エラーが発生しました。後でもう一度試してください」と表示されます。
潜在的な解決策はおそらく次のとおりです。
- youtube FLV:s をダウンロードして、独自のドメインから配信する (gah)
- カスタム FLV プレーヤーを使用し、https プロキシ経由で YouTube から FLV:s のみをストリーミングしますか?
3 月 10 日更新: Google の Youtube API for ActionScriptを使用してプレーヤーをロードしようとしました。最初は有望に見えたので、https:// プロキシを介してプレーヤーをロードすることができました。ただし、ロードされる SWF には、FLV ストリームの認証リンクを作成し、さまざまなクロスドメイン ポリシーをロードするために、さまざまな非 SSL URL への明示的な呼び出しが多数含まれています。
flv-streams に直接アクセスすることは想定されていないようです。これにより、YouTube から FLV: をリッピングして独自のドメインから提供する以外に、Internet Explorer の警告を回避することが非常に困難になります。
YouTube の FLV:s をダウンロードするためのソリューションがあります。しかし、それは Youtube の利用規約に準拠しておらず、実際には私たちの選択肢ではありません。