背景:

  题库软件的教学视频需要实现在线播放,由于技术水平和服务器配置的限制,如果把视频放在自己服务器上会出现各种问题。访问人数少的时候还可以勉强应付,临近考试时,服务器压力增大,视频访问延迟太大,有时根本无法正常播放,视频一直处于缓冲状态。被学生调侃“缓冲两小时,播放五分钟”。

  如果要改善这种现状,一方面是增强服务器的配置,另一方面优化软件代码。这两个对我来说都太难,水平太菜,捉急。不过好在现状互联网足够发达,想要实现什么功能基本上都能找到现成的解决方案,兜兜转转发现了“爱奇艺开放平台”。

简介:

  “爱奇艺开放平台”提供“视频托管”、“视频播放”、“应用分发”等一系列的免费解决方案,其中“视频托管”正是我所需要的解决方案。“视频托管”是指把自己的视频上传托管到爱奇艺网站,并需要将托管的UGC视频(用户自制视频)回调到自己的网站或APP免广告播放,这真是瞌睡来枕头了,正合我意。这样就不用担心视频延迟问题了,除非是用户本身带宽问题。而且还可以免广告播放。其实之前有把视频上传至优酷生成播放链接在APP内播放,但是需要看一段时间的广告。想想有的视频内容3分钟左右,看个30秒的广告,也是蛋疼的紧。

开始:

  废话不多说。要想使用“视频托管”服务,首先要成为“爱奇艺开放平台”的开发者。开发者有“个人”和“公司”两种,根据实际情况选择。申请通过后网页上会出现“我的应用”选项,根据实际需求创建一个应用,应用一个账户只能创建一个,人工审核时间比较长。审核通过后会发放一个APP KEY 和 APP SECRET,这是后期开发必不可少的凭证,需小心保管。“视频托管”应用简单来说就是先上传一些视频到爱奇艺,然后利用爱奇艺平台提供api来回调这些视频到自己的网站或者APP去播放。这样可以省去搭建视频服务器的麻烦,代价是这些视频在爱奇艺主站上都是公开的,其他人可以随便看。“视频托管”应用开发大致可以分成两大块:视频上传和视频管理。你所回调的视频内容必须来自使用对应APP KEY和APP SECRET上传的视频文件,仅使用个人账号上传的视频内容是无法回调的。

视频上传:

  视频上传有两种方式:利用视频托管的上传接口上传、利用合作方账户登录“爱奇艺视频助手”进行上传。第一种方式也就是利用开放的API上传接口来上传视频文件;第二种方式相对来说比较简单,下载“爱奇艺视频助手”,使用合作方账户登录这个助手(“合作方账户”就是注册开发者的账户)填写审核通过应用的APP KEY 和 APP SECRET,之后上传视频文件就可以了。目前,第一种方式对我来说比较难,还没摸索清楚,自觉水平太菜,等看完“异步编程”相关内容再来试试,先使用第二种方式来上传视频。

视频管理:

  对于“视频托管”应用来说,“视频管理”的主要内容是:获取授权、刷新授权信息、获取视频状态、获取视频信息、获取视频URL列表、删除视频。

正题

获取授权:

  获取授权就是获取一个访问令牌(access_token),利用这个令牌去进行其他操作。

获取授权的请求字符串:“https://openapi.iqiyi.com/api/iqiyi/authorize?client_id=APP_KEY&client_secret=APP_SECRET”。

其中APP_KEY 和 APP_SECRET是创建“视频托管应用”审核通过后由爱奇艺开放平台发放的。使用HTTP GET方式请求。

示例代码如下:

 1         /// <summary>
 2         /// 获取令牌(授权)
 3         /// </summary>
 4         private void GetAccessToken()
 5         {
 6             string requestAccessToken = string.Format("https://openapi.iqiyi.com/api/iqiyi/authorize?client_id={0}&client_secret={1}", mTestKey, mTestKeySecret);
 7
 8             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestAccessToken);
 9
10             HttpWebResponse response = (HttpWebResponse)request.GetResponse();
11
12
13             Stream receiveStream = response.GetResponseStream();
14
15             StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
16
17             string content = readStream.ReadToEnd();
18             response.Close();
19             readStream.Close();
20             AuthorResult result = jss.Deserialize<AuthorResult>(content);
21             if (result != null && result.code == "A00000")
22             {
23                 this.authorResult = true;
24                 lb_msg.Text = result.msg;
25                 lb_accessToken.Text = result.data.access_token;
26                 this.access_token = result.data.access_token;
27             }
28
29         }

使用HttpWebRequest对象发送请求,对象默认请求方式是GET,如果需要设置其他请求方式,设置对象的Method属性即可。

该请求返回的是如下结构的JSON字符串:

1 {
2     ‘code’: A0000,
3     ‘data’:
4     {
5         ‘access_token’: ACCESS_TOKEN, // 访问令牌
6          ‘expires_in’ : 60, // 过期时间
7          ‘refresh_token’: REFRESH_TOKEN, // 刷新令牌
8     }
9 }

其中code表示状态码,含义如下:

A00000 成功
Q00001 失败
A00007 系统错误
A21324 client_id或client_secret参数无效

access_token是访问令牌,是进行后续操作的依据;expires_in表示访问令牌的过期时间,以秒为单位;refresh_token表示刷新令牌,当令牌过期时可以使用这个刷新令牌,重新获取access_token,详见“刷新授权信息”。

疑问:过期时间在测试是返回的是一个9位数的数值,也就是上亿。如果是以秒为单位那么过期时间是一个非常大的值,利用测试的KEY和SECRET返回的过期时间大约是4年左右,对于普通应用应该完全足够了;刷新令牌的意义在哪呢?如果令牌过期,完全可以重新获取授权,没必要利用这个操作吧。

转载于:https://www.cnblogs.com/zhang-15-506/p/7662180.html

利用爱奇艺开放平台实现视频托管回调播放(一)——获取授权相关推荐

  1. 利用爱奇艺开放平台实现视频托管回调播放(二)——解析获取授权返回的JSON字符串...

    由于获取授权返回的是如下格式的JSON字符串: 1 { 2 'code': A0000, 3 'data': 4 { 5 'access_token': ACCESS_TOKEN, // 访问令牌 6 ...

  2. 使用爱奇艺开放平台上传视频

    一.问题背景: 在最近的一个项目中,需要有一个上传视频的功能,原先使用的优酷开放平台,但是由于很久没有维护了,导致账号过期了,且优酷开放平台在17年三月份之后,就暂停新应用的创建和生成新的应用,所以重 ...

  3. 爱奇艺路香菊:视频人物识别关键技术及其应用|爱奇艺技术沙龙回顾

    主讲人 | 路香菊 爱奇艺科学家 张康 编辑整理 量子位编辑 | 公众号 QbitAI 近日,爱奇艺技术沙龙"多模态视频人物识别的关键技术及应用"成功举办,爱奇艺科学家路香菊出席并 ...

  4. 最前线|爱奇艺低调上线“好多视频”,短视频战场的主动防御

    爱奇艺在短视频领域的布局有些低调. 近日,爱奇艺新推出一款名为"好多视频"的短视频APP,主推爱奇艺热播剧综周边,基于AI技术的智能推荐向用户进行内容分发.目前已在苹果App St ...

  5. 爱奇艺、腾讯视频等接连涨价 地主家也没有余粮了?

    继爱奇艺.芒果TV后,腾讯视频会员也要涨价了. 4月9日,腾讯视频宣布将于4月20日零点对腾讯视频VIP和超级影视VIP会员价格进行调整.其中,腾讯视频VIP月卡以及超级影视VIP的多项套餐等5种会员 ...

  6. 从财报看爱奇艺增长想象 长视频巨头要说“10分钟”新故事

    北京时间2020年2月28日, 爱奇艺公布截至到2019年12月31日的第四季度和全年未经审计的财务报告.财报数据显示,2019财年爱奇艺总营收达到290亿元(约42亿美元),同比增长16%,其中第四 ...

  7. 使用腾讯云函数每天签到有道云笔记、贴吧、爱奇艺等平台

    分享个支持爱奇艺,腾讯视频,网易云音乐,百度贴吧,b站,a站,天翼云等网站的签到打卡等操作 之前写过一个使用腾讯云函数每天打卡网易云音乐的: 使用云函数快速升级网易云音乐等级 使用腾讯云函数每天定时签 ...

  8. 步爱奇艺与腾讯视频的后尘,B站扬帆出海能否跨海破圈?

    2020年,"出海潮"成为不少互联网企业的动作之一,哔哩哔哩的出海计划也已经提上了日程. 12月28日消息,B站已经登陆东南亚市场.视频平台"出海",在哔哩哔哩 ...

  9. 爱奇艺数据仓库平台和服务建设实践

    该文根据[i技术会]现场演讲整理而成 首先介绍一下爱奇艺公司整体的业务情况以及数据仓库1.0的设计和出现的问题,针对数仓1.0的缺陷,是如何演进到数仓2.0架构以及数仓2.0需要解决的问题和需要达成的 ...

最新文章

  1. MYSQL 使用自定义表变量
  2. 传递命令行参数示例代码 (C 和 Python)
  3. Cloudera Manager是什么?
  4. Sentinel(十八)之注解支持
  5. 易语言 java支持_开源Java客户端可以连接易语言服务器
  6. 黑客必须掌握的基本技能
  7. Linux系统:Centos7搭建Redis单台和集群环境
  8. Arm开发板内核驱动模块--Helloworld及Makefile
  9. java数组元素的输入_java基础--键盘输入一个数,输出数组中指定元素
  10. php arcsin,三角函数在线计算器
  11. web网页开发-前端
  12. 晓莲说-何不原创:如何通过jad把class批量反编译成java文件
  13. Win10 - 使用‘Alt+Tab’不能切换窗口及更改切换风格
  14. Self-paced and auto-weighted multi-view clustering 阅读笔记
  15. Codeforces ~ 1009C ~ Annoying Present (贪心)
  16. 施金源:9.13黄金爆涨爆跌、黄金多单解套、黄金操作布局!
  17. 企业征信报告的查询内容有哪些?
  18. 计算机网络 通信网络笔记(自顶向下的方法)from top to the botton of MIT
  19. android 生成Excel表
  20. 《人群计数和密度估计方法综述》(阅读笔记20220315)

热门文章

  1. 发出的邮件对方未收到,应该如何处理
  2. 给你 2 万条数据,怎么快速导入到 MySQL?写得太好了...
  3. rectangle c语言,C语言,rectangle() ZeroMemory()这两个函数不太理解 求高人指点一下简单用法 及格式......
  4. h264和aac格式介绍及mp4文件的封装
  5. python审批系统开发_通用审批流程快速开发系统案例分享
  6. 辽宁禽流感疫情蔓延到阜新、锦州
  7. 原生js实现大屏数字上下滚动效果,支持随机多位数字
  8. dell 重装linux系统_DELL 服务器 安装linux 系统
  9. 登录oracle官网下载资料账号
  10. 理解 期望(均值/估计值)和方差