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/facebook.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.facebookdlv3 = exports.facebookdlv2 = exports.facebookdl = void 0;
7
const cheerio_1 = __importDefault(require("cheerio"));
8
const got_1 = __importDefault(require("got"));
9
const crypto_js_1 = require("../encryptions/crypto.js");
10
const utils_js_1 = require("../utils.js");
11
// only support download video yet
12
async function facebookdl(url) {
13
/* eslint no-mixed-spaces-and-tabs: ["error", "smart-tabs"] */
14
const { data: { id, thumbnail, duration, a, av, v } } = await (0, got_1.default)('https://youtube4kdownloader.com/ajax/getLinks.php', {
15
headers: {
16
'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'
17
},
18
searchParams: {
19
video: url,
20
rand: (0, crypto_js_1.randomBytes)(13)
21
}
22
}).json();
23
const result = (a || [])
24
.concat(av)
25
.concat(v)
26
.map(({ size, ext, url, quality, vcodec, fid }) => {
27
const isVideo = ext === 'mp4';
28
const isWebm = ext === 'webm';
29
return {
30
size,
31
ext,
32
url,
33
quality,
34
vcodec,
35
fid,
36
isVideo: isVideo || isWebm,
37
isAudio: /audio/i.test(quality || '') || (isVideo && !isWebm)
38
};
39
// ext webm video without audio
40
});
41
if (!result.length)
42
throw new utils_js_1.ScraperError(`Can't download!\n${JSON.stringify({ id, thumbnail, duration, a, av, v }, null, 2)}`);
43
return {
44
id,
45
thumbnail,
46
duration,
47
result
48
};
49
}
50
exports.facebookdl = facebookdl;
51
async function facebookdlv2(url) {
52
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
53
const params = {
54
url: encodeURI(url)
55
};
56
const res = await got_1.default
57
.post('https://snapsave.app/action.php', {
58
headers: {
59
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',
60
'accept-encoding': 'gzip, deflate, br',
61
'accept-language': 'en-US,en;q=0.9',
62
'content-type': 'application/x-www-form-urlencoded',
63
origin: 'https://snapsave.app',
64
referer: 'https://snapsave.app/',
65
'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'
66
},
67
form: params
68
}).text();
69
const decodeParams = (_b = (_a = res.split('))</script>')[0]
70
.split('decodeURIComponent(escape(r))}(')[1]) === null || _a === void 0 ? void 0 : _a.split(',')) === null || _b === void 0 ? void 0 : _b.map(v => v.replace(/^"/, '')
71
.replace(/"$/, '').trim());
72
let html;
73
if (!Array.isArray(decodeParams) || decodeParams.length !== 6)
74
html = (_c = (typeof res === 'string' ? JSON.parse(res) : res)) === null || _c === void 0 ? void 0 : _c.data;
75
else {
76
const decode = (0, utils_js_1.decodeSnapApp)(...decodeParams);
77
html = (_j = (_h = (_g = (_f = (_e = (_d = decode === null || decode === void 0 ? void 0 : decode.split('("download-section").innerHTML = "')[1]) === null || _d === void 0 ? void 0 : _d.split('; parent.document.getElementById("inputData").remove();')[0]) === null || _e === void 0 ? void 0 : _e.split('</style><section class=')[1].split('"> ')) === null || _f === void 0 ? void 0 : _f.slice(1)) === null || _g === void 0 ? void 0 : _g.map(v => (v + '">').trim()).join()) === null || _h === void 0 ? void 0 : _h.split('</section><div class=')[0]) === null || _j === void 0 ? void 0 : _j.replace(/\\(\\)?/g, '');
78
}
79
if (!html)
80
throw new utils_js_1.ScraperError(`Can't parse encode params!\n${res}`);
81
const result = [];
82
const $ = cheerio_1.default.load(html);
83
$('table.table > tbody > tr').each(function () {
84
var _a, _b;
85
const el = $(this).find('td');
86
if (/tidak|no/i.test(el.eq(1).text())) {
87
const quality = (_b = (_a = el.eq(0).text().split('(')) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.trim();
88
const url = el.eq(2).find('a[href]').attr('href');
89
if (url)
90
result.push({ quality, url });
91
}
92
});
93
if (!result.length)
94
throw new utils_js_1.ScraperError(`Can't download!\n${$.html()}`);
95
return {
96
id: ((_l = (_k = $('div.media-content > div.content > p > strong')
97
.text()
98
.split('#')) === null || _k === void 0 ? void 0 : _k[1]) === null || _l === void 0 ? void 0 : _l.trim()) || '',
99
title: $('div.media-content > div.content > p > strong').text(),
100
description: $('div.media-content > div.content > p > span.video-des').text(),
101
thumbnail: $('figure > p.image > img[src]').attr('src'),
102
result
103
};
104
}
105
exports.facebookdlv2 = facebookdlv2;
106
async function facebookdlv3(url) {
107
var _a;
108
const payload = {
109
url
110
};
111
const text = await (0, got_1.default)('https://www.getfvid.com/downloader', {
112
method: 'POST',
113
headers: {
114
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',
115
'accept-encoding': 'gzip, deflate, br',
116
'accept-language': 'en-US,en;q=0.9',
117
'content-type': 'application/x-www-form-urlencoded',
118
cookie: '_ga=GA1.2.887753826.1642391325; _gid=GA1.2.2022692773.1642391325; __gads=ID=4ea88e3817c8d71b-22332defffcf0045:T=1642391326:RT=1642391326:S=ALNI_MY3oJyiEG_b8KXZBJ7RqvN2Mn8wbw; XSRF-TOKEN=eyJpdiI6ImdNUElWWU83S01jOTdZeitCUWdkWXc9PSIsInZhbHVlIjoiTGxnaE9oRVJTKzA5NDBncUtBa0xEdCtqNHBJXC9ZMVFPR1U2RnBSYUFzZHltWElZS2VtVUltUTJ2TjB5V3pEeTYzRUNMcENjMURGSkhBXC9OUitpcjMrZz09IiwibWFjIjoiMTViZTNjZDI3ZTZmOTk2ZWRjOWM1NTA5MTU2NDFhYWFlMjIxNTQxZTJlYjliMjJiMzE3YzlkNGMxODc2NjhmMCJ9; laravel_session=eyJpdiI6IjhZbElIRmpLSkVqZGZpQXJoK2MzVHc9PSIsInZhbHVlIjoianBSSFhPb2t0RFY4Q1wvYkk1S3pxMUNxXC82b0U1NHZROTVpS1Z4dGhES3ZTYTNsenJUSXpwcWNMVDkwWFk4OUY1TitGNmlDK1RXbTVyREVzcHVoRnRidz09IiwibWFjIjoiY2U1YzI2ODZlYWI2NzFkZDU1NTQ5Zjk0M2NmMDc2MTZhY2M3ODQxYjljZGUzMDQwMTYxZGQwZGYxMDM3NDMyZSJ9; __cf_bm=ephRNXRqwgrTB4SmHlsudy886EfsR2Ns2KtXVBnph4I-1642392732-0-AXtTUW5HRNQUeUcTJPhJTOPlMcjBFmMyoLKYOnxrDZ6Fa06XaJ4pMNW9arLg4zco/ef+ji00IV8NZb0nGOAKgfg=; _gat=1; __atuvc=6%7C3; __atuvs=61e4e71d2b803588005; __atssc=google%3B3',
119
origin: 'https://www.getfvid.com',
120
referer: 'https://www.getfvid.com/',
121
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
122
},
123
form: payload
124
}).text();
125
const $ = cheerio_1.default.load(text);
126
const row = $('div.card > div.row > div');
127
const thumbnail = (_a = /background-image: url\((.*?)\);/i.exec(row.eq(0).find('a[href]').attr('style'))) === null || _a === void 0 ? void 0 : _a[1];
128
const result = [];
129
row.find('.btns-download > p > a[href]').each(function () {
130
var _a;
131
const el = $(this);
132
const url = el.attr('href');
133
const info = el.text().trim();
134
const isAudio = /audio/i.test(info);
135
const quality = isAudio ? 'audio' : (_a = /Download in (\w+) Quality/i.exec(info)) === null || _a === void 0 ? void 0 : _a[1];
136
const isVideo = quality !== 'audio';
137
if (url) {
138
result.push({
139
url,
140
quality,
141
isAudio,
142
isVideo
143
});
144
}
145
});
146
if (!result.length)
147
throw new utils_js_1.ScraperError(`Can't download!\n${$.html()}`);
148
return {
149
title: $('#title_video').val(),
150
thumbnail,
151
result
152
};
153
}
154
exports.facebookdlv3 = facebookdlv3;
155
//# sourceMappingURL=facebook.js.map
156