ttsave
Version:
TikTok video downloader scrapper. Scrap data from a TikTok video downloader and get direct info & url links from your media
64 lines (61 loc) • 2.12 kB
JavaScript
const needle = require('needle');
const { load } = require('cheerio');
const fs = require('fs');
module.exports = getInfo = async (link) => {
const host = 'https://ttsave.app/download'
const body = { id: link }
const res = await needle("post", host, body, {json: true})
try {
const $ = load(res.body)
let metadata = new Array();
$('a').get().map(v => {
metadata.push($(v).attr('href'));
});
return {
success: true,
creator: "Ditzzy",
author: {
name: $('div div h2').text(),
profile: $('div a').attr('href'),
judul: $('p').eq(0).text().trim(),
username: $('div a.font-extrabold.text-blue-400.text-xl.mb-2').text()
},
video: {
thumbnail: metadata[0] ? metadata[0] : metadata[5],
views: $('div.flex.flex-row.items-center.justify-center.gap-2.mt-2 div:nth-child(1) span').text(),
loves: $('div.flex.flex-row.items-center.justify-center.gap-2.mt-2 div:nth-child(2) span').text(),
comments: $('div.flex.flex-row.items-center.justify-center.gap-2.mt-2 div:nth-child(3) span').text(),
shares: $('div.flex.flex-row.items-center.justify-center.gap-2.mt-2 div:nth-child(4) span').text(),
url: {
no_wm: metadata[2] ? metadata[2] : $('source').attr('src'),
wm: metadata[3],
}
},
audio: {
name: $('div.flex.flex-row.items-center.justify-center.gap-1.mt-5 span').text(),
url: metadata[4]
}
}
} catch (error) {
const file = 'log/error.json'
if (!fs.existsSync(file)) fs.writeFileSync(file, '[]')
const errLog = JSON.parse(fs.readFileSync(file).toString())
console.error(error)
let log = {
time: new Date().toLocaleString('en-US', {timezone: 'Asia/Jakarta'}),
error: {
in: error,
cause: error.message
}
}
errLog.push(log)
fs.writeFile(file, JSON.stringify(errLog), (err) => {
if (err) {
console.log(err);
return false
}
console.log("\n[!] Something error, error saved to log/error.json\n");
})
return { success: false }
}
}