最近遇到一个比较奇特的要求,也是我一直在考虑的问题,就是获取视频网站的视频缩略图。这样,可以很方便对带视频的界面进行美化。
常常看到优酷等网站本身或者给其他网站定制的内容中出现视频缩略图,但是一番搜索之后发现优酷本身好像没有开放类似的接口给普通用户。所以这个问题就被搁置下来了。最近有客户需要大量使用视频,而且是第三方的视频网站,并且在页面中也要应用视频截图。所以一番摸索之后发现有个好东西:视频抓取工具。
原作者页面:视频抓取工具
实际使用效果
使用方法
require_once “VideoUrlParser.class.php”; $url = “http://v.youku.com/v_show/id_XMjkwMzc0Njg4.html”; $info = VedioUrlParser::parse($url);
之后,只需要在合适的地方输出$info就可以了。
应用示例
由于不能根据直接输入的frame视频框架来获取截图,因此必须显式地提供视频播放地址。这里我提供一个思路:
为需要的文章类型添加一个meta box(把以下代码扔functions.php里 2013/5/5 修正自定义box不能保存的问题)
ID, 'videourl', true ); ?> 视频输入播放地址:
_說明:输入视频播放地址,用于显示视频的缩略图。不需要请留空。_
add_action('wp_insert_post', 'insert_post_fn', 10, 2);
function insert_post_fn($post_id, $post = null) { $meta_post_fields = array("videourl"); $goloop = false;
if ($post->post\_type == "post")
{
$mfs = $meta\_post\_fields;
$goloop = true;
}
if ($goloop)
{
foreach ($mfs as $key)
{
$value = @$\_POST\[$key\];
if (empty($value))
{
delete\_post\_meta($post\_id, $key);
continue;
}
if (!is\_array($value))
{
if (!update\_post\_meta($post\_id, $key, $value))
{
add\_post\_meta($post\_id, $key, $value);
}
}
else
{
delete\_post\_meta($post\_id, $key);
foreach ($value as $entry)
{
add\_post\_meta($post\_id, $key, $entry);
}
}
}
}
}
接着,就可以在后台看到这样的meta box
输入你想用的视频缩略图,然后在前台显示即可(我是写在了文章的主循环内)
";
}?>
info含有的几个值,分别是img(用于视频缩略图),title(视频标题),url(地址),swf(视频swf播放地址)。我只用到了img和swf地址。具体的可以根据自己的需要进行调整。
感谢原作者。