1 开始上传视频 start_upload方法

function start_upload(cookie,filename,size);
//post 参数
var form = {'fsize':size,'object':filename,'parallel':'3',//表示多少个线程同时上传视频'insertOnly':'1','channel':'bjyt'}
url : https://v.sj.360.cn/upload/video/request
/*
* cookie:用户登录保存cookie
* filename:上传视频文件名,不含路径
* size:文件大小(Byte)
*/

2 多线程上传视频

url:  1步骤返回JSON下的next_block_url + bhashbhash加密方法:function sha1(data) {function n() {this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],this.h0 = 1732584193,this.h1 = 4023233417,this.h2 = 2562383102,this.h3 = 271733878,this.h4 = 3285377520,this.block = this.start = this.bytes = 0,this.finalized = this.hashed = !1,this.first = !0}var r = "object" == typeof e ? e: {}; ! r.JS_SHA1_NO_NODE_JS && "object" == typeof process && process.versions && process.versions.node && (r = global);var i = (!r.JS_SHA1_NO_COMMON_JS && "object" == typeof module && module.exports, "function" == typeof t && t.amd, "0123456789abcdef".split("")),s = [ - 2147483648, 8388608, 32768, 128],o = [24, 16, 8, 0],u = ["hex", "array", "digest", "arrayBuffer"],a = [],f = function(e) {return function(t) {return (new n()).update(t)[e]()}};return n.prototype.update = function(e) {if (!this.finalized) {var t = "string" != typeof e;t && e.constructor === r.ArrayBuffer && (e = new Uint8Array(e));for (var n, i, s = 0,u = e.length || 0,a = this.blocks; s < u;) {if (this.hashed && (this.hashed = !1, a[0] = this.block, a[16] = a[1] = a[2] = a[3] = a[4] = a[5] = a[6] = a[7] = a[8] = a[9] = a[10] = a[11] = a[12] = a[13] = a[14] = a[15] = 0), t) for (i = this.start; s < u && i < 64; ++s) a[i >> 2] |= e[s] << o[3 & i++];else for (i = this.start; s < u && i < 64; ++s) n = e.charCodeAt(s),n < 128 ? a[i >> 2] |= n << o[3 & i++] : n < 2048 ? (a[i >> 2] |= (192 | n >> 6) << o[3 & i++], a[i >> 2] |= (128 | 63 & n) << o[3 & i++]) : n < 55296 || n >= 57344 ? (a[i >> 2] |= (224 | n >> 12) << o[3 & i++], a[i >> 2] |= (128 | n >> 6 & 63) << o[3 & i++], a[i >> 2] |= (128 | 63 & n) << o[3 & i++]) : (n = 65536 + ((1023 & n) << 10 | 1023 & e.charCodeAt(++s)), a[i >> 2] |= (240 | n >> 18) << o[3 & i++], a[i >> 2] |= (128 | n >> 12 & 63) << o[3 & i++], a[i >> 2] |= (128 | n >> 6 & 63) << o[3 & i++], a[i >> 2] |= (128 | 63 & n) << o[3 & i++]);this.lastByteIndex = i,this.bytes += i - this.start,i >= 64 ? (this.block = a[16], this.start = i - 64, this.hash(), this.hashed = !0) : this.start = i}return this}},n.prototype.finalize = function() {if (!this.finalized) {this.finalized = !0;var e = this.blocks,t = this.lastByteIndex;e[16] = this.block,e[t >> 2] |= s[3 & t],this.block = e[16],t >= 56 && (this.hashed || this.hash(), e[0] = this.block, e[16] = e[1] = e[2] = e[3] = e[4] = e[5] = e[6] = e[7] = e[8] = e[9] = e[10] = e[11] = e[12] = e[13] = e[14] = e[15] = 0),e[15] = this.bytes << 3,this.hash()}},n.prototype.hash = function() {var e, t, n, r = this.h0,i = this.h1,s = this.h2,o = this.h3,u = this.h4,a = this.blocks;for (t = 16; t < 80; ++t) n = a[t - 3] ^ a[t - 8] ^ a[t - 14] ^ a[t - 16],a[t] = n << 1 | n >>> 31;for (t = 0; t < 20; t += 5) e = i & s | ~i & o,n = r << 5 | r >>> 27,u = n + e + u + 1518500249 + a[t] << 0,i = i << 30 | i >>> 2,e = r & i | ~r & s,n = u << 5 | u >>> 27,o = n + e + o + 1518500249 + a[t + 1] << 0,r = r << 30 | r >>> 2,e = u & r | ~u & i,n = o << 5 | o >>> 27,s = n + e + s + 1518500249 + a[t + 2] << 0,u = u << 30 | u >>> 2,e = o & u | ~o & r,n = s << 5 | s >>> 27,i = n + e + i + 1518500249 + a[t + 3] << 0,o = o << 30 | o >>> 2,e = s & o | ~s & u,n = i << 5 | i >>> 27,r = n + e + r + 1518500249 + a[t + 4] << 0,s = s << 30 | s >>> 2;for (; t < 40; t += 5) e = i ^ s ^ o,n = r << 5 | r >>> 27,u = n + e + u + 1859775393 + a[t] << 0,i = i << 30 | i >>> 2,e = r ^ i ^ s,n = u << 5 | u >>> 27,o = n + e + o + 1859775393 + a[t + 1] << 0,r = r << 30 | r >>> 2,e = u ^ r ^ i,n = o << 5 | o >>> 27,s = n + e + s + 1859775393 + a[t + 2] << 0,u = u << 30 | u >>> 2,e = o ^ u ^ r,n = s << 5 | s >>> 27,i = n + e + i + 1859775393 + a[t + 3] << 0,o = o << 30 | o >>> 2,e = s ^ o ^ u,n = i << 5 | i >>> 27,r = n + e + r + 1859775393 + a[t + 4] << 0,s = s << 30 | s >>> 2;for (; t < 60; t += 5) e = i & s | i & o | s & o,n = r << 5 | r >>> 27,u = n + e + u - 1894007588 + a[t] << 0,i = i << 30 | i >>> 2,e = r & i | r & s | i & s,n = u << 5 | u >>> 27,o = n + e + o - 1894007588 + a[t + 1] << 0,r = r << 30 | r >>> 2,e = u & r | u & i | r & i,n = o << 5 | o >>> 27,s = n + e + s - 1894007588 + a[t + 2] << 0,u = u << 30 | u >>> 2,e = o & u | o & r | u & r,n = s << 5 | s >>> 27,i = n + e + i - 1894007588 + a[t + 3] << 0,o = o << 30 | o >>> 2,e = s & o | s & u | o & u,n = i << 5 | i >>> 27,r = n + e + r - 1894007588 + a[t + 4] << 0,s = s << 30 | s >>> 2;for (; t < 80; t += 5) e = i ^ s ^ o,n = r << 5 | r >>> 27,u = n + e + u - 899497514 + a[t] << 0,i = i << 30 | i >>> 2,e = r ^ i ^ s,n = u << 5 | u >>> 27,o = n + e + o - 899497514 + a[t + 1] << 0,r = r << 30 | r >>> 2,e = u ^ r ^ i,n = o << 5 | o >>> 27,s = n + e + s - 899497514 + a[t + 2] << 0,u = u << 30 | u >>> 2,e = o ^ u ^ r,n = s << 5 | s >>> 27,i = n + e + i - 899497514 + a[t + 3] << 0,o = o << 30 | o >>> 2,e = s ^ o ^ u,n = i << 5 | i >>> 27,r = n + e + r - 899497514 + a[t + 4] << 0,s = s << 30 | s >>> 2;this.h0 = this.h0 + r << 0,this.h1 = this.h1 + i << 0,this.h2 = this.h2 + s << 0,this.h3 = this.h3 + o << 0,this.h4 = this.h4 + u << 0},n.prototype.hex = function() {this.finalize();var e = this.h0,t = this.h1,n = this.h2,r = this.h3,s = this.h4;return i[e >> 28 & 15] + i[e >> 24 & 15] + i[e >> 20 & 15] + i[e >> 16 & 15] + i[e >> 12 & 15] + i[e >> 8 & 15] + i[e >> 4 & 15] + i[15 & e] + i[t >> 28 & 15] + i[t >> 24 & 15] + i[t >> 20 & 15] + i[t >> 16 & 15] + i[t >> 12 & 15] + i[t >> 8 & 15] + i[t >> 4 & 15] + i[15 & t] + i[n >> 28 & 15] + i[n >> 24 & 15] + i[n >> 20 & 15] + i[n >> 16 & 15] + i[n >> 12 & 15] + i[n >> 8 & 15] + i[n >> 4 & 15] + i[15 & n] + i[r >> 28 & 15] + i[r >> 24 & 15] + i[r >> 20 & 15] + i[r >> 16 & 15] + i[r >> 12 & 15] + i[r >> 8 & 15] + i[r >> 4 & 15] + i[15 & r] + i[s >> 28 & 15] + i[s >> 24 & 15] + i[s >> 20 & 15] + i[s >> 16 & 15] + i[s >> 12 & 15] + i[s >> 8 & 15] + i[s >> 4 & 15] + i[15 & s]},n.prototype.toString = n.prototype.hex,n.prototype.digest = function() {this.finalize();var e = this.h0,t = this.h1,n = this.h2,r = this.h3,i = this.h4;return [e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, 255 & e, t >> 24 & 255, t >> 16 & 255, t >> 8 & 255, 255 & t, n >> 24 & 255, n >> 16 & 255, n >> 8 & 255, 255 & n, r >> 24 & 255, r >> 16 & 255, r >> 8 & 255, 255 & r, i >> 24 & 255, i >> 16 & 255, i >> 8 & 255, 255 & i]},n.prototype.array = n.prototype.digest,n.prototype.arrayBuffer = function() {this.finalize();var e = new ArrayBuffer(20),t = new DataView(e);return t.setUint32(0, this.h0),t.setUint32(4, this.h1),t.setUint32(8, this.h2),t.setUint32(12, this.h3),t.setUint32(16, this.h4),e},function() {var e = f("hex");e.create = function() {return new n},e.update = function(t) {return e.create().update(t)};for (var t = 0; t < u.length; ++t) {var r = u[t];e[r] = f(r)}return e.hex(data)} ()}//其中sha1参数data为当前block对应的视频的内容,从第一步返回block_num来判断,比如
block_num = 16,第一次上传视频,data = 视频内容截取前 1/16//3个线程同时上传,知道返回is_last_block = true,停止相应的线程

