互联网视频搜索一般解决方案
抓取常用视频网站的播放器和截图
By aligo at 115 天前, 834 次点击具体说就是通过一个url,解析出一个用于embed的播放器地址和一张或多张截图(最好是大小和视频大小相同的,尤其是图片好像国内的视频网站都没提供)
没时间不太想一个个去研究,所以求个整理好的对应关系列表或者库什么的
万分感谢
没时间不太想一个个去研究,所以求个整理好的对应关系列表或者库什么的
万分感谢
12 回复 | 直到 2012-06-20 14:52:18 PM
1
优酷 http://dev.youku.com/
土豆 http://dev.tudou.com/v5/ 酷6 http://dev.ku6.com/ 56 http://dev.56.com/ 搜狐视频 http://open.tv.sohu.com/index.jsp 腾讯视频、奇艺、音乐台的没有找到 |
2
1,播放器只能用视频网站自己的,这个不用抓,一行代码就可以了
2,抓截图,这个有点难,必须获取的flv的真实地址,因为网站都做了防盗链,但还是可以破解的,具体可以通过flash工具反编译他们的播放器,查看一下流程,有些网站就提供了这样的功能,你可以直接从这些网站获取,然后通过ffmpeg解码这些视频,保存几张截图 不用谢,咱很闲 |
3
@gaocheng 非常感谢,研究了一圈,汇报结果:
优酷通过api获取视频截图,要合作者id 土豆截图最大的也只有320x240 同时这两个东西哪里申请api调用权限? 酷6的话我太笨他提供的我不会用啊 56的话我没key也获取不了,而且文档的json范例和文档写的居然不一样,少了img项 搜狐一样也没有获取截图的方式 囧 另外youtube获取截图的方式 http://img.youtube.com/vi/视频id/0.jpg vimeo可以通过 http://vimeo.com/api/v2/video/视频id.json 获取到包括大张截图在内的很多信息 |
4
折腾了半天,看了各种各样的小道消息,终于首先搞定了youku:
正则:^(http:\/\/v.youku.com\/v_show\/id_(.*).html).*$ 1是干净的url 2是下面要用的id 然后抓取 'http://v.youku.com/player/getPlayList/VideoIDS/' + id + '/version/5/source/out' 可以获得一些详细信息 例如标题.data[0].title 一张截图.data[0].logo 还有一堆乱七八糟的东西 最后flash播放器地址是 'http://player.youku.com/player.php/sid/' + id + '/v.swf' |
5
不用他们api的话,除了youku, 其它都要用正则扫出他们的id,才能获取图片,用正则扫土豆比较恶心也比较麻烦
|
6
土豆的。。。各种格式啊。。。
|
7
@aligo 我半年前有开始做一个国内的oembed,https://github.com/oneplace/OEmbed-it
现在有些已经不能用了,不过还可以参考下 |
8
|
9
@aligo 这个研究完了把结果跟大家共享下吧,我正好更新一下 http://oembed.it/
|
10
@aligo
优酷: preg_match('@^http:\/\/v\.youku\.com\/v_show\/id_([\w\d+_-]*)\.html|^http:\/\/v\.youku\.com\/v_show\/id_([\w\d+_-]*)=\.html@i', $url, $matches); $videoID = $matches[1]; $videoApi = 'http://v.youku.com/player/getPlayList/VideoIDS/'.$videoID; 土豆: preg_match_all('/(<script.*>)(.*)(<\/script>)/imxsU',$data,$matches); preg_match_all("/(icode = ')(.*)(' ,oid)/i",$matches[0][1],$results); if (strlen($results[2][0])<11) { preg_match_all('/(icode:\")(.*)(\")/i',$matches[0][1],$results); } $videoApi = 'http://api.tudou.com/v3/gw?method=item.info.get&appKey=myKey&format=json&itemCodes='.$results[2][0]; |
12
参考以上各位的代码,精简后的优酷python代码:
match=re.search(r'^http:\/\/v\.youku\.com\/v_show\/id_([-+_\w]+)=*\.html',str) id=match.group(1) return 'http://player.youku.com/player.php/sid/'+id+'/v.swf' |