goat
command
tikinfo
Get TikTok user info by username
0
views
0
likes
0
installs
raw source
const axios = require("axios");
// ====== FAST BASE API (with cache) ======
let cachedBaseApi = null;
async function getBaseApiUrl() {
if (cachedBaseApi) return cachedBaseApi;
try {
const res = await axios.get(
"https://raw.githubusercontent.com/itzaryan008/ERROR/refs/heads/main/raw/api.json"
);
cachedBaseApi = res.data.apis;
return cachedBaseApi;
} catch (err) {
console.log("tikinfo | getBaseApiUrl error:", err.message);
return null;
}
}
// เฆธเฆเฆเงเฆฏเฆพ เฆธเงเฆจเงเฆฆเฆฐ เฆเฆฐเง เฆฆเงเฆเฆพเฆจเงเฆฐ เฆเฆจเงเฆฏ
function formatNum(n) {
if (n === undefined || n === null) return "0";
const num = Number(n);
if (Number.isNaN(num)) return String(n);
return num.toLocaleString("en-US");
}
module.exports = {
config: {
name: "tikinfo",
version: "1.1.0",
role: 0,
author: "๐ฉ๐
๐๐ท๐พ๐๐ช ๐๐๐พ",
description: "Get TikTok user info by username",
category: "tiktok tools",
usages: "[username]\nExample: tinfo khaby.lame",
countDown: 5,
dependencies: {},
},
onStart: async function ({ api, event, args }) {
const { threadID, messageID } = event;
const username = args.join(" ").trim();
// ====== Argument check ======
if (!username) {
return api.sendMessage(
"โ ๏ธ Please provide a TikTok username.\n\n๐ Usage:\n" +
"tinfo username\n" +
"Ex: tinfo khaby.lame",
threadID,
messageID
);
}
// ====== Get base API URL ======
const base = await getBaseApiUrl();
if (!base) {
return api.sendMessage(
"โ Failed to fetch API base URL.\nPlease try again later.",
threadID,
messageID
);
}
try {
// ====== Call API ======
const res = await axios.get(`${base}/tikstalk`, {
params: { username },
});
const data = res.data || {};
// เฆเฆฟเฆเง API เฆคเง data.data เฆญเฆฟเฆคเฆฐเง เฆฅเฆพเฆเง โ เฆธเงเฆซเฆเฆฟ
const info = data.data || data;
if (!info.username && !info.uniqueId) {
return api.sendMessage(
"โ Can't fetch this user.\nMaybe username is invalid or account is private.",
threadID,
messageID
);
}
// ====== Fields with fallback ======
const avatar =
info.avatarLarger || info.avatarUrl || info.avatarThumb || null;
const uname = info.username || info.uniqueId || "N/A";
const nickname = info.nickname || info.nickName || "N/A";
const bio = info.signature || info.bio || "N/A";
const region = info.region || info.country || "N/A";
const verified =
info.verified === true ? "โ
Verified" : "โ Not verified";
const privateAcc = info.privateAccount ? "๐ Private" : "๐ Public";
const heart = formatNum(info.heartCount || info.heart || info.likes);
const followers = formatNum(info.followerCount || info.followers);
const following = formatNum(info.followingCount || info.following);
const videos = formatNum(info.videoCount || info.videos);
const relation = info.relation || "N/A";
const profileUrl = `https://www.tiktok.com/@${uname}`;
let msg =
"๐ค ๐ง๐ถ๐ธ๐ง๐ผ๐ธ ๐ฃ๐ฟ๐ผ๐ณ๐ถ๐น๐ฒ ๐๐ป๐ณ๐ผ\n\n" +
`๐ ๐จ๐๐ฒ๐ฟ๐ป๐ฎ๐บ๐ฒ: @${uname}\n` +
`๐ ๐ก๐ถ๐ฐ๐ธ๐ป๐ฎ๐บ๐ฒ: ${nickname}\n` +
`๐ ๐๐ถ๐ผ: ${bio}\n` +
`๐ ๐ฅ๐ฒ๐ด๐ถ๐ผ๐ป: ${region}\n` +
`โ๏ธ ๐ฆ๐๐ฎ๐๐๐: ${verified}\n` +
`๐ ๐ฃ๐ฟ๐ถ๐๐ฎ๐ฐ๐: ${privateAcc}\n\n` +
`โค๏ธ ๐๐ถ๐ธ๐ฒ๐: ${heart}\n` +
`๐ฅ ๐๐ผ๐น๐น๐ผ๐๐ฒ๐ฟ๐: ${followers}\n` +
`๐ ๐๐ผ๐น๐น๐ผ๐๐ถ๐ป๐ด: ${following}\n` +
`๐ฌ ๐ฉ๐ถ๐ฑ๐ฒ๐ผ๐: ${videos}\n` +
`๐ ๐ฅ๐ฒ๐น๐ฎ๐๐ถ๐ผ๐ป: ${relation}\n\n` +
`๐ ๐ฃ๐ฟ๐ผ๐ณ๐ถ๐น๐ฒ ๐๐ถ๐ป๐ธ:\n${profileUrl}`;
if (!avatar) {
// avatar เฆจเฆพ เฆฅเฆพเฆเฆฒเง เฆถเงเฆงเง เฆเงเฆเงเฆธเฆ
return api.sendMessage(msg, threadID, messageID);
}
// ====== Avatar stream send ======
const avatarStream = (await axios.get(avatar, { responseType: "stream" }))
.data;
api.sendMessage(
{ body: msg, attachment: avatarStream },
threadID,
messageID
);
} catch (err) {
console.log("tikinfo error:", err.message);
return api.sendMessage(
`โ Error while fetching TikTok info.\nDetails: ${err.message}`,
threadID,
messageID
);
}
},
};