From 732c0d4c146d7ed743b5902fbd392717e2df5692 Mon Sep 17 00:00:00 2001 From: PRAS Date: Mon, 2 Jun 2025 00:20:42 +0600 Subject: [PATCH] fix(v3): repair musicalDown broken logics --- src/services/downloadManager.ts | 5 +++-- src/utils/downloader/musicalDown.ts | 15 +++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/services/downloadManager.ts b/src/services/downloadManager.ts index e9eb1fe..b991556 100644 --- a/src/services/downloadManager.ts +++ b/src/services/downloadManager.ts @@ -48,7 +48,8 @@ async function handleMediaDownload( const { result } = data const author = result.author - const username = version === "v1" ? author.username : author.nickname + const username = + version === "v1" ? author.username : version === "v2" ? author.nickname : "" Logger.success( `${ @@ -63,7 +64,7 @@ async function handleMediaDownload( version === "v1" ? result.video.downloadAddr[0] : version === "v2" - ? result.video + ? result.video.playAddr[0] : result.videoHD const videoName = `ttdl_${username}_${Date.now()}.mp4` diff --git a/src/utils/downloader/musicalDown.ts b/src/utils/downloader/musicalDown.ts index f3c0d48..6f6fb42 100644 --- a/src/utils/downloader/musicalDown.ts +++ b/src/utils/downloader/musicalDown.ts @@ -1,19 +1,14 @@ import Axios from "axios" import { load } from "cheerio" -type CheerioAPI = ReturnType import { MusicalDownResponse, - GetMusicalDownMusic, GetMusicalDownReuqest } from "../../types/downloader/musicaldown" -import { - _musicaldownapi, - _musicaldownmusicapi, - _musicaldownurl -} from "../../constants/api" +import { _musicaldownapi, _musicaldownurl } from "../../constants/api" import { HttpsProxyAgent } from "https-proxy-agent" import { SocksProxyAgent } from "socks-proxy-agent" import { ERROR_MESSAGES } from "../../constants" +type CheerioAPI = ReturnType /** Constants */ const TIKTOK_URL_REGEX = @@ -59,10 +54,10 @@ const isValidUrl = (url: string): boolean => { } } -const extractRequestForm = ($: CheerioAPI): RequestForm => { +const extractRequestForm = ($: CheerioAPI, url: string): RequestForm => { const input = $("div > input").map((_, el) => $(el)) return { - [input.get(0).attr("name") || ""]: input.get(0).attr("value") || "", + [input.get(0).attr("name") || ""]: input.get(0).attr("value") || url, [input.get(1).attr("name") || ""]: input.get(1).attr("value") || "", [input.get(2).attr("name") || ""]: input.get(2).attr("value") || "" } @@ -170,7 +165,7 @@ const getRequest = async ( } const $ = load(data) - const request = extractRequestForm($) + const request = extractRequestForm($, url) return { status: "success",