UNPKG

@tobyg74/tiktok-api-dl

Version:

Scraper for downloading media in the form of videos, images and audio from Tiktok. Also for stalking Tiktok Users

96 lines (95 loc) 4.31 kB
"use strict"; const tiktokApi_1 = require("./utils/downloader/tiktokApi"); const ssstik_1 = require("./utils/downloader/ssstik"); const musicalDown_1 = require("./utils/downloader/musicalDown"); const getProfile_1 = require("./utils/get/getProfile"); const userSearch_1 = require("./utils/search/userSearch"); const liveSearch_1 = require("./utils/search/liveSearch"); const getComments_1 = require("./utils/get/getComments"); const getUserPosts_1 = require("./utils/get/getUserPosts"); const getUserLiked_1 = require("./utils/get/getUserLiked"); const videoSearch_1 = require("./utils/search/videoSearch"); const constants_1 = require("./constants"); const constants_2 = require("./constants"); const validator_1 = require("./utils/validator"); const handleError = (message) => { return { status: "error", message }; }; module.exports = { Downloader: async (url, options) => { const version = options?.version?.toLowerCase(); switch (version) { case constants_1.DOWNLOADER_VERSIONS.V1: return (await (0, tiktokApi_1.TiktokAPI)(url, options?.proxy, options?.showOriginalResponse)); case constants_1.DOWNLOADER_VERSIONS.V2: return (await (0, ssstik_1.SSSTik)(url, options?.proxy)); case constants_1.DOWNLOADER_VERSIONS.V3: return (await (0, musicalDown_1.MusicalDown)(url, options?.proxy)); default: return (await (0, tiktokApi_1.TiktokAPI)(url, options?.proxy, options?.showOriginalResponse)); } }, Search: async (keyword, options) => { try { const type = options?.type?.toLowerCase(); if (!type || !Object.values(constants_1.SEARCH_TYPES).includes(type)) { throw new Error(constants_2.ERROR_MESSAGES.INVALID_SEARCH_TYPE); } switch (type) { case constants_1.SEARCH_TYPES.USER: const userResults = await (0, userSearch_1.SearchUser)(keyword, options.cookie, options?.page, options?.proxy); return { ...userResults, result: userResults.result?.map((user) => ({ type: "user", ...user })) }; case constants_1.SEARCH_TYPES.LIVE: const liveResults = await (0, liveSearch_1.SearchLive)(keyword, options.cookie, options?.page, options?.proxy); return { ...liveResults, result: liveResults.result?.map((live) => ({ type: "live", ...live })) }; case constants_1.SEARCH_TYPES.VIDEO: const videoResults = await (0, videoSearch_1.SearchVideo)(keyword, options.cookie, options?.page, options?.proxy); return { ...videoResults, result: videoResults.result?.map((video) => ({ type: "video", ...video })) }; default: throw new Error(constants_2.ERROR_MESSAGES.INVALID_SEARCH_TYPE); } } catch (error) { return { status: "error", message: error.message }; } }, StalkUser: async (username, options) => { return await (0, getProfile_1.StalkUser)(username, options?.cookie, options?.proxy); }, GetVideoComments: async (url, options) => { return await (0, getComments_1.getComments)(url, options?.proxy, options?.commentLimit); }, GetUserPosts: async (username, options) => { return await (0, getUserPosts_1.getUserPosts)(username, options?.proxy, options?.postLimit); }, GetUserLiked: async (username, options) => { if (!(0, validator_1.validateCookie)(options?.cookie)) { return handleError(constants_2.ERROR_MESSAGES.COOKIE_REQUIRED); } return await (0, getUserLiked_1.getUserLiked)(username, options.cookie, options?.proxy, options?.postLimit); } };