tiktok-scraper-nowatermarks
Version:
Wrapper for TikFast to download videos without watermarks
122 lines • 7.1 kB
JavaScript
;
/* eslint-disable no-restricted-syntax */
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
function getVideoWatermarkFree(videoUrl) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
if (!videoUrl || videoUrl.length === 0) {
reject(new Error('No video URL provided'));
}
fetch('https://tikfast.net/en')
.then((mainResponse) => {
const cookie = mainResponse.headers.get('set-cookie');
if (cookie) {
fetch('https://tikfast.net/tik-download/download-link', {
headers: {
accept: 'application/json, text/javascript, */*; q=0.01',
'accept-language': 'de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7',
'content-type': 'application/json',
'sec-ch-ua': '"Chromium";v="106", "Google Chrome";v="106", "Not;A=Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"macOS"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'x-requested-with': 'XMLHttpRequest',
cookie,
Referer: 'https://tikfast.net/en',
'Referrer-Policy': 'strict-origin-when-cross-origin',
},
body: `{"0": "${videoUrl}"}`,
method: 'POST',
})
.then((downloadLinkResponse) => downloadLinkResponse.json())
.then((downloadLinkJson) => {
if (downloadLinkJson &&
downloadLinkJson.status === 'ok' &&
downloadLinkJson.code === 200 &&
downloadLinkJson.data &&
downloadLinkJson.data.length > 0) {
const { data } = downloadLinkJson;
for (const dataItem of data) {
const link = dataItem === null || dataItem === void 0 ? void 0 : dataItem.water_free_link;
if (link) {
fetch('https://tikfast.net/tik-download/download', {
headers: {
accept: 'application/json, text/javascript, */*; q=0.01',
'accept-language': 'de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7',
'content-type': 'application/json',
'sec-ch-ua': '"Chromium";v="106", "Google Chrome";v="106", "Not;A=Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"macOS"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'x-requested-with': 'XMLHttpRequest',
cookie,
Referer: 'https://tikfast.net/en',
'Referrer-Policy': 'strict-origin-when-cross-origin',
},
body: `{"url": "${link}"}`,
method: 'POST',
})
.then((downloadResponse) => downloadResponse.json())
.then((downloadJson) => {
if (downloadJson.status ===
'ok' &&
downloadJson.code ===
200 &&
downloadJson.data &&
downloadJson.data
.length > 0) {
const responseData = downloadJson
.data[0];
if (responseData) {
responseData.description =
downloadLinkJson.data[0].description;
responseData.cover_url =
downloadLinkJson.data[0].cover_url;
resolve(responseData);
}
else {
reject(new Error('[Fetching download] No data found'));
}
}
else {
reject(new Error('[Fetching download] error'));
}
})
.catch((err) => reject(err));
}
else {
reject(new Error('[Fetching download link] No link found'));
}
}
}
else {
reject(new Error('[Fetching download-link] error'));
}
})
.catch((err) => reject(err));
}
else {
reject(new Error('No cookie found'));
}
})
.catch((err) => {
reject(err);
});
});
});
}
exports.default = getVideoWatermarkFree;
//# sourceMappingURL=index.js.map