簡單獲取各大視頻網站的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正是我們想要的內容。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM