Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MR414N-ID
GitHub Repository: MR414N-ID/botku2
Path: blob/master/node_modules/@bochilteam/scraper/lib/cjs/social-media/tiktok.js
1126 views
1
"use strict";
2
var __importDefault = (this && this.__importDefault) || function (mod) {
3
return (mod && mod.__esModule) ? mod : { "default": mod };
4
};
5
Object.defineProperty(exports, "__esModule", { value: true });
6
exports.tiktokfyp = exports.tiktokdlv3 = exports.tiktokdlv2 = exports.tiktokdl = void 0;
7
const got_1 = __importDefault(require("got"));
8
const cheerio_1 = __importDefault(require("cheerio"));
9
const utils_js_1 = require("../utils.js");
10
async function tiktokdl(url) {
11
var _a, _b, _c, _d, _e, _f;
12
const resToken = await (0, got_1.default)('https://snaptik.app/ID');
13
const cookie = (_a = resToken.headers['set-cookie']) === null || _a === void 0 ? void 0 : _a.map(v => v.split(';')[0]).join('; ');
14
const $$ = cheerio_1.default.load(resToken.body);
15
const html = await (0, got_1.default)('https://snaptik.app/abc.php', {
16
headers: {
17
cookie: cookie || 'PHPSESSID=gphtms9fofqm2fikr9ofqrld25; current_language=ID; ref=google; __cflb=04dToWzoGizosSfR1ww5Ce8foMmhJkC5absiUehuAK; _ga=GA1.2.500024560.1646295641; _gid=GA1.2.786638280.1646295641; __gads=ID=2d9fb59650bbba88-22611414cbd0004a:T=1646295642:RT=1646295642:S=ALNI_MbDUnOcA1ZoJcH9yeqYgALtEC3W2w; ads_new=1; __cfruid=e4d99b4f4c1cabd9c94cc558b0c7eee4d7508448-1646295654; _gat=1',
18
referer: 'https://snaptik.app/ID',
19
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
20
},
21
searchParams: {
22
url: encodeURI(url),
23
lang: 'ID',
24
token: $$('input[name="token"]').val()
25
}
26
}).text();
27
const decodeParams = (_c = (_b = html.split('))</script>')[0]
28
.split('decodeURIComponent(escape(r))}(')[1]) === null || _b === void 0 ? void 0 : _b.split(',')) === null || _c === void 0 ? void 0 : _c.map(v => v.replace(/^"/, '')
29
.replace(/"$/, '').trim());
30
if (!Array.isArray(decodeParams) || decodeParams.length !== 6)
31
throw new utils_js_1.ScraperError(`failed to parse decode params!\n${html}`);
32
const decode = (0, utils_js_1.decodeSnapApp)(...decodeParams);
33
const result = (_f = (_e = (_d = decode.split('; elem.innerHTML = \\\'')) === null || _d === void 0 ? void 0 : _d[1].split('\\\'; parent.ga(')) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.replace(/\\(\\)?/g, '');
34
if (!result)
35
throw new utils_js_1.ScraperError(`failed to parse html from decode!\n${decode}`);
36
const $ = cheerio_1.default.load(result);
37
const $snaptik_middle = $('.snaptikvid > div.snaptik-middle');
38
const $a = $('#download-block > .abuttons').find('a');
39
let no_watermark2 = $a.eq(1).attr('href');
40
if (!/https?:\/\//.test(no_watermark2))
41
no_watermark2 = `https://snaptik.app${no_watermark2}`;
42
return {
43
author: {
44
nickname: $snaptik_middle.find('h3').text()
45
},
46
description: $snaptik_middle.find('span').text(),
47
video: {
48
no_watermark: $a.eq(0).attr('href'),
49
no_watermark2,
50
no_watermark_raw: $a.eq(2).attr('href')
51
}
52
};
53
}
54
exports.tiktokdl = tiktokdl;
55
async function tiktokdlv2(url) {
56
const data = await got_1.default
57
.post('https://api.tikmate.app/api/lookup', {
58
headers: {
59
accept: '*/*',
60
'accept-language': 'en-US,en;q=0.9',
61
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
62
origin: 'https://tikmate.app',
63
referer: 'https://tikmate.app/',
64
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
65
},
66
form: { url }
67
})
68
.json();
69
return {
70
author: {
71
unique_id: data.author_id,
72
nickname: data.author_name,
73
avatar: data.author_avatar
74
},
75
video: {
76
no_watermark: `https://tikmate.app/download/${data.token}/${data.id}.mp4`,
77
no_watermark_hd: `https://tikmate.app/download/${data.token}/${data.id}.mp4?hd=1`
78
}
79
};
80
}
81
exports.tiktokdlv2 = tiktokdlv2;
82
async function tiktokdlv3(url) {
83
var _a;
84
const resToken = await (0, got_1.default)('https://ssstik.io/id');
85
const cookie = (_a = resToken.headers['set-cookie']) === null || _a === void 0 ? void 0 : _a.map(v => v.split(';')[0]).join('; ');
86
const $$ = cheerio_1.default.load(resToken.body);
87
const postUrl = $$('#_gcaptcha_pt').attr('hx-post');
88
const html = await (0, got_1.default)('https://ssstik.io' + postUrl, {
89
method: 'POST',
90
headers: {
91
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
92
cookie: cookie || 'PHPSESSID=gb6hgnvvpkfg28ulo80l1u2qrl; __cflb=02DiuEcwseaiqqyPC5pE7Qjdp2jcR2J5YEMX3jgTCHMYX; _ga=GA1.2.1294804934.1647840559; _gid=GA1.2.1211588131.1647840559; __gads=ID=3ba3f6d3a5959cb0-224bbeea15d100da:T=1647840559:RT=1647840559:S=ALNI_MYtTuJ9ICRAeHGfemUzb2rwyaT6lw; ga_show=2; _gat_UA-3524196-6=1',
93
'hx-current-url': 'https://ssstik.io/id',
94
'hx-request': 'true',
95
'hx-target': 'target',
96
'hx-trigger': ' _gcaptcha_pt',
97
origin: 'https://ssstik.io',
98
referer: 'https://ssstik.io/id',
99
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537'
100
},
101
form: {
102
id: encodeURI(url),
103
locale: 'id',
104
gc: 0,
105
tt: 0,
106
ts: 0
107
}
108
}).text();
109
const $ = cheerio_1.default.load(html);
110
const $img = $('img.u-round');
111
const $a = $('a.pure-button');
112
let no_watermark = $a.eq(0).attr('href');
113
if (!/https?:\/\//.test(no_watermark))
114
no_watermark = `https://ssstik.io${no_watermark}`;
115
return {
116
author: {
117
nickname: $img.attr('alt'),
118
avatar: $img.attr('src')
119
},
120
description: $('p.maintext').text(),
121
video: {
122
no_watermark,
123
no_watermark2: $a.eq(1).attr('href')
124
},
125
music: $a.eq(2).attr('href')
126
};
127
}
128
exports.tiktokdlv3 = tiktokdlv3;
129
async function tiktokfyp() {
130
const data = await (0, got_1.default)('https://t.tiktok.com/api/recommend/item_list/?aid=1988&app_name=tiktok_web&device_platform=web_pc&device_id=6982004129280116226&region=ID&priority_region=&os=windows&referer=&cookie_enabled=true&screen_width=1920&screen_height=1080&browser_language=en-US&browser_platform=Win32&browser_name=Mozilla&browser_version=5.0+(Windows+NT+10.0%3B+Win64%3B+x64)+AppleWebKit%2F537.36+(KHTML,+like+Gecko)+Chrome%2F96.0.4664.93+Safari%2F537.36&browser_online=true&verifyFp=verify_kx30laei_YkR2lQiI_UBWz_4MZK_ACKV_loiPDs4PyDtw&app_language=en&timezone_name=Asia%2FJakarta&is_page_visible=true&focus_state=true&is_fullscreen=false&history_len=2&battery_info=%7B%7D&count=30&itemID=1&language=en&from_page=fyp&insertedItemID=&versions=70232694,70338434,70001178,70138197,70156809&msToken=Wi63JD_P7xxD_7pFmaF_UcHM6oJwSKjR9wnfsMUaDdz51KLZ3J8tazDrcY2gh_t3PyG_5926qyw8g7DhrgFa3mbDmxLhzmLs_3l_sOk4zf6TdMqfAT51s_n8ZPG8vovv76h1kCkR&X-Bogus=DFSzswVOAxxANJf/SEhC1eM/W7oh&_signature=').json();
131
return data.itemList || [];
132
}
133
exports.tiktokfyp = tiktokfyp;
134
// export async function tiktokstalk(name: string): Promise<{
135
// username: string;
136
// profile: string;
137
// avatar: string;
138
// verified: boolean;
139
// following: string;
140
// followers: string;
141
// likes: string;
142
// description: string;
143
// }> {
144
// const { data } = await axios.get(`https://www.tiktok.com/@${name}?lang=en`, {
145
// headers: {
146
// 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.9',
147
// cookie: 'tt_csrf_token=hlVsM4KILUl4mGcUkB6w6FJR; s_v_web_id=verify_kx30laei_YkR2lQiI_UBWz_4MZK_ACKV_loiPDs4PyDtw; ttwid=1%7CY1AOcjfoIgvlYizkFtt8slCK0i4qZqApyt2VHzQW2jY%7C1639301134%7C43c115b2541a4ae28ba3b0f194641f223a4a3b18a3fcf83212c133eaf4518b04; msToken=9Ac544Pz7Cc_nUXjNNhx8MBVx96CEeL0mgtWiPUQ5Ef3XxRI81YIpRNDkWa3TM5mqAFr-rhaNE1HWEXop_kpLp4BTCqhLQdu3ppGSbLHhUnqEKmzpF86bWvmur5xyKDCVmE63Q==',
148
// 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36'
149
// }
150
// })
151
// const $ = cheerio.load(data)
152
// let container = $('div.share-title-container > h2')
153
// let username = container.text()?.trim()
154
// let avatar = $('span.tiktok-avatar.tiktok-avatar-circle.avatar > img').attr('src')
155
// let verified = /verified$/.test(container.attr('class'))
156
// let profile = $('h1.share-sub-title > span.profile').text()?.trim()
157
// let stats = $('h2.count-infos > div.number')
158
// let following = stats.eq(0).find('strong').text()?.trim()
159
// let followers = stats.eq(1).find('strong').text()?.trim()
160
// let likes = stats.eq(2).find('strong').text()?.trim()
161
// let description = $('h2.share-desc').text()?.trim()
162
// return {
163
// username,
164
// profile,
165
// avatar,
166
// verified,
167
// following,
168
// followers,
169
// likes,
170
// description
171
// }
172
// }
173
// export async function tiktoksearch(query: string) {
174
// const { data } = await axios.get(`https://www.tiktok.com/search?q=${query}&t=${+new Date()}`)
175
// const $ = cheerio.load(data)
176
// }
177
//# sourceMappingURL=tiktok.js.map
178