编辑 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 包含对不同非 ssl url 的显式调用负载,以便为 FLV 流创建身份验证链接并加载不同的跨域策略。
看起来我们真的不应该直接访问 flv-streams。这使得绕过 Internet Explorer 警告变得非常困难,除非从 youtube 中删除 FLV:s 并将它们从您自己的域中提供出来。
有下载 youtubes FLV:s 的解决方案。但这不符合 Youtube 使用条款,对我们来说确实不是一个选择。