From 0aaacc229b87a23f108c00bf24a379ac4b0916e8 Mon Sep 17 00:00:00 2001 From: zhiyu1998 <542716863@qq.com> Date: Mon, 30 Sep 2024 14:49:41 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20=E6=B7=BB=E5=8A=A0dy?= =?UTF-8?q?=E7=9B=B4=E6=92=AD=E8=A7=A3=E6=9E=90=20[beta]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/tools.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/apps/tools.js b/apps/tools.js index 2d05215..3e10502 100644 --- a/apps/tools.js +++ b/apps/tools.js @@ -356,9 +356,30 @@ export class tools extends plugin { // 直播数据逻辑 if (douUrl.includes("live")) { const item = await data.data.data?.[0]; - const { title, cover, user_count_str } = item; + const { title, cover, user_count_str, stream_url } = item; const dySendContent = `${this.identifyPrefix}识别:抖音直播,${title}` e.reply([segment.image(cover?.url_list?.[0]), dySendContent, `\n🏄‍♂️在线人数:${user_count_str}人正在观看`]); + // 下载10s的直播流 + const outputFilePath = `${this.getCurDownloadPath(e)}/stream_10s.flv` + const file = fs.createWriteStream(outputFilePath); + axios.get(stream_url?.flv_pull_url?.FULL_HD1, { + responseType: 'stream' + }).then(response => { + logger.info("正在下载直播流..."); + // 将流数据写入文件 + response.data.pipe(file); + + // 设置 10 秒后停止下载 + setTimeout(() => { + logger.info('直播下载10秒钟到,停止下载。'); + response.data.destroy(); // 销毁流 + e.reply(segment.video(outputFilePath)); + file.close(); // 关闭文件流 + }, 10000); // 10秒 = 10000毫秒 + }).catch(error => { + console.error('下载失败:', error.message); + fs.unlink(outputFilePath, () => {}); // 下载失败时删除文件 + }); return; } const item = await data.aweme_detail;