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

332 lines (331 loc) 10.9 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateOdinId = exports.generateDeviceId = exports.generateSearchId = exports.randomChar = exports._tiktokApiParams = exports._videoSearchParams = exports._liveSearchParams = exports._userSearchParams = exports._getCommentsParams = exports._xttParams = exports._getUserLikedParams = exports._getUserPostsParams = void 0; const qs_1 = __importDefault(require("qs")); const _getUserPostsParams = () => { return (qs_1.default.stringify({ aid: 1988, app_language: "en", app_name: "tiktok_web", battery_info: 1, browser_language: "en-US", browser_name: "Mozilla", browser_online: true, browser_platform: "Win32", browser_version: "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.35", channel: "tiktok_web", cookie_enabled: true, device_id: "7002566096994190854", device_platform: "web_pc", focus_state: false, from_page: "user", history_len: 3, is_fullscreen: false, is_page_visible: true, os: "windows", priority_region: "RO", referer: "https://exportcomments.com/", region: "RO", root_referer: "https://exportcomments.com/", screen_height: 1440, screen_width: 2560, tz_name: "Europe/Bucharest", verifyFp: "verify_lacphy8d_z2ux9idt_xdmu_4gKb_9nng_NNTTTvsFS8ao", webcast_language: "en" }) + "&msToken=7UfjxOYL5mVC8QFOKQRhmLR3pCjoxewuwxtfFIcPweqC05Q6C_qjW-5Ba6_fE5-fkZc0wkLSWaaesA4CZ0LAqRrXSL8b88jGvEjbZPwLIPnHeyQq6VifzyKf5oGCQNw_W4Xq12Q-8KCuyiKGLOw=&X-Bogus=DFSzswVL-XGANHVWS0OnS2XyYJUm"); }; exports._getUserPostsParams = _getUserPostsParams; const _getUserLikedParams = (id, secUid, count) => { let cursor = 0; if (count > 50) { for (let i = 1; i < count; i++) { cursor += 50; } } return qs_1.default.stringify({ aid: "1988", cookie_enabled: true, screen_width: 0, screen_height: 0, browser_language: "", browser_platform: "", browser_name: "", browser_version: "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0", browser_online: "", timezone_name: "Europe/London", is_page_visible: true, id, secUid, count, cursor, needPinnedItemIds: true, odinId: generateOdinId(), history_len: 3, user_is_login: true }); }; exports._getUserLikedParams = _getUserLikedParams; const _xttParams = (secUid, cursor, count) => { return qs_1.default.stringify({ aid: "1988", cookie_enabled: true, screen_width: 0, screen_height: 0, browser_language: "", browser_platform: "", browser_name: "", browser_version: "", browser_online: "", timezone_name: "Europe/London", secUid, cursor, count, is_encryption: 1 }); }; exports._xttParams = _xttParams; const _getCommentsParams = (id, count) => { let cursor = 0; if (count > 50) { for (let i = 1; i < count; i++) { cursor += 50; } } return qs_1.default.stringify({ aid: "1988", app_language: "ja-JP", app_name: "tiktok_web", aweme_id: id, browser_language: "en-US", browser_name: "Mozilla", browser_online: true, browser_platform: "Linux x86_64", browser_version: "5.0 (X11)", channel: "tiktok_web", cookie_enabled: true, count: 50, cursor: cursor, device_id: generateDeviceId(), os: "linux", region: "ID", screen_height: 768, screen_width: 1366 }); }; exports._getCommentsParams = _getCommentsParams; const _userSearchParams = (keyword, page, xbogus) => { let cursor = 0; if (page > 1) { for (let i = 1; i < page; i++) { cursor += 10; } } const params = { WebIdLastTime: Date.now(), aid: "1988", app_language: "en", app_name: "tiktok_web", browser_language: "en-US", browser_name: "Mozilla", browser_online: true, browser_platform: "Win32", browser_version: "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0", channel: "tiktok_web", cookie_enabled: true, cursor: cursor, device_id: generateDeviceId(), device_platform: "web_pc", focus_state: false, from_page: "search", history_len: 5, is_fullscreen: false, is_page_visible: true, keyword: keyword, os: "windows", priority_region: "ID", referer: "", region: "ID", screen_height: 768, screen_width: 1366, search_id: generateSearchId(), tz_name: "Asia/Jakarta", web_search_code: { tiktok: { client_params_x: { search_engine: { ies_mt_user_live_video_card_use_libra: 1, mt_search_general_user_live_card: 1 } }, search_server: {} } }, webcast_language: "en" }; if (xbogus) { params["X-Bogus"] = xbogus; } return qs_1.default.stringify(params); }; exports._userSearchParams = _userSearchParams; const _liveSearchParams = (keyword, page) => { let cursor = 0; if (page > 1) { for (let i = 1; i < page; i++) { cursor += 12; } } let offset = `${cursor}`; return new URLSearchParams({ WebIdLastTime: "1720342268", aid: "1988", app_language: "en", app_name: "tiktok_web", browser_language: "en-US", browser_name: "Mozilla", browser_online: "true", browser_platform: "Linux x86_64", browser_version: "5.0 (X11)", channel: "tiktok_web", cookie_enabled: "true", count: "20", device_id: generateDeviceId(), device_platform: "web_pc", device_type: "web_h264", focus_state: "true", from_page: "search", history_len: "10", is_fullscreen: "false", is_page_visible: "true", keyword, offset, os: "linux", priority_region: "", referer: "", region: "ID", screen_height: "768", screen_width: "1366", tz_name: "Asia/Jakarta", search_id: generateSearchId(), web_search_code: "{ tiktok: { client_params_x: { search_engine: { ies_mt_user_live_video_card_use_libra: 1, mt_search_general_user_live_card: 1 } }, search_server: {} } }", webcast_language: "en" }); }; exports._liveSearchParams = _liveSearchParams; const _videoSearchParams = (keyword, page) => { let cursor = 0; if (page > 1) { for (let i = 1; i < page; i++) { cursor += 12; } } let offset = `${cursor}`; return qs_1.default.stringify({ WebIdLastTime: "1720342268", aid: "1988", app_language: "en", app_name: "tiktok_web", browser_language: "en-US", browser_name: "Mozilla", browser_online: "true", browser_platform: "Linux x86_64", browser_version: "5.0 (X11)", channel: "tiktok_web", cookie_enabled: "true", count: "20", device_id: generateDeviceId(), device_platform: "web_pc", device_type: "web_h264", focus_state: "true", from_page: "search", history_len: "10", is_fullscreen: "false", is_page_visible: "true", is_user_login: "true", keyword, offset, os: "linux", priority_region: "", referer: "", region: "ID", screen_height: "768", screen_width: "1366", tz_name: "Asia/Jakarta", search_id: generateSearchId(), web_search_code: "{ tiktok: { client_params_x: { search_engine: { ies_mt_user_live_video_card_use_libra: 1, mt_search_general_user_live_card: 1 } }, search_server: {} } }", webcast_language: "en" }); }; exports._videoSearchParams = _videoSearchParams; const _tiktokApiParams = (args) => { return new URLSearchParams({ ...args, version_name: "1.1.9", version_code: "2018111632", build_number: "1.1.9", device_id: generateDeviceId(), iid: generateDeviceId(), manifest_version_code: "2018111632", update_version_code: "2018111632", openudid: randomChar("0123456789abcdef", 16), uuid: randomChar("1234567890", 16), _rticket: Date.now() * 1000, ts: Date.now(), device_brand: "Google", device_type: "Pixel 4", device_platform: "android", resolution: "1080*1920", dpi: 420, os_version: "10", os_api: "29", carrier_region: "US", sys_region: "US", region: "US", timezone_name: "America/New_York", timezone_offset: "-14400", channel: "googleplay", ac: "wifi", mcc_mnc: "310260", is_my_cn: 0, ssmix: "a", as: "a1qwert123", cp: "cbfhckdckkde1" }).toString(); }; exports._tiktokApiParams = _tiktokApiParams; const randomChar = (char, range) => { let chars = ""; for (let i = 0; i < range; i++) { chars += char[Math.floor(Math.random() * char.length)]; } return chars; }; exports.randomChar = randomChar; const generateSearchId = () => { const now = new Date(); const timestamp = now.getFullYear().toString() + (now.getMonth() + 1).toString().padStart(2, "0") + now.getDate().toString().padStart(2, "0") + now.getHours().toString().padStart(2, "0") + now.getMinutes().toString().padStart(2, "0") + now.getSeconds().toString().padStart(2, "0"); const hex = randomChar("0123456789ABCDEF", 32); return `${timestamp}${hex}`; }; exports.generateSearchId = generateSearchId; const generateDeviceId = () => { const prefix = "7"; const random = randomChar("0123456789", 18); return `${prefix}${random}`; }; exports.generateDeviceId = generateDeviceId; const generateOdinId = () => { const prefix = "7"; const random = randomChar("0123456789", 18); return `${prefix}${random}`; }; exports.generateOdinId = generateOdinId;