3.视频封面我是通过ffmpeg截取的图片

4.提交视频上传成功

post内容:
var form = {'object': filename,'fsize': size}
url : https://v.sj.360.cn/upload/video/commit

5.保存视频

function save_video(cat,title,cover,mid,cookie,tag)
/*cat : 视频分类,title:标题,cover: 封面,mid: 4步骤返回mid,cookie:用户cookie,tag:标签
*/
post内容:
var form = {'title':title,'brief':'','tag':tag,'cat':cat,'thumb':cover,'mid':mid,'is_premiere':'0','is_original':'0','is_exclusive':'0','timestamp':''}
url: https://v.sj.360.cn/mgrvideo/save2

6.发布视频

function guid() {return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);return v.toString(16);});
}
function publish_video(cookie,id,uuid)
/*cookie:用户cookieid: 5步骤返回data.iduuid: guid()
*/
post内容:
var form = {'uuid':uuid,'id':id}
url: https://v.sj.360.cn/mgrvideo/publish

快传号视频批量上传,禁止转载!相关推荐

  1. 新浪微博视频批量上传社区投稿工具教程

    微博视频批量上传投稿软件[主要功能]: 1.多新浪微博号批量自动登录.自动识别验证码.支持ck批量导入. 2.支持多新浪微博号自动批量上传视频,自动投稿到微博视频社区. 3.高清视频素材批量下载,可以 ...

  2. 新浪微博视频批量上传大师 v3.1

    简介: 新浪微博视频批量上传大师对于在新浪微博平台运营视频内容的小伙伴们来说是一个非常便利的小工具,它能够帮助用户将多个视频文件批量上传发布,支持新浪微博号批量登录,可以自动切换微博号,批量登录,批量 ...

  3. 知乎视频批量上传工具,知乎视频怎么批量发布

    做自媒体的朋友都知道,知乎最近上线了,视频收益,而且收益很不错,知乎是一个拥有超多用户的平台,流量很不错,不管用来运营做收益,还是用来引流效果都很不错,很多工作室或者自媒体运营者,在拥有很多账号的情况 ...

  4. 新浪微博视频批量上传工具收录怎么样

    新浪微博视频批量上传工具收录怎么样 在许多情况下这样做不片段的时长可能是不同的,服务器在生成片段时可能会有,服务器可能会为了节省存储空间删除掉旧的片段.在,你想在片段生成后尽快获得它们,同时还要避免在 ...

  5. 抖音视频批量上传辅助软件

    很多做推广的朋友开始把目光从搜索引擎慢慢的移动到了短视频平台,而抖音又是众多短视频平台中,商业推广最适合的平台. 如果通过抖音获客相信每个人都有自己的看法.我总结出两条方式比较适合我们普通的人: 1. ...

  6. el-upload 批量上传报错 Uncaught TypeError: Cannot set properties of null (setting ‘status‘)

    因业务需求需实现图片或视频批量上传的功能 结果发现一个坑 <template><el-uploadaction="https://up-cn-east-2.qiniup.c ...

  7. 帝国cms后台上传大视频上传m3u8批量上传一次多个的解决思路和方法

    今天我们要解决的问题是,大视频文件上传以及切片m3u8文件的上传.上面一节内容,我们已经整体描述了视频类网站的解决思路和方法 .这节我们将分块来讲.假设的前提条件是,我们本地准备了一些视频原始素材,比 ...

  8. 小红书笔记发布软件 批量上传视频

    百收网SEO短视频矩阵发布丨9平台视频发布助手 软件简述:软件仅支持win系统, 软件使用的是网页版模拟协议软件不绑定电脑,任意换机,不限登录账号数量, 软件支持抖音,快手,视频号,西瓜视频,百家号, ...

  9. 【Fastapi】批量上传文件(文档、图片、视频等)

    [Fastapi]批量上传文件 项目演示 功能说明 编程思路 重要知识点分析 源代码 项目演示 [Fastapi]批量上传文件(文档.图片.视频等) https://www.bilibili.com/ ...

