简单获取各大视频网站的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({"result":"<div><div><embed id="\"STK\"" 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>"});}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正是我們想要的內容。
?
?
轉載于:https://www.cnblogs.com/e241138/archive/2012/12/16/2820054.html
總結
以上是生活随笔為你收集整理的简单获取各大视频网站的flash地址的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: macOS自带网络测速功能使用教程
- 下一篇: uniapp之微信小程序背景图的显示问题