From a56bc8c9d9bedd42305c92a7bb15edb3ecad390a Mon Sep 17 00:00:00 2001 From: Tobi Saputra Date: Tue, 3 Jun 2025 17:11:46 +0700 Subject: [PATCH] fix handle downloader function --- .gitignore | 1 + src/lib/logger.ts | 8 ++++---- src/services/downloadManager.ts | 2 +- src/services/tiktokService.ts | 13 +++++++++++-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 65872b4..89e8678 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ pnpm-lock.yaml package-lock.json yarn.lock lib +!src/lib test.js bun.lockb tsconfig.tsbuildinfo diff --git a/src/lib/logger.ts b/src/lib/logger.ts index eeb392c..cf720be 100644 --- a/src/lib/logger.ts +++ b/src/lib/logger.ts @@ -2,19 +2,19 @@ import chalk from "chalk" export class Logger { static success(message: string): void { - console.log(chalk.green("✓ " + message)) + console.log(chalk.green("✓ " + message)) } static error(message: string): void { - console.error(chalk.red("✗ " + message)) + console.error(chalk.red("✗ " + message)) } static info(message: string): void { - console.log(chalk.blue("ℹ " + message)) + console.log(chalk.blue("ℹ " + message)) } static warning(message: string): void { - console.log(chalk.yellow("⚠ " + message)) + console.log(chalk.yellow("⚠ " + message)) } static result(message: string, color = chalk.cyan): void { diff --git a/src/services/downloadManager.ts b/src/services/downloadManager.ts index 6393c7a..eef4bfd 100644 --- a/src/services/downloadManager.ts +++ b/src/services/downloadManager.ts @@ -61,7 +61,7 @@ async function handleMediaDownload( case "video": { const videoUrl = version === "v1" - ? result.video.downloadAddr[0] + ? result.video.playAddr[0] : version === "v2" ? result.video.playAddr[0] : result.videoHD diff --git a/src/services/tiktokService.ts b/src/services/tiktokService.ts index 8943a16..cd50a4b 100644 --- a/src/services/tiktokService.ts +++ b/src/services/tiktokService.ts @@ -5,6 +5,7 @@ import { userAgent, webUserAgent } from "../constants/headers" import qs from "qs" import fs from "fs" import { createCipheriv } from "crypto" +import path from "path" export class TiktokService { /** @@ -82,6 +83,7 @@ export class TiktokService { const baseUrl = `${TiktokService.BASE_URL}api/search/user/full/?` const queryParams = _userSearchParams(username, page) const xbogusParams = xbogus(`${baseUrl}${queryParams}`, userAgent) + console.log(`${baseUrl}${_userSearchParams(username, page, xbogusParams)}`) return `${baseUrl}${_userSearchParams(username, page, xbogusParams)}` } @@ -102,11 +104,18 @@ export class TiktokService { } } + private static readonly FILE_PATH = path.join(__dirname, "../../helper") private static readonly BASE_URL = "https://www.tiktok.com/" private static readonly AES_KEY = "webapp1.0+202106" private static readonly AES_IV = "webapp1.0+202106" - private signaturejs = fs.readFileSync("./helper/signature.js", "utf-8") - private webmssdk = fs.readFileSync("./helper/webmssdk.js", "utf-8") + private signaturejs = fs.readFileSync( + path.join(TiktokService.FILE_PATH, "signature.js"), + "utf-8" + ) + private webmssdk = fs.readFileSync( + path.join(TiktokService.FILE_PATH, "webmssdk.js"), + "utf-8" + ) private resourceLoader = new ResourceLoader({ userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.35"