简单获取各大视频网站的flash地址

    最近做网站的时候遇到一个需求:给定一个视频地址,获取它的swf地址。例如,给一个优酷的视频地址:http://v.youku.com/v_show/id_XNDg4MzY5ODU2.html,想获取它的swf文件的地址,通常情况我们是通过爬取网页的方式来获取相关标签内的值,可是这种方法有很多不便,效率不高,准确度不能得到保证,不同的网站筛选的方法也不一样,有的网站的flash地址是用js动态生成的(例如爱奇艺),这时候通过爬取网页就得不到想要的结果了。

    今天突然想到新浪微博支持在发微博的时候直接插入视频地址,就想看看新浪是怎么做的。于是试着发一条带视频的微博,此时页面上并没有视频的真实地址,而是一张与视频相关的图片

 

点击图片,出现了视频播放器。

使用谷歌浏览器的开发人员工具查看,原来新浪是通过它自己的api来实现这一功能的。

api地址:http://api.weibo.com/widget/show.jsonp?vers=3&lang=zh-cn&short_url=zjo0epu&template_name=embed&source=3818214747&jsonp=STK

我们只需要关心short_url这个参数就行了,它就是视频的长网址转换后的短网址。

 

这里给个长网址转短网址的api:http://weibo.com/aj/mblog/video?_wv=5&url=http%3A%2F%2Fv.youku.com%2Fv_show%2Fid_XNDg1MDkzODcy.html

 

url参数换成你需要转换的网址就行了。

 

返回结果:

{"code":"100000","msg":"","data":{"url":"http:\/\/t.cn\/zjxngLP","title":null}}

 

另外加上jsonp=STK这个参数,返回的结果是html,不加这个参数返回的是json格式的数据。

 

来看看结果吧

 

<!-- 加jsonp=STK参数 -->

<html>
 <head></head>
 <body>
  try{STK({&quot;result&quot;:&quot;
  <div>
   <div>
    <embed id="\&quot;STK\&quot;" height="\&quot;356\&quot;" allowscriptaccess="\&quot;never\&quot;" style="\&quot;visibility:" visible;\"="" pluginspage="\&quot;http://get.adobe.com/cn/flashplayer/\&quot;" flashvars="\&quot;playMovie=true&amp;auto=1\&quot;" width="\&quot;440\&quot;" allowfullscreen="\&quot;true\&quot;" quality="\&quot;high\&quot;" src="\&quot;http://player.ku6.com/refer/uLsWSvMRa4YaFaeNBlo04Q../v.swf\&quot;" type="\&quot;application/x-shockwave-flash\&quot;" wmode="\&quot;transparent\&quot;/" />
   </div>
  </div>&quot;});}catch(e){}
 </body>
</html>

 

<!-- 不加参数,返回的是json格式

{"result":"<div><div><embed id=\"\" height=\"356\" allowscriptaccess=\"never\" style=\"visibility: visible;\" pluginspage=\"http://get.adobe.com/cn/flashplayer/\" flashvars=\"playMovie=true&auto=1\" width=\"440\" allowfullscreen=\"true\" quality=\"high\" src=\"http://player.ku6.com/refer/uLsWSvMRa4YaFaeNBlo04Q../v.swf\" type=\"application/x-shockwave-flash\" wmode=\"transparent\"/></div></div>"}

 

可以看到返回结果中的src正是我们想要的内容。

 

 

posted @ 2012-12-16 00:07  一瓶珍情  阅读(9991)  评论(0编辑  收藏  举报