Pencarian Snippet

Ditemukan 5 snippet.

Stalker JavaScript

TikTok Stalk

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 • 4 views
Stalker JavaScript

Threads Stalk

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

YouTube Stalk

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 • 4 views
Stalker JavaScript

Twitter Stalk

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

Instagram Stalk

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 • 9 views
Home Search Request Owner Login