/** * JSON1视频解析器 * * 功能描述: * 这是一个基于第三方API的视频解析器,用于解析各大视频平台的播放链接。 * 支持爱奇艺、腾讯视频、优酷等主流视频平台的视频解析。 * * 主要功能: * 1. 视频链接解析 - 将平台视频页面链接转换为可播放的直链 * 2. 多平台支持 - 支持爱奇艺、腾讯、优酷等主流视频平台 * 3. 异步处理 - 使用异步方式调用第三方解析API * 4. 错误处理 - 提供超时和异常处理机制 * * 支持的视频平台: * - 爱奇艺 (qiyi, imgo, 爱奇艺, 奇艺) * - 腾讯视频 (qq, qq 预告及花絮, 腾讯) * - 优酷 (youku, 优酷) * * API接口: * GET /parse/json1?url={视频页面URL} * * 使用示例: * http://localhost:5757/parse/json1?url=https://v.qq.com/x/cover/mzc00200vkqr54u/v4100qp69zl.html * * 第三方API: * - 解析服务:https://cdnsrc.cdnapi.top/json/ * - 超时设置:8秒 * * @author drpy-node * @version 1.0.0 */ // 示例调用URL: // http://localhost:5757/parse/json1?url=https://v.qq.com/x/cover/mzc00200vkqr54u/v4100qp69zl.html // 导入请求工具库 const {requestJson} = $.require('./_lib.request.js') /** * 解析器配置对象 * 定义了解析器的基本信息和支持的平台标识 */ const jx = { type: 1, // 解析器类型:1表示JSON解析器 ext: { 'flag': [ // 支持的视频平台标识列表 'qiyi', // 爱奇艺标识1 'imgo', // 爱奇艺标识2 '爱奇艺', // 爱奇艺中文标识 '奇艺', // 奇艺简称 'qq', // 腾讯视频标识 'qq 预告及花絮', // 腾讯视频预告片标识 '腾讯', // 腾讯中文标识 'youku', // 优酷英文标识 '优酷', // 优酷中文标识 ] }, header: { 'User-Agent': MOBILE_UA, // 默认使用移动端User-Agent }, // 添加url属性直接暴露api,不走系统。建议web解析才写这个属性,json解析隐藏起来 // url: 'https://cdnsrc.cdnapi.top/json/?url=', }; /** * 懒加载解析函数 * 异步调用第三方API解析视频链接 * * @param {string} input - 待解析的视频页面URL * @param {Object} params - 解析参数(当前未使用) * @returns {Promise} 解析后的视频播放链接 * * @example * const playUrl = await lazy('https://v.qq.com/x/cover/mzc00200vkqr54u/v4100qp69zl.html'); * * @throws {Error} 当API请求失败或超时时抛出异常 */ async function lazy(input, params) { log('input:', input); // 记录输入的视频URL let headers = {'User-Agent': PC_UA}; // 使用PC端User-Agent发送请求 let timeout = 8000; // 设置请求超时时间为8秒 // 调用第三方解析API获取视频直链 let obj = await requestJson('https://cdnsrc.cdnapi.top/json/?url=' + input, {headers, timeout}); return obj.url // 返回解析后的视频播放链接 }