有时候,在工作中有些客户需要用到视频,我们大家都知道视频是非常的耗费流量的,因此,如果因为项目要求客户单独买台视频服务器是非常划不来的。那么将视频上传到优酷,爱奇艺等视频网站来托管那是一件很好的解决方案。

今天主要和大家聊下如果使用爱奇艺开放平台中来动态获取自己上传视频的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地址的更多相关文章

  1. 原生的ajax请求----(播放托管到爱奇艺上的视频)

    播放视频 $(function(){ //视频播放 $('.play-icon').click(function () { $.ajax({ type:"get", url: &q ...

  2. Python爬虫实战案例:爬取爱奇艺VIP视频

    一.实战背景 爱奇艺的VIP视频只有会员能看,普通用户只能看前6分钟.比如加勒比海盗5的URL:http://www.iqiyi.com/v_19rr7qhfg0.html#vfrm=19-9-0-1 ...

  3. JavaFX桌面应用-视频转码工具(支持爱奇艺qsv转mp4)

    最近由于需要将在爱奇艺下载的视频(qsv)转化了mp4,用JavaFX开发一个视频转码工具,算是JavaFX开发的第一个应用吧. 支持qsv转码mp4,理论上支持各种格式,仅测试了flv,qsv格式. ...

  4. yii 上传视频(ajax)

    实现一个功能:提交表单的时候,需要上传视频,把视频上传到oss上,然后把url作为表单值传到后端保存到数据库.需要ajax异步实现. 遇到了一个这样报错:Bad Request: 您提交的数据无法被验 ...

  5. 视频下载四大神器—如何下载优酷/爱奇艺/腾讯/B站超清无水印视频

      视频下载四大神器—如何下载优酷/爱奇艺/腾讯/B站超清无水印视频  2018-07-11 |  标签»下载, 下载工具, 视频 又是视频下载,老生常谈的话题.阿刚同学已在乐软博客多次与大家分享推荐 ...

  6. 从B站、爱奇艺、映客的IPO上市,看国内视频公司的内容审核现状

    本文由  网易云发布. 3月30日,中央电视台<经济半小时>栏目讲述了网络上的一个顽症——色情内容.在这期主题为<互联网上的“色诱”>的节目中,央视的记者揭示了色情直播的猖獗. ...

  7. 用Python爬取B站、腾讯视频、爱奇艺和芒果TV视频弹幕!

    众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一个组织良好的评论序列.通过分析弹幕,我们可以快速洞察广大观众对于视频 ...

  8. android银行卡匹配、详情展开动画、仿爱奇艺视频拖拽、扫码识别手机号等源码

    Android精选源码 android实现银行卡匹配信息源码 android实现可以展开查看详情的卡片 下拉刷新,上拉加载,侧滑显示菜单等效果RefreshSwipeRecyclerview andr ...

  9. 破解爱奇艺优酷等Vip视频

    现在网络上兴起卖低价Vip会员的,博主在这里介绍一个破解软件,不需要登录,找到视频播放页就可以观看! 软件下载地址:http://zyzpp.cn/ 1.下载软件安装后打开: 2.比如我们要看爱奇艺的 ...

随机推荐

  1. HDU 1330 Nearest Common Ancestors(求两个点的近期公共祖先)

    题目链接:id=1330">传送门 在线算法: #include <iostream> #include <cstdio> #include <cstri ...

  2. zookeeper使用场景【转】

    分布式网站架构后续:zookeeper技术浅析   Zookeeper是hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用越来越多. ...

  3. iOS之宏定义#define

    最基本的宏定义用法 #define aaa bbb 表示用aaa替换bbb的内容. 宏作用范围 宏的作用范围是在当前文件内, 如果需要作用于其他类(如在类b调用类a已定义宏),那么需要在类b引入类a的 ...

  4. Android端如何获取手机当前的网络状态,比如wifi还是3G, 还是2G, 电信还是联通,还是移动

    不多说了,直接看代码, NB人会懂的! package com.example.vdisktest; import android.app.Activity; import android.conte ...

  5. global 用法

    <?php//$GLOBALS['he']="hechunhuae";function Test(){ //global $he; $GLOBALS['he']=" ...

  6. 你不知道的 Javascript

    作用域 词法作用域:编译阶段确定(欺骗词法作用域 eval with) function foo(str){ "use strict" eval(str) console.log( ...

  7. percona-toolkit工具检查MySQL复制一致性及修复

    利用percona-toolkit工具检查MySQL数据库主从复制数据的一致性,以及修复. 一.             pt-table-checksum检查主从库数据的一致性 pt-table-c ...

  8. url解析

    window.onload=function(){ var url="http://www.qq.com/index.html?key1=1&key2=2&key3=3&qu ...

  9. 浅谈在实验室的一个作品---8x8x8光立方

    在实验室学习51单片机之后,觉得是得做点东西,提高一下动手能力,光立方就成了自己忙碌的目标.买了1000个灯,准备好之后就开始了为期一周的焊接, 一周之后就是这个样子啦.... 之后就进行了电路板的焊 ...

  10. dede-搜索

    <form name="formsearch" action="{dede:global.cfg_cmsurl/}/plus/search.php"> ...