最新文章

  1. nginx学习笔记(7)Nginx如何处理一个请求---转载
  2. python接口返回json处理_python 接口返回的json字符串实例
  3. Java中的垃圾回收
  4. linux自动挂载磁盘命令,使用mount命令配置Linux自动挂载
  5. 直白介绍卷积神经网络(CNN)
  6. 顺丰物流单号查询效果(可输入多个文本框)
  7. C++day14 学习笔记
  8. 品牌IP打造的实用性教程
  9. 【得之我幸,失之我命】分享下研究生阶段, IEEE论文投稿的心态和心路历程
  10. ubuntu/deepin安装配置mysql
  11. 云服务器选ssd还是hdd_服务器租用主机硬盘使用机械硬盘还是固态硬盘
  12. 9.28 正睿普及3
  13. linux ls 没权限,Linux Shell: ls 与 文件权限
  14. 2011计本 网本作业02
  15. unable to load client certificate private key file
  16. 深入场景,产融智合驱动金融业务智慧升级
  17. 2023免费的API 接口站
  18. Flutter时间选择器(城市选择器,时间选择器,数量选择器)
  19. 10 款最佳剪贴板管理器
  20. 豆瓣排行榜1--get携带params作为url参数去请求

热门文章

  1. revit二次开发--异形柱翻模
  2. python做相册_动感网页相册 python编写简单文件夹内图片浏览工具
  3. myeclipse中遇到代码run as后只有run configurations的情况
  4. stm32F103R6之BKP(备份寄存器)
  5. 10-STM32F1-RTC and BKP
  6. vue父传子通过对象的形式简写
  7. unity3d 批量替换模型材质的脚本 一键替换模型及子物体材质
  8. linux主板上的网卡不显示,redhat4.8在MSI主板安装完识别不到网卡RTL8168
  9. python爬取京东手机数据_Python数据爬虫学习笔记(21)爬取京东商品JSON信息并解析...
  10. 微信小程序实现押金管理(支付押金、申请退还押金、押金明细)