diff --git a/ali_ecc.js b/ali_ecc.js index 95d51fb..afa11ed 100644 --- a/ali_ecc.js +++ b/ali_ecc.js @@ -267,4 +267,72 @@ function getSubtitle(share_id,sub_file_id,share_pwd){ log('获取字幕失败>'+e.message); } return ""; +} + +function aliMyPlayUrl(file_id) { + try { + function getNowTime() { + const yy = new Date().getFullYear() + const MM = (new Date().getMonth() + 1) < 10 ? '0' + (new Date().getMonth() + 1) : (new Date().getMonth() + 1) + const dd = new Date().getDate() < 10 ? '0' + new Date().getDate() : new Date().getDate() + const HH = new Date().getHours() < 10 ? '0' + new Date().getHours() : new Date().getHours() + const mm = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes() : new Date().getMinutes() + return yy + '' + dd + '' + HH + '' + MM + '' + mm + } + + let authorization = 'Bearer ' + userinfo.access_token; + let deviceId = userinfo.device_id; + let userId = userinfo.user_id; + let drive_id = userinfo.default_drive_id; + let signature; + let public_key; + let getaliecc = JSON.parse(request('http://124.221.241.174:87/api', { body: 'did=' + deviceId + '&uid=' + userId + '&token=' + md5(getNowTime()), method: 'POST', timeout: 3000 })); + if (getaliecc.code == 200) { + signature = getaliecc.sign; + public_key = getaliecc.key; + } + /* + let a = justTestSign('5dde4e1bdf9e4966b387ba58f4b3fdc3',deviceId,userId); + signature = a.split('##')[0]; + public_key = a.split('##')[1]; + */ + headers['authorization'] = authorization; + headers['x-device-id'] = deviceId; + headers['x-signature'] = signature; + let data = { + "deviceName": "Edge浏览器", + "modelName": "Windows网页版", + "pubKey": public_key, + } + let aliyunUrl = []; + if (signature && public_key) { + let req = JSON.parse(request("https://api.aliyundrive.com/users/v1/users/device/create_session", { headers: headers, body: data, timeout: 3000 })); + if (req.success) { + data = { "drive_id": drive_id, "file_id": file_id, "category": "live_transcoding", "template_id": "", "get_subtitle_info": true } + let json = JSON.parse(request('https://api.aliyundrive.com/v2/file/get_video_preview_play_info', { headers: headers, body: data, method: 'POST', timeout: 3000 })); + aliyunUrl = json.video_preview_play_info.live_transcoding_task_list; + aliyunUrl.reverse(); + } + } + let urls = []; + let names = []; + let heads = []; + if (aliyunUrl.length > 0) { + aliyunUrl.forEach((item) => { + urls.push(item.url + "#pre#"); + names.push(transcoding[item.template_id] ? transcoding[item.template_id] : item.template_height); + heads.push({ 'Referer': 'https://www.aliyundrive.com/' }); + }) + } else { + log('未获取阿里转码播放地址,建议重进软件再试一次') + } + return { + urls: urls, + names: names, + headers: heads + }; + } catch (e) { + log('获取我的云盘播放地址失败>' + e.message); + return { message: '获取我的云盘播放地址失败>' + e.message }; + } } \ No newline at end of file