1,优酷正常上传流程:

1). create:连接开放平台上传接口服务器,服务器端会返回upload_token以及upload_server_uri。
2). create_file:连接上传服务器(通过upload_server_uri解析出上传服务器IP地址,以下所述上传服务器,均指此IP地址对应的服务器)。主要目的是创建上传文件,提交上传文件信息。 
3). new_slice:连接上传服务器,以upload_token作为参数,请求创建slice_task_id,获取第一个上传分片的开始位置offset,分片长度等。 
4). upload_slice:连接上传服务器,上传分片。
5). check: 连接上传服务器,以upland_token作为参数,检查上传任务是否完成。返回结果如下:

* status=1:文件上传完成,并且全部确认写入磁盘;
* status=2:文件上传中,全部分片上传任务已经分派,见返回字段transferred_percent;
* status=3:文件上传中,所有分片上传任务都已完成,但是依然有的分片还未确认写入磁盘,见返回字段confirmed_percent;
* status=4:文件上传中,还有分片上传任务未分配。

6). commit: 连接上传服务器,确认上传过程结束,提交上传任务。

2.续传

1). check:连接上传服务器(客户端需要记录之前通过upload_server_uri解析出的服务器IP地址),检查上传任务是否完成。返回结果如下:

* status=1:文件上传完成,并且全部确认写入磁盘;
* status=2:文件上传中,全部分片上传任务已经分派,见返回字段transferred_percent;
* status=3:文件上传中,所有分片上传任务都已完成,但是依然有的分片还未确认写入磁盘,见返回字段confirmed_percent;
* status=4:文件上传中,还有分片上传任务未分配。
  1. upload(分为两种情况):

    • 如果check返回4,则通过调用new_slice、upload_slice上传分片;
    • 如果check返回2或者3则需等待一段时间(比如:60秒)后再次发出check请求。
  2.commit:连接上传接口服务器,确认上传过程结束,提交上传任务。
 
3.上传demo
  1).pip install youku/或者去http://cloud.youku.com/down下载优酷python/php/Java的sdk,之后作为模块引入
  2)引入:

    from youku import YoukuUpload
  3)
  
  client_id和access_token 需要从youku那里获取

  access_token值是会过期的,每隔一段时间就需要去重新获取,

  

  获取access_token接口:https://api.youku.com/oauth2/token.json
  方式:post
  参数
  

  返回值:

 

  上传代码:

from youku import YoukuUpload
def test_upload():
file_info = {
'title': '测试优酷Python客户端上传' # 必选
'tags': 'other', # 必选
'description': 'Polymer video #7' #选填
}
youku = YoukuUpload(CLIENT_ID, ACCESS_TOKEN, UPLOAD_FILE)
youku.upload(file_info) if __name__ == '__main__':
test_upload()

4.单条视频详细信息

  url= 'https://api.youku.com/videos/show.json'

  方式:GET

  参数:client_id->string(必选),video_id->string(必选),ext->string(选填)

  返回值:

  

  json:

  

{
"id" : "XNDY5Njc0MTA4",
"title" : "康熙来了 121101",
"link" : "http://v.youku.com/v_show/id_XNDY5Njc0MTA4.html",
"thumbnail" : "http://g2.ykimg.com/01270F1F46509251F539D10123193CD2CB70CC-5896-F53E-B869-61E819861E71",
"duration" : "2675.36",
"category" : "综艺",
"state" : "normal",
"created" : "2011-07-15 09:00:42",
"published" : "2011-07-15 09:00:42",
"description" : "康熙来了",
"player" : "http://player.youku.com/player.php/sid/XNDY5Njc0MTA4/v.swf",
"public_type" : "all",
"copyright_type" : "reproduced",
"user" :
{
"id" : 58011986,
"name" : "康熙来了2010",
"link" : "http://i.youku.com/u/UMjMyMDQ3OTQ0"
},
"tags": "康熙来了",
"view_count" : 646437,
"operation_limit": [ ],
"streamtypes": [
"hd2",
"flvhd",
"mp4",
"3gp",
"3gphd"
],
"show": {
"id": "2ab71ff032cb11e196ac",
"name": "康熙来了 2012",
"link": "http://www.youku.com/show_page/id_z2ab71ff032cb11e196ac.html",
"type": "正片",
"seq": "215",
"stage": "20121101"
}
}

  2.代码

import requests
GET = requests.get
def select_youku(youku_vid):
url = "https://api.youku.com/videos/show.json?client_id='xxxxx'&video_id=%s" % youku_vid
video_info = GET(url)#返回视频信息
if __name__ == "__main__":
select_youku(youku_vid)

  这个url主要是为了获取视频的状态,以此来更新数据库判断是否上传成功是否可播放

5.改变优酷临时文件的存放位置

  优酷的临时文件是用来存放上传过程中返回的token值和上传服务器的ip等临时信息,但是我们的磁盘目录满了,而临时文件生成在上传文件的同级目录中,为了方便管理,所以需要改变临时文件的存放位置

    

改为:

  

提醒:

  一定要记录日志,一定要记录优酷返回优酷id的日志,我这里就出现了上传两个视频,结果两个视频的返回id相同的坑爹情况。

