动态获取爱奇艺上传视频mp4格式url地址
有时候,在工作中有些客户需要用到视频,我们大家都知道视频是非常的耗费流量的,因此,如果因为项目要求客户单独买台视频服务器是非常划不来的。那么将视频上传到优酷,爱奇艺等视频网站来托管那是一件很好的解决方案。
今天主要和大家聊下如果使用爱奇艺开放平台中来动态获取自己上传视频的mp4格式url地址。我们闲话少说,直接开始。
首先先看下通过这种方式获取的视频播放效果:

一、我们需要注册成为爱奇艺开发者
爱奇艺开放平台: http://open.iqiyi.com/index.html

二、注册审核通过后,我们进入视频托管
搭建属于你的托管应用:http://open.iqiyi.com/lib/upload.html

三、学习文档,进行接口调用
四、封装代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>获取爱奇艺上传视频mp4格式url地址</title>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<style>
.main{
width:40%;
margin: 200px auto;
}
</style>
</head>
<body> <div class="main">
<video id="setUrl" width="550" height="310" controls type="video/mp4" preload="none" poster="bg.png"></video>
</div> <script type="text/javascript">
$(function(){
//------------------------测试数据--------------------------
var file_id="3856cf8b9e34492db5faa827d9a0c663"; //文件上传id
//------------------------测试数据--------------------------
// 得到mp4格式URL
getURL(file_id,function(url){
console.log(url);
$("#setUrl").attr("src",url);
});
// 封装得到mp4格式URL函数
function getURL(file_id,callback){
var app_key='XXXXXXXXXXXXXXXXXXXXXX'; //申请应用时分配的app_key
var app_secret='XXXXXXXXXXXXXXXXXXXXXXXXX';//申请应用时分配的app_secret
//获取访问令牌
$.ajax({
type: "GET",
url: "https://openapi.iqiyi.com/api/iqiyi/authorize?client_id="+app_key+"&client_secret="+app_secret+"",
data: "",
dataType: "json",
success: function(e){
var getObject =JSON.parse(e);
// var access_token=getObject.data.access_token; //开放平台分配的access token,OAuth授权后获得【正式环境下】
//------------------------测试数据--------------------------
var access_token="2.65f2da58f8c9d91eb7da125b317c9193"; //开放平台分配的access token,OAuth授权后获得【测试数据】
//------------------------测试数据--------------------------
//获取视频 URL 列表
$.ajax({
type: "GET",
url: "http://openapi.iqiyi.com/api/file/urllist?access_token="+access_token+"&file_id="+file_id+"",
data: "",
dataType: "json",
success: function(data){
var getData =JSON.parse(data);
var getUrlLink=(getData.data.mp4[1]);//得到需要的url请求
//获取mp4格式的视频URL
$.ajax(getUrlLink, {
data:"",
dataType: 'jsonp', //此处对于跨域问题的解决
crossDomain: true,
success: function(data) {
var videoURL =data.data.l;
callback.call(this,videoURL); //回调得到的mp4格式的url
},
error : function() {
console.log("请求获取mp4格式的视频URL失败");
}
}); },
error : function() {
console.log("请求获取视频URL列表失败");
}
}); },
error : function() {
console.log("请求获取访问令牌失败");
}
});
}
});
</script>
</body>
</html>
五、这种方式的好处
使用这种方式,我认为最大的好处就是我们可以随心所欲的变换播放器的样式及皮肤,还有更重要的一点,我们的视频虽然在爱奇艺的服务器上,但是我们点击播放的时候,视频可以立即的播放,而没有广告。而且还可以减缓我们服务器的带宽压力!!!
六、代码打包
链接: http://pan.baidu.com/s/1nuKIenB 密码: kqnx
动态获取爱奇艺上传视频mp4格式url地址的更多相关文章
- 原生的ajax请求----(播放托管到爱奇艺上的视频)
播放视频 $(function(){ //视频播放 $('.play-icon').click(function () { $.ajax({ type:"get", url: &q ...
- Python爬虫实战案例:爬取爱奇艺VIP视频
一.实战背景 爱奇艺的VIP视频只有会员能看,普通用户只能看前6分钟.比如加勒比海盗5的URL:http://www.iqiyi.com/v_19rr7qhfg0.html#vfrm=19-9-0-1 ...
- JavaFX桌面应用-视频转码工具(支持爱奇艺qsv转mp4)
最近由于需要将在爱奇艺下载的视频(qsv)转化了mp4,用JavaFX开发一个视频转码工具,算是JavaFX开发的第一个应用吧. 支持qsv转码mp4,理论上支持各种格式,仅测试了flv,qsv格式. ...
- yii 上传视频(ajax)
实现一个功能:提交表单的时候,需要上传视频,把视频上传到oss上,然后把url作为表单值传到后端保存到数据库.需要ajax异步实现. 遇到了一个这样报错:Bad Request: 您提交的数据无法被验 ...
- 视频下载四大神器—如何下载优酷/爱奇艺/腾讯/B站超清无水印视频
视频下载四大神器—如何下载优酷/爱奇艺/腾讯/B站超清无水印视频 2018-07-11 | 标签»下载, 下载工具, 视频 又是视频下载,老生常谈的话题.阿刚同学已在乐软博客多次与大家分享推荐 ...
- 从B站、爱奇艺、映客的IPO上市,看国内视频公司的内容审核现状
本文由 网易云发布. 3月30日,中央电视台<经济半小时>栏目讲述了网络上的一个顽症——色情内容.在这期主题为<互联网上的“色诱”>的节目中,央视的记者揭示了色情直播的猖獗. ...
- 用Python爬取B站、腾讯视频、爱奇艺和芒果TV视频弹幕!
众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一个组织良好的评论序列.通过分析弹幕,我们可以快速洞察广大观众对于视频 ...
- android银行卡匹配、详情展开动画、仿爱奇艺视频拖拽、扫码识别手机号等源码
Android精选源码 android实现银行卡匹配信息源码 android实现可以展开查看详情的卡片 下拉刷新,上拉加载,侧滑显示菜单等效果RefreshSwipeRecyclerview andr ...
- 破解爱奇艺优酷等Vip视频
现在网络上兴起卖低价Vip会员的,博主在这里介绍一个破解软件,不需要登录,找到视频播放页就可以观看! 软件下载地址:http://zyzpp.cn/ 1.下载软件安装后打开: 2.比如我们要看爱奇艺的 ...
随机推荐
- Nginx与Tomcat、Client之间请求的长连接配置不一致问题解决[转]
http://bert82503.iteye.com/blog/2152613 前些天,线上出现“服务端长连接与客户端短连接引起Nginx的Writing.Active连接数过高问题”,这个是由于“服 ...
- Lazy Load 图片延迟加载(转)
jQuery Lazy Load 图片延迟加载来源 基于 jQuery 的图片延迟加载插件,在用户滚动页面到图片之后才进行加载. 对于有较多的图片的网页,使用图片延迟加载,能有效的提高页面加载速度. ...
- istringstream
编写程序,将来自一个文件中的行保存在一个vector<string>中,然后使用一个istringstream从vector读取数据成员,每次读取一个单词 #include <ios ...
- 多线程GCD
经常使用:规避很多线程相关的复杂的逻辑 为什么会gcd?因为pthread和nsthread要求开发人员对线程相关的知识了解深入; 手动启动线程:加锁/解锁;造成很多隐患 --> 苹果公司给出了 ...
- Oracle删除重复数据的几种常用方法
1.有可区分的主键,其他数据相同 select * from 表名 dl where dl.id not in (select min(d.id) from 表名 d group by 重复列) 2 ...
- scala学习笔记:match表达式
写了一个超级长的表达式,估计不是最简洁的: scala> def foo(ch:Any)=ch match { case true=>"male";case false ...
- length prototype 函数function的属性,以及构造函数
前言:学到一些JavaScript高级的知识,在这里记下,方便以后的查找 1.length代表函数定义的形参的个数,挺简单的 例如:function Pen(price,cname) { . ...
- idl生成.h .c文件
1.从命令行执行 设置INCLUDE.LIB等,可先运行vsvars32.bat(C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\ ...
- [转]Windows Shell 编程 第二章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987893】
第二章Shell的结构 “Shell 编程”的大伞之下有大量的API函数和COM接口.这个种类繁多的‘命令’集允许你用不同的方法对Windows Shell进行编程.函数和接口并不是两种提供相同功能 ...
- ie编程半天的学习总结
自己好久没有来这个博客了,自己陆续去几个地方写博客,一个c++博客园,一个csdn. 感觉都一般吧,看不到什么好的博客,可能自己没有看到吧.以后就在这个博客记录一点技术笔记吧!自己比较懒,只要做为记录 ...