抓取优酷土豆新浪等网站视频缩略图

By
WP札记

最近遇到一个比较奇特的要求,也是我一直在考虑的问题,就是获取视频网站的视频缩略图。这样,可以很方便对带视频的界面进行美化。

常常看到优酷等网站本身或者给其他网站定制的内容中出现视频缩略图,但是一番搜索之后发现优酷本身好像没有开放类似的接口给普通用户。所以这个问题就被搁置下来了。最近有客户需要大量使用视频,而且是第三方的视频网站,并且在页面中也要应用视频截图。所以一番摸索之后发现有个好东西:视频抓取工具。

原作者页面视频抓取工具

演示地址

实际使用效果

VideoUrlParser

使用方法

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
VideoUrl

输入你想用的视频缩略图,然后在前台显示即可(我是写在了文章的主循环内)

";
}?>

info含有的几个值,分别是img(用于视频缩略图),title(视频标题),url(地址),swf(视频swf播放地址)。我只用到了img和swf地址。具体的可以根据自己的需要进行调整。

感谢原作者。

您已经发表过意见了!

Comments: 21

  1. 这个不错,收藏了。以前经常为抓图苦恼! :razz: :razz:

    2012年11月29日
  2. 感谢分享,改进。你好请问这个代码 是不是不全啊我怎么没看明白呢。可以教一下我吗

    2012年11月29日
  3. 嘿嘿,最好再缓存下来,不然以后会比较杯具。

    2012年12月02日
  4. 呃。上面
    function videourl_fn()
    {
    global $post;
    $video_url = get_post_meta( $post->ID, ‘videourl’, true );这里差个
    }

    2012年12月02日
  5. 这个我研究过一点时间, youku应该问题不大, 土豆有很多地址不支持, 应该是正则没写好

    2012年12月04日
  6. 这个厉害,收藏学习

    2012年12月06日
  7. 嗯。很有用

    2012年12月06日
  8. 优酷连这个API也不提供?擦~

    2012年12月07日
  9. 真不错~! 果断收藏啊 正好用的上 谢谢博主了!!!! :smile:

    2012年12月09日
  10. 不错用一下

    2012年12月10日
  11. 这个功能很实用,收藏下来了。

    2012年12月11日
  12. 这个不错,视频网站有需要用到。

    2012年12月13日
  13. 好牛B

    2012年12月13日
  14. 能不能做成插件啊,不会怎么用啊

    2012年12月13日
  15. 有意思的东东

    2012年12月13日
    • @Leniy 好东西要分享嘛

      @venmax 2012年12月13日
    • @axiu 怎么不想着做成插件?多方便

      2012年12月13日
    • @Leniy 我会告诉你我没写过插件没经验吗,哈哈

      @venmax 2012年12月13日
    • @axiu 这个不难吧。你看,一下午就可以了:http://blog.leniy.info/clear-statpress.html

      2012年12月14日
    • @Leniy 主要是不想去折腾……

      @venmax 2012年12月14日

发表评论

您的电子邮箱地址不会被公开。

*

:razz: