tb-tiktok-dl
Version:
Scraper for downloading media in the form of videos, images and audio from Tiktok. Also for stalking Tiktok Users
84 lines (83 loc) • 3.47 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SearchUser = exports.generateURLXbogus = void 0;
const axios_1 = __importDefault(require("axios"));
const api_1 = require("../../constants/api");
const params_1 = require("../../constants/params");
const https_proxy_agent_1 = require("https-proxy-agent");
const socks_proxy_agent_1 = require("socks-proxy-agent");
const xbogus_1 = __importDefault(require("../../../helper/xbogus"));
const userAgent = "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/111.0";
const generateURLXbogus = (username, page) => {
const url = "https://www.tiktok.com/api/search/user/full/?" +
(0, params_1._userSearchParams)(username, page);
const xbogusParams = (0, xbogus_1.default)(url, userAgent);
const urlXbogus = "https://www.tiktok.com/api/search/user/full/?" +
(0, params_1._userSearchParams)(username, page, xbogusParams);
return urlXbogus;
};
exports.generateURLXbogus = generateURLXbogus;
const SearchUser = (username, cookie, page = 1, proxy) => new Promise(async (resolve) => {
if (!cookie) {
return resolve({
status: "error",
message: "Cookie is required!"
});
}
(0, axios_1.default)((0, exports.generateURLXbogus)(username, page), {
method: "GET",
headers: {
"User-Agent": userAgent,
cookie: typeof cookie === "object"
? cookie.map((v) => `${v.name}=${v.value}`).join("; ")
: cookie
},
httpsAgent: (proxy &&
(proxy.startsWith("http") || proxy.startsWith("https")
? new https_proxy_agent_1.HttpsProxyAgent(proxy)
: proxy.startsWith("socks")
? new socks_proxy_agent_1.SocksProxyAgent(proxy)
: undefined)) ||
undefined
})
.then(({ data }) => {
if (data.status_code === 2483)
return resolve({ status: "error", message: "Invalid cookie!" });
if (data.status_code !== 0)
return resolve({
status: "error",
message: data.status_msg ||
"An error occurred! Please report this issue to the developer."
});
if (!data.user_list)
return resolve({ status: "error", message: "User not found!" });
const result = [];
for (let i = 0; i < data.user_list.length; i++) {
const user = data.user_list[i];
result.push({
uid: user.user_info.uid,
username: user.user_info.unique_id,
nickname: user.user_info.nickname,
signature: user.user_info.signature,
followerCount: user.user_info.follower_count,
avatarThumb: user.user_info.avatar_thumb,
isVerified: user.custom_verify !== "",
secUid: user.user_info.sec_uid,
url: `${api_1._tiktokurl}/@${user.user_info.unique_id}`
});
}
resolve({
status: "success",
result,
page,
totalResults: data.result.length
});
})
.catch((e) => {
resolve({ status: "error", message: e.message });
});
});
exports.SearchUser = SearchUser;