简单获取各大视频网站的flash地址
最近做网站的时候遇到一个需求:给定一个视频地址,获取它的swf地址。例如,给一个优酷的视频地址:http://v.youku.com /v_show/id_XNDg4MzY5ODU2.html,想获取它的swf文件的地址,通常情况我们是通过爬取网页的方式来获取相关标签内的值,可 是这种方法有很多不便,效率不高,准确度不能得到保证,不同的网站筛选的方法也不一样,有的网站的flash地址是用js动态生成的(例如爱奇艺),这时 候通过爬取网页就得不到想要的结果了。
今天突然想到新浪微博支持在发微博的时候直接插入视频地址,就想看看新浪是怎么做的。于是试着发一条带视频的微博,此时页面上并没有视频的真实地址,而是一张与视频相关的图片

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

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

我们只需要关心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正是我们想要的内容。
简单获取各大视频网站的flash地址的更多相关文章
- 如何使用油猴脚本不要vip就能观看各大视频网站如腾讯,爱奇艺等的vip视频
如何使用油猴脚本不要vip就能观看各大视频网站如腾讯,爱奇艺等的vip视频 首先打开谷歌商店(这里需要fq,如不能fq的小伙伴请看上面写的Chrome怎么访问外网) 搜索Tampermonkey,点击 ...
- python下载各大主流视频网站电影
You-Get 是一个命令行工具, 用来下载各大视频网站的视频, 是我目前知道的命令行下载工具中最好的一个, 之前使用过 youtube-dl, 但是 youtube-dl 吧, 下载好的视频是分段的 ...
- python爬取视频网站m3u8视频,下载.ts后缀文件,合并成整视频
最近发现一些网站,可以解析各大视频网站的vip.仔细想了想,这也算是爬虫呀,爬的是视频数据. 首先选取一个视频网站,我选的是 影视大全 ,然后选择上映不久的电影 “一出好戏” . 分析页面 我用的是c ...
- java获取当前网站的IP地址
package ip; import java.net.InetAddress; import java.net.UnknownHostException; /** * * @author * */ ...
- Java 获取当前项目所在服务器的 IP 地址
java中获取当前服务器地址主要使用到InetAddress这个类 public static void main(String[] args) { try { //用 getLocalHost() ...
- Python+Tornado+Tampermonkey 获取某讯等主流视频网站的会员视频解析播放
近期,<哪吒之魔童降世>在各大视频软件可以看了,然而却是一贯的套路,非会员谢绝观看!!!只能从国内那些五花八门的视频网站上找着看了,或者通过之前本人说的 Chrome 的油猴插件,传送门 ...
- 转:最简单的视频网站(JavaEE+FFmpeg)
本文记录一个最简单的视频网站系统.此前做过一些基于JavaEE中的 SSH (Strut2 + Spring + Hibernate)的网站系统,但是一直没有做过一个视频网站系统,所以就打算做一个&q ...
- 最简单的视频网站(JavaEE+FFmpeg)
本文记录一个最简单的视频网站系统.此前做过一些基于JavaEE中的SSH (Strut2 + Spring + Hibernate)的网站系统,但是一直没有做过一个视频网站系统,所以就打算做一个&qu ...
- 最简单的基于JavaEE和FFmpeg的视频网站
最简单的视频网站 Simplest Video Website 雷霄骅 Lei Xiaohua leixiaohua1020@126.com 中国传媒大学/数字电视技术 Communication U ...
随机推荐
- tcp流式套接字和udp数据报套接字编程区别
1. 流式套接字采用字节流方式进行传输,而数据报套接字 使用数据报形式传输数据2. tcp套接字会产生粘包,udp有消息边界,不会形成粘包.3. tcp编程可以保证消息的完整性,udp则不能保证4. ...
- js实现图片上传
//上传图片 function uploadImg(){ //loading $("#loading").ajaxStart(function() { $(this).show() ...
- Uoj 441 保卫王国
Uoj 441 保卫王国 动态 \(dp\) .今天才来写这个题. 设 \(f[u][0/1]\) 表示子树 \(u\) 中不选/选 \(u\) 时的最小权值和,显然有:\(f[u][0]=\sum ...
- 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数
在为开源项目 easiwin/MSTestEnhancer 进行持续集成编译时,需要在编译命令中传入较多的参数.这对于新接手此项目的人来说,成本还是高了一点儿.本文将介绍 MSBuild 响应文件 ( ...
- 如何向整个 Git 仓库补提交一个文件
微软在 Reference Source 里开放了 .Net Framework 多个版本的源码.为了更方便地阅读这些源码,我们把每一个版本都下载下来后按顺序提交到 git 仓库中. 但是!!!居然忘 ...
- 【angularJS】Service服务
AngularJS 中的服务是一个函数或对象.可以创建自己的服务,或使用内建服务. 内置服务 AngularJS 内建了30 多个服务. 1. $location 服务,它可以返回当前页面的 URL ...
- 字符编码:ASCII,Unicode和UTF-8
字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识. 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两 ...
- 第一次Sprint团队贡献分
201406114105 董婷婷 21 201406114157 容杰龙 22 201406114343 卓炜杰 ...
- 理解可变参数va_list、va_start、va_arg、va_end原理及使用方法
原文: http://www.cnblogs.com/pengdonglin137/p/3345911.html
- postcss gulp 安装使用
备注: 测试使用的是gulp 进行的编译 1. 项目初始化 npm init mkdir src touch app.css body{ display: flex; } 2. 安装(gulp ...