我想知道你们是否曾经有过一个解决方案/功能,它允许使用后备解决方案嵌入YouTube视频,如果选择了YouTube视频,则只选择其他视频源 - 仅限视频! - 被封锁了。
我们的一位公司客户可以通过代理服务器访问网络,该服务器清除了YouTube上提供的Flash内容。更具体地说,来自ytimg.com的任何内容都被阻止。由于他们的网站对产品视频非常沉重,他们发现启动客户可以在他们自己的工作人员无法观看他们网站上的视频时很烦人。
有什么建议吗?
答案 0 :(得分:3)
您应该尝试向youTube中托管的内容发出Ajax请求,我会这样说:
function check_youtube() {
$.ajax({
type: 'GET',
dataType: 'json',
url: URL_ON_YOUTUBE,
timeout: 5000,
success: function(data, textStatus ){
alert('Woot, Cat videos on the way!');
},
error: function(xhr, textStatus, errorThrown){
alert('Ooops, You suck, proxy blocking your way');
}
});
}
答案 1 :(得分:2)
应该澄清的是,Youtube的Flash 播放器与它播放的FLV或MP4文件不同。虽然Flash播放器可能来自* .ytimg.com,但这些流本身来自“o-o.preferred.lga15s18.v2.lscache6.c.youtube.com”等主机。
如果您的客户阻止了前者,则您无法使用Youtube来获取视频。我的方法是从具有某种自动化功能的页面启动您的视频,以识别客户的IP地址范围并加载您自己的jwplayer或flowplayer或其他人的副本。
虽然您可以使用类似ajax调用的方式执行此浏览器端操作,但仍然存在过于保守的企业IT禁用javascript的风险。 (我已经看到它发生了。它并不漂亮。)在你的服务器上放置“智能”让你掌控,当然这意味着你需要提前知道限制是什么,这样你就可以调整它们
答案 2 :(得分:0)
在构建页面时,您可以测试与ytimg.com的有效连接,并更新您用于显示的iframe的来源......
<iframe src="<?php
//Use a dummy (but valid) ytimg.com url to check for ytimg availability...
$h = get_headers('http://s.ytimg.com/yt/swfbin/watch_as3-vflZzp2iQ.swf');
//If ytimg.com isn't available...
if (stristr($h[0], '200') == FALSE)
{ ?>
<!--Alt URL-->
<?php
//Otherwise, if ytimg.com is available...
} else { ?>
<!--YouTube URL-->
<?php } ?> "></iframe>
或者,你可以礼貌地建议你的客户不要那么顽固,并允许他们的员工偶尔在工作中休息。
编辑开个玩笑,我是个白痴。使用上面的camilo_u建议。