西瓜视频上传源码

没画框架 也没有发布功能 只有上传视频 

发布就一个包 抓一下就行了 

主要给大伙学习一下分段上传 模块就精易模块 自己导入就行

.版本 2 .支持库 spec .子程序 ixigua_upload, 逻辑型, , 上传成功返回真 .参数 Cookie, 文本型 .参数 filePath, 文本型, , 视频文件路径 .参数 vid, 文本型, 参考, 视频vid,上传成功后返回 .参数 msg, 文本型, 参考 .局部变量 url, 文本型 .局部变量 header, 文本型 .局部变量 data, 文本型 .局部变量 str, 文本型 .局部变量 json, 类_json .局部变量 accessKey, 文本型 .局部变量 uploadToken, 文本型 .局部变量 oid, 文本型 .局部变量 tos_host, 文本型 .局部变量 tos_sign, 文本型 .局部变量 hash, 文本型 .局部变量 key, 文本型 .局部变量 extra_param, 文本型 .局部变量 crc32, 文本型 .局部变量 token, 文本型 .局部变量 filedata, 字节集 .局部变量 fileSize, 长整数型 .局部变量 partCount, 整数型 .局部变量 partNumber, 整数型 .局部变量 partData, 字节集 .局部变量 uploadId, 文本型 .局部变量 crc32校验, 文本型 url = “https://studio.ixigua.com/api/upload/getAuthKey/?params=%7B%22type%22%3A%22video%22%2C%22isLandscape%22%3Atrue%7D” header = “Referer: https://studio.ixigua.com/upload” + #换行符 + “User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36” str = 编码_Utf8到Ansi (网页_访问_对象 (url, , , Cookie, , header)) json.解析 (str) .如果真 (json.取属性 (“status”).取数据文本 () ≠ “0”) msg = “accessKey获取失败!” 返回 (假) .如果真结束 accessKey = json.取通用属性 (“data.accessKey”) uploadToken = json.取通用属性 (“data.uploadToken”) url = “https://vas-lf-x.snssdk.com/video/openapi/v1/?action=GetVideoUploadParams&s=” + getS () + “&use_edge_node=1&file_size=289151” header = “Authorization: ” + uploadToken + #换行符 + “Content-Type: application/json” + #换行符 + “Origin: https://studio.ixigua.com” + #换行符 + “Referer: https://studio.ixigua.com/upload” + #换行符 + “User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36” + #换行符 + “X-Tt-Access: ” + accessKey str = 编码_Utf8到Ansi (网页_访问_对象 (url, , , , , header)) json.解析 (str) .如果真 (json.取属性 (“code”).取数据文本 () ≠ “2000”) msg = “oid获取失败!” 返回 (假) .如果真结束 tos_host = json.取通用属性 (“data['edge_nodes'][0]['tos_host']”) oid = json.取通用属性 (“data['edge_nodes'][0].oid”) tos_sign = json.取通用属性 (“data['edge_nodes'][0]['tos_sign']”) extra_param = json.取通用属性 (“data['edge_nodes'][0]['extra_param']”) vid = json.取通用属性 (“data['edge_nodes'][0].vid”) token = json.取通用属性 (“data['edge_nodes'][0].token”) filedata = 读入文件 (filePath) fileSize = 文件_取实际大小 (filePath) ' 5242880 .如果 (fileSize ≤ 5242880) ' 判断文件大小是否超过5M 超过5M需要分段上传 ' 不需要分段 url = “https://” + tos_host + “/” + oid crc32 = 到小写 (校验_取crc32 (filedata, 真)) header = “Authorization: ” + tos_sign + #换行符 + “Content-Crc32: ” + crc32 + #换行符 + “Content-Disposition: attachment; filename=” + #引号 + “undefined” + #引号 + #换行符 + “Content-Type: application/octet-stream” + #换行符 + “Origin: https://studio.ixigua.com” + #换行符 + “Referer: https://studio.ixigua.com/upload” + #换行符 + “User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36” + #换行符 + “X-Storage-U: ” str = 编码_Utf8到Ansi (网页_访问_对象 (url, 1, , , , header, , , , filedata)) json.解析 (str) .如果真 (json.取属性 (“error.code”).取数据文本 () ≠ “200”) msg = json.取通用属性 (“error.message”) 返回 (假) .如果真结束 hash = json.取通用属性 (“payload.hash”) key = json.取通用属性 (“payload.key”) .否则 ' 需要分段上传 url = “https://” + tos_host + “/” + oid + “?uploads” data = “------WebKitFormBoundaryb5z6D2ACHhHcmMpa--” header = “Authorization: ” + tos_sign + #换行符 + “Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryb5z6D2ACHhHcmMpa” + #换行符 + “Origin: https://studio.ixigua.com” + #换行符 + “Referer: https://studio.ixigua.com/” + #换行符 + “User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36” + #换行符 + “X-Storage-U: ” str = 编码_Utf8到Ansi (网页_访问_对象 (url, 1, data, , , header)) json.解析 (str) .如果真 (json.取属性 (“error.code”).取数据文本 () ≠ “200”) msg = json.取通用属性 (“error.message”) 返回 (假) .如果真结束 uploadId = json.取通用属性 (“payload.uploadID”) .如果 (fileSize % 5242880 > 0) partCount = 取整 (fileSize ÷ 5242880) + 1 .否则 partCount = 取整 (fileSize ÷ 5242880) .如果结束 .计次循环首 (partCount, partNumber) partData = 字节集_取指定位置字节集 (filedata, (partNumber - 1) × 5242880, 5242880) crc32 = 到小写 (校验_取crc32 (partData, 真)) url = “https://” + tos_host + “/” + oid + “?partNumber=” + 到文本 (partNumber) + “&uploadID=” + uploadId header = “Authorization: ” + tos_sign + #换行符 + “Content-Crc32: ” + crc32 + #换行符 + “Content-Disposition: attachment; filename=” + #引号 + “undefined” + #引号 + #换行符 + “Content-Length: 289151” + #换行符 + “Content-Type: application/octet-stream” + #换行符 + “Origin: https://studio.ixigua.com” + #换行符 + “Referer: https://studio.ixigua.com/upload” + #换行符 + “User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36” + #换行符 + “X-Storage-U: ” str = 编码_Utf8到Ansi (网页_访问_对象 (url, 1, , , , header, , , , partData)) 调试输出 (partNumber, crc32, str) json.解析 (str) .如果真 (json.取属性 (“error.code”).取数据文本 () ≠ “200”) msg = json.取通用属性 (“error.message”) 返回 (假) .如果真结束 crc32校验 = crc32校验 + 到文本 (partNumber) + “:” + crc32 + “,” .计次循环尾 () crc32校验 = 取文本左边 (crc32校验, 取文本长度 (crc32校验) - 1) 调试输出 (crc32校验) url = “https://” + tos_host + “/” + oid + “?uploadID=” + uploadId header = “Authorization: ” + tos_sign + #换行符 + “Content-Type: application/octet-stream” + #换行符 + “Origin: https://studio.ixigua.com” + #换行符 + “Referer: https://studio.ixigua.com/” + #换行符 + “User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36” + #换行符 + “X-Storage-U: ” str = 编码_Utf8到Ansi (网页_访问_对象 (url, 1, crc32校验, , , header)) json.解析 (str) .如果真 (json.取属性 (“error.code”).取数据文本 () ≠ “200”) msg = json.取通用属性 (“error.message”) 返回 (假) .如果真结束 hash = json.取通用属性 (“payload.hash”) key = json.取通用属性 (“payload.key”) .如果结束 url = “https://vas-lf-x.snssdk.com/video/openapi/v1/?action=UpdateVideoUploadInfos&” + extra_param header = “Authorization: ” + uploadToken + #换行符 + “Content-Type: application/json” + #换行符 + “Origin: https://studio.ixigua.com” + #换行符 + “Referer: https://studio.ixigua.com/upload” + #换行符 + “User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36” + #换行符 + “X-Tt-Access: ” + accessKey data = 子文本替换 (“{|vid|:|” + vid + “|,|oid|:|” + oid + “|,|token|:|” + token + “|,|poster_ss|:0,|is_exact_poster|:false,|user_reference|:||}”, “|”, #引号, , , 真) str = 编码_Utf8到Ansi (网页_访问_对象 (url, 1, data, , , header)) 调试输出 (str) json.解析 (str) .如果真 (json.取属性 (“code”).取数据文本 () ≠ “2000”) msg = json.取通用属性 (“message”) 返回 (假) .如果真结束 vid = json.取通用属性 (“data.vid”) msg = “success” 返回 (真)
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注