优酷视频上传api及demo代码的更多相关文章

  1. Android-调用优酷SDK上传视频

    最近在研究用优酷的SDK来进行视频上传的功能,由于优酷的SDK只是提供了一个上传的sample code,没有涉及到授权的过程,对于新手来说,可能非常棘手,现在分享一下我的思路:   程序实现前我们先 ...

  2. JSP页面怎样导入优酷视频

    我在做的一个项目里面,应客户要求.要导入视频.然后我再考虑,视频是直接放在本地数据库的话,那么肯定会出现数据视频读取反应慢. 那么,就能够把视频先传到优酷上面,然后再直接应用优酷视频上的html代码, ...

  3. Vue+Element UI 实现视频上传

    一.前言 项目中需要提供一个视频介绍,使用户能够快速.方便的了解如何使用产品以及注意事项. 前台使用Vue+Element UI中的el-upload组件实现视频上传及进度条展示,后台提供视频上传AP ...

  4. 【API】获取优酷视频信息接口

    序:        自己的网站中需要接入一个视频模块,虚拟主机的空间小所以只能引用第三方的链接.感觉国内优酷好不错,所以查了一下优酷的接口. 0x00:        先去优酷API开放中心申请一个开 ...

  5. 腾讯云点播视频存储(Web端视频上传)

    官方文档 前言 所谓视频上传,是指开发者或其用户将视频文件上传到点播的视频存储中,以便进行视频处理.分发等. 一.简介 腾讯云点播支持如下几种视频上传方式: 控制台上传:在点播控制台上进行操作,将本地 ...

  6. 网页中引用优酷视频去广告自动播放代码[xyytit]

    很多时候需要在网站中加入视频,可视频太大放自己服务器上太占空间,可以把视频上传到优酷网上,这样节省了空间,打开速度方面也会有不少提升.下面教大家如何引用自动播放的优酷视频.把下面的代码加在你网页适当位 ...

  7. Scrum立会报告+燃尽图(十月十五日总第六次):视频上传及选题介绍工作

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2196 Scrum立会master:田良 一.小组介绍 组长:付佳 组员: ...

  8. 使用Vitamio打造自己的Android万能播放器(5)——在线播放(播放优酷视频)

    前言 为了保证每周一篇的进度,又由于Vitamio新版本没有发布, 决定推迟本地播放的一些功能(截图.视频时间.尺寸等),跳过直接写在线播放部分的章节.从Vitamio的介绍可以看得出,其支持http ...

  9. 微信小程序选择视频,视频上传,视频播放

    请查看链接地址看具体详情: 选择视频: https://mp.weixin.qq.com/debug/wxadoc/dev/api/media-video.html#wxchoosevideoobje ...

随机推荐

  1. iOS开发之工具篇-20个可以帮你简化移动app开发流程的工具

    如果想进入移动app开发这个领域,你总能从别的开发者或者网上或者书上找到各种各样的方法和工具,对于新手来说,还没有摸清门路就已经陷入迷茫了.这里推荐20个可以帮你简化app开发流程的工具.很多开发者都 ...

  2. LeetCode 第二天后续(两数相加 python3)

    # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # sel ...

  3. 撩课-Web架构师养成系列(第二篇)-async

    前言 Web架构师养成系列共15篇,每周更新一篇,主要分享.探讨目前大前端领域(前端.后端.移动端)企业中正在用的各种成熟的.新的技术.部分文章也会分析一些框架的底层实现,让我们做到知其然知其所以然. ...

  4. 撩课-MySQL详解1-数据库简介

    学习地址:[撩课-JavaWeb系列1之基础语法-前端基础][撩课-JavaWeb系列2之XML][撩课-JavaWeb系列3之MySQL][撩课-JavaWeb系列4之JDBC][撩课-JavaWe ...

  5. SuperSubScriptHelper——Unicode上下标辅助类

    在项目的实施过程中,类似化学分子式.平方.立方等,需要处理上.下标字符. 上下标字符的实现,大致有两种方式,一种是字符本身包含上下标信息,另一种方式是通过格式化标记实现上下标字符的显示. Word中的 ...

  6. 并发模型之Master-Worker设计模式

    一.Master-Worker设计模式 Master-Worker模式是常用的并行设计模式.它的核心思想是,系统有两个进程协议工作:Master进程和Worker进程.Master进程负责接收和分配任 ...

  7. Python Djan 路由对应的名称

    路由关系命名 对URL路由关系进行命名,以后可以根据此名称生成自己想要的URL 1. url(r'fdsafdsaeeeee',views.index, name='hello') #给这个url后面 ...

  8. 01.JavaScript-->js组成

  9. 一行代码解决各种IE的兼容问题

    一行代码解决各种IE的兼容问题  在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 < ...

  10. Android解析WindowManagerService(一)WMS的诞生

    前言 此前我用多篇文章介绍了WindowManager,这个系列我们来介绍WindowManager的管理者WMS,首先我们先来学习WMS是如何产生的.本文源码基于Android 8.0,与Andro ...