Selamat Datang di
Cx99 Source Code
Platform berbagi snippet dan modul kode pemrograman untuk developer.
Stalker
JavaScript
Mengambil informasi data profile user tiktok menggunakan username
/**
* Judul : TikTok Stalker
* Base URL : https://www.tiktok.com
* Author : Cx99 - t.me/exploit99
* Deskripsi : Mengambil informasi data profile user tiktok menggunakan username
* Channel : https://whatsapp.com/channel/0029VbCSF8sA89MopCVOYW06
*/
const axios = require('axios');
const cheerio = require('cheerio');
async function stalkTikTok(username) {
username = username.replace(/^@/, '');
const url = `https://www.tiktok.com/@${username}`;
const userAgent = 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36';
try {
const response = await axios.get(url, {
headers: {
'User-Agent': userAgent,
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
}
});
const $ = cheerio.load(response.data);
const scriptData = $('#__UNIVERSAL_DATA_FOR_REHYDRATION__').text();
if (!scriptData) {
return {
status: false,
message: "Gagal memproses data: Data rehydration tidak ditemukan (mungkin terblokir WAF)."
};
}
const data = JSON.parse(scriptData);
if (!data['__DEFAULT_SCOPE__'] || !data['__DEFAULT_SCOPE__']['webapp.user-detail']) {
return {
status: false,
message: "Data user tidak ditemukan. Pastikan username TikTok yang dimasukkan benar."
};
}
const userDetail = data['__DEFAULT_SCOPE__']['webapp.user-detail'];
if (userDetail.statusCode !== 0 || !userDetail.userInfo) {
return {
status: false,
message: "User tidak ditemukan atau akun di-private."
};
}
const user = userDetail.userInfo.user;
const stats = userDetail.userInfo.stats;
return {
status: true,
data: {
username: user.uniqueId,
nickname: user.nickname,
avatar: user.avatarLarger || user.avatarMedium,
signature: user.signature,
verified: user.verified,
stats: {
followers: stats.followerCount,
following: stats.followingCount,
video_upload: stats.videoCount,
likes: stats.heartCount,
friends: stats.friendCount
},
profile_url: url
}
};
} catch (error) {
return {
status: false,
message: `Gagal memproses data: ${error.message}`
};
}
}
module.exports = stalkTikTok;
if (require.main === module) {
const args = process.argv.slice(2);
if (args.length === 0) {
console.log("? Penggunaan: node stalktt.js <username>");
console.log("? Contoh: node stalktt.js asololepisanwan");
process.exit(1);
}
const username = args[0];
stalkTikTok(username)
.then(res => console.log(JSON.stringify(res, null, 2)))
.catch(err => console.error(err));
}
Cx99 • 3 views
Stalker
JavaScript
Mengambil informasi data profile user Threads
/**
* Judul : Threads Stalker
* Base URL : https://www.threads.net
* Author : Cx99 - t.me/exploit99
* Deskripsi : Mengambil informasi data profile user Threads
* Channel : https://whatsapp.com/channel/0029VbCSF8sA89MopCVOYW06
*/
const axios = require('axios');
const cheerio = require('cheerio');
async function stalkThreads(username) {
username = username.replace(/^@/, '');
const url = `https://www.threads.net/@${username}`;
// Headers lengkap untuk bypass blokir dari server
const headers = {
"authority": "www.threads.net",
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"accept-language": "en-US,en;q=0.9",
"sec-ch-ua": "\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Google Chrome\";v=\"114\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Windows\"",
"sec-fetch-dest": "document",
"sec-fetch-mode": "navigate",
"sec-fetch-site": "none",
"sec-fetch-user": "?1",
"upgrade-insecure-requests": "1",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
};
try {
const response = await axios.get(url, { headers });
const html = response.data;
const $ = cheerio.load(html);
let userData = null;
$('script[type="application/json"]').each((i, el) => {
const text = $(el).html();
// Data profile Threads tersimpan di script dengan follower_count
if (text && text.includes('follower_count')) {
try {
// Ekstraksi data menggunakan regex karena JSON aslinya sangat besar (Relay cache)
const usernameMatch = text.match(/"username":"([^"]+)"/);
const pkMatch = text.match(/"pk":"([^"]+)"/);
const hdPpMatch = text.match(/"hd_profile_pic_version":\{"url":"([^"]+)"/);
const ppMatch = text.match(/"profile_pic_url":"([^"]+)"/);
const nameMatch = text.match(/"full_name":"([^"]*)"/);
const followersMatch = text.match(/"follower_count":(\d+)/);
const bioMatch = text.match(/"biography":("(?:[^"\\]|\\.)*")/);
const verifiedMatch = text.match(/"is_verified":(true|false)/);
if (usernameMatch) {
let bio = "";
if (bioMatch) {
try {
bio = JSON.parse(bioMatch[1]);
} catch(e) {
bio = bioMatch[1];
}
}
let avatar = hdPpMatch ? hdPpMatch[1] : (ppMatch ? ppMatch[1] : "");
try { avatar = JSON.parse(`"${avatar}"`); } catch(e) {}
userData = {
username: usernameMatch[1],
id: pkMatch ? pkMatch[1] : null,
full_name: nameMatch ? JSON.parse(`"${nameMatch[1]}"`) : null,
profile_pic: avatar,
followers: followersMatch ? parseInt(followersMatch[1]) : 0,
biography: bio,
is_verified: verifiedMatch ? verifiedMatch[1] === 'true' : false,
profile_url: url
};
}
} catch (e) {
// Abaikan error parsing per chunk
}
}
});
if (!userData) {
return {
status: false,
message: "Data user tidak ditemukan. Pastikan username valid."
};
}
return {
status: true,
data: userData
};
} catch (error) {
return {
status: false,
message: `Gagal memproses data: ${error.message}`
};
}
}
module.exports = stalkThreads;
if (require.main === module) {
const args = process.argv.slice(2);
if (args.length === 0) {
console.log("? Penggunaan: node stalkthreads.js <username>");
console.log("? Contoh: node stalkthreads.js clarissadaily.ig");
process.exit(1);
}
const username = args[0];
stalkThreads(username)
.then(res => console.log(JSON.stringify(res, null, 2)))
.catch(err => console.error(err));
}
Cx99 • 3 views
Stalker
JavaScript
Mengambil data profile channel YouTube
/**
* Judul : YouTube Stalker
* Base URL : https://www.youtube.com
* Author : Cx99 - t.me/exploit99
* Deskripsi : Mengambil data profile channel YouTube
* Channel : https://whatsapp.com/channel/0029VbCSF8sA89MopCVOYW06
*/
const axios = require('axios');
const cheerio = require('cheerio');
async function stalkYT(username) {
if (!username.startsWith('@')) {
username = '@' + username;
}
const url = `https://www.youtube.com/${username}`;
const headers = {
"accept-language": "en-US,en;q=0.9",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
};
try {
const response = await axios.get(url, { headers });
const html = response.data;
const match = html.match(/var ytInitialData = ({.*?});<\/script>/);
if (!match) {
return {
status: false,
message: "Gagal menemukan data ytInitialData. Pastikan username YouTube valid."
};
}
const data = JSON.parse(match[1]);
const metadata = data.metadata.channelMetadataRenderer;
const channelId = metadata.externalId;
const channelUrl = metadata.channelUrl;
const title = metadata.title;
const description = metadata.description;
const avatar = metadata.avatar.thumbnails[metadata.avatar.thumbnails.length - 1].url;
let banner = "";
function findKey(obj, key) {
let result = null;
function search(o) {
if (o && typeof o === 'object') {
if (o[key] !== undefined) {
result = o[key];
return true;
}
for (let k in o) {
if (search(o[k])) return true;
}
}
return false;
}
search(obj);
return result;
}
const bannerImg = findKey(data.header, 'imageBannerViewModel');
if (bannerImg && bannerImg.image && bannerImg.image.sources) {
banner = bannerImg.image.sources[bannerImg.image.sources.length - 1].url;
}
let subscribers = "0";
let videos = "0";
const strData = JSON.stringify(data.header);
const subMatch = strData.match(/"content":"([^"]+ subscribers)"/i);
if (subMatch) {
subscribers = subMatch[1];
} else {
const subMatchID = strData.match(/"content":"([^"]+ subscriber)"/i);
if (subMatchID) subscribers = subMatchID[1];
}
const vidMatch = strData.match(/"content":"([^"]+ videos?)"/i);
if (vidMatch) {
videos = vidMatch[1];
}
return {
status: true,
data: {
id: channelId,
username: username,
title: title,
avatar: avatar,
banner: banner,
subscribers: subscribers,
videos: videos,
description: description,
channel_url: channelUrl
}
};
} catch (error) {
return {
status: false,
message: `Gagal memproses data: ${error.message}`
};
}
}
module.exports = stalkYT;
if (require.main === module) {
const args = process.argv.slice(2);
if (args.length === 0) {
console.log("? Penggunaan: node stalkyt.js <username>");
console.log("? Contoh: node stalkyt.js @kingronal21");
process.exit(1);
}
const username = args[0];
stalkYT(username)
.then(res => console.log(JSON.stringify(res, null, 2)))
.catch(err => console.error(err));
}
Cx99 • 3 views
Stalker
JavaScript
Mengambil informasi data profile user Twitter
/**
* Judul : X (Twitter) Stalker
* Base URL : https://x.com
* Author : Cx99 - t.me/exploit99
* Deskripsi : Mengambil informasi data profil user X
* Channel : https://whatsapp.com/channel/0029VbCSF8sA89MopCVOYW06
*/
const axios = require('axios');
const cheerio = require('cheerio');
async function stalkX(username) {
username = username.replace(/^@/, '');
const url = `https://x.com/${username}`;
const headers = {
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
"accept-language": "en-US,en;q=0.9",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
"sec-fetch-dest": "document",
"sec-fetch-mode": "navigate",
"sec-fetch-site": "none",
"sec-fetch-user": "?1",
"upgrade-insecure-requests": "1"
};
try {
const response = await axios.get(url, { headers });
const html = response.data;
const $ = cheerio.load(html);
let profile = {
username: username,
name: "",
description: "",
avatar: "",
banner: "",
posts: "0",
joined: "",
followers: 0,
following: 0,
profile_url: url
};
$('meta').each((i, el) => {
const name = $(el).attr('name') || $(el).attr('property');
const content = $(el).attr('content');
if (name === 'profile:first_name') profile.name = content;
if (name === 'description') profile.description = content;
if (name === 'og:image') {
profile.avatar = content;
profile.avatar_hd = content.replace('_200x200', '').replace('_normal', '');
}
if (name === 'twitter:image' && content.includes('profile_banners')) {
profile.banner = content;
profile.banner_hd = content + "/1500x500";
}
if (name === 'twitter:data1') profile.posts = content;
if (name === 'twitter:data2') profile.joined = content;
});
const folMatch = html.match(/followers:(\d+),following:(\d+)/);
if (folMatch) {
profile.followers = parseInt(folMatch[1]);
profile.following = parseInt(folMatch[2]);
}
if (!profile.name && profile.followers === 0) {
return {
status: false,
message: "Data user tidak ditemukan. Pastikan username valid."
};
}
return {
status: true,
data: profile
};
} catch (error) {
return {
status: false,
message: `Gagal memproses data: ${error.message}`
};
}
}
module.exports = stalkX;
if (require.main === module) {
const args = process.argv.slice(2);
if (args.length === 0) {
console.log("? Penggunaan: node stalkx.js <username>");
console.log("? Contoh: node stalkx.js mrbeast");
process.exit(1);
}
const username = args[0];
stalkX(username)
.then(res => console.log(JSON.stringify(res, null, 2)))
.catch(err => console.error(err));
}
Cx99 • 2 views
Stalker
JavaScript
Mengambil informasi user lewat username instagram
/**
* Judul : Instagram Stalker
* Base URL : https://igwatcher.com
* Author : Cx99 - t.me/exploit99
* Deskripsi : Mengambil informasi profil, post, reels, stories, highlights dan tagged Instagram
* Channel : https://whatsapp.com/channel/0029VbCSF8sA89MopCVOYW06
*/
'use strict'
const BASE = 'https://igwatcher.com'
const headers = {
'user-agent': 'Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36',
'accept': 'application/json, text/plain, */*',
'accept-language': 'en-US,en;q=0.9',
'referer': 'https://igwatcher.com/',
'origin': 'https://igwatcher.com'
}
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms))
function extractUsername(input) {
const raw = input.trim()
.replace(/^@/, '')
.replace(/^https?:\/\/(www\.)?instagram\.com\//i, '')
.replace(/^https?:\/\/instagr\.am\//i, '')
.replace(/\/$/, '')
.split('/')[0]
.split('?')[0]
if (!/^[a-zA-Z0-9._]{1,30}$/.test(raw)) {
throw new Error(`Invalid username: "${raw}"`)
}
return raw.toLowerCase()
}
async function jget(url, timeout = 50000) {
const controller = new AbortController()
const timer = setTimeout(() => controller.abort(), timeout)
try {
const response = await fetch(url, {
method: 'GET',
headers,
cache: 'no-store',
signal: controller.signal
})
const text = await response.text()
let data
try {
data = JSON.parse(text)
} catch {
data = text
}
return {
ok: response.ok,
status: response.status,
data
}
} catch (error) {
if (error.name === 'AbortError') {
throw new Error('Request timeout')
}
throw error
} finally {
clearTimeout(timer)
}
}
async function request(path, params = {}, timeout = 50000) {
const query = new URLSearchParams(params)
const response = await jget(`${BASE}${path}?${query}`, timeout)
if (!response.ok) {
const message = typeof response.data === 'object'
? response.data?.message || JSON.stringify(response.data)
: response.data
throw new Error(`HTTP ${response.status}: ${message}`)
}
return response.data
}
const getProfile = username =>
request('/wp-json/igw/v1/search', { username }, 40000)
const getPosts = username =>
request('/wp-json/igw/v1/posts', {
username,
limit: 24,
lazy: 1
}, 55000)
const getReels = username =>
request('/wp-json/igw/v1/reels', {
username,
limit: 24,
lazy: 1
}, 55000)
const getStories = username =>
request('/wp-json/igw/v1/stories', { username }, 55000)
const getHighlights = username =>
request('/wp-json/igw/v1/highlights', { username }, 55000)
const getTagged = username =>
request('/wp-json/igw/v1/tagged', {
username,
limit: 24,
lazy: 1
}, 50000)
async function processStep(fn) {
await sleep(350)
try {
return {
success: true,
data: await fn()
}
} catch (error) {
return {
success: false,
error: error.message
}
}
}
async function igstalk(input) {
if (!input) {
return {
status: false,
message: 'Username kosong'
}
}
try {
const username = extractUsername(input)
const result = { username }
const profile = await processStep(() => getProfile(username))
profile.success
? result.profile = profile.data
: result.profile_error = profile.error
const posts = await processStep(() => getPosts(username))
posts.success
? result.posts = posts.data
: result.posts_error = posts.error
const reels = await processStep(() => getReels(username))
reels.success
? result.reels = reels.data
: result.reels_error = reels.error
const stories = await processStep(() => getStories(username))
stories.success
? result.stories = stories.data
: result.stories_error = stories.error
const highlights = await processStep(() => getHighlights(username))
highlights.success
? result.highlights = highlights.data
: result.highlights_error = highlights.error
const tagged = await processStep(() => getTagged(username))
tagged.success
? result.tagged = tagged.data
: result.tagged_error = tagged.error
return {
status: true,
result
}
} catch (error) {
return {
status: false,
message: error.message
}
}
}
module.exports = { igstalk }
;(async () => {
const { igstalk } = require('./igstalk')
const result = await igstalk('rfkaansyah_')
console.log(JSON.stringify(result, null, 2))
})()
Cx99 • 8 views
Berbagi Snippet Kode
Menyediakan repositori kode siap pakai untuk berbagai kebutuhan pengembangan perangkat lunak.
Tampilan Neo-Brutalism
Setiap potongan kode disajikan dengan gaya tegas, kontras, dan mudah dibaca.
Pencarian Fleksibel
Pengguna dapat mencari kode berdasarkan judul, tag, bahasa pemrograman, maupun kategori.
Permintaan Kode Terbuka
Membutuhkan solusi atau implementasi fungsi tertentu? Ajukan ide melalui formulir request.