Update index.js
Browse files
index.js
CHANGED
|
@@ -831,46 +831,81 @@ return res.json({message: "Success", code: 200, data:data})
|
|
| 831 |
}
|
| 832 |
})
|
| 833 |
.get('/tt', async (req, res) => {
|
| 834 |
-
|
| 835 |
-
|
| 836 |
-
|
| 837 |
-
|
| 838 |
-
|
| 839 |
-
|
| 840 |
-
|
| 841 |
-
|
| 842 |
-
|
| 843 |
-
|
| 844 |
-
|
| 845 |
-
|
| 846 |
-
|
| 847 |
-
// data = await data.json();
|
| 848 |
-
// if (!data) console.log({ message: 'API TO API KOID' });
|
| 849 |
-
|
| 850 |
-
// Array of versions to try
|
| 851 |
-
const versions = ['v1', 'v2', 'v3'];
|
| 852 |
-
const results = [];
|
| 853 |
-
const Tiktok = require("@tobyg74/tiktok-api-dl")
|
| 854 |
-
for (const version of versions) {
|
| 855 |
try {
|
| 856 |
-
const
|
| 857 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 858 |
} catch (error) {
|
| 859 |
-
|
|
|
|
| 860 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 861 |
}
|
| 862 |
-
|
| 863 |
-
return res.json({message: "Success", code: 200,
|
| 864 |
-
data: results,
|
| 865 |
-
});
|
| 866 |
-
|
| 867 |
-
} catch (e) {
|
| 868 |
-
console.log(e);
|
| 869 |
-
return res.json({ message: "Internal Server Error",
|
| 870 |
-
code: 500
|
| 871 |
-
});
|
| 872 |
-
}
|
| 873 |
-
})
|
| 874 |
|
| 875 |
.get('/pindl', async (req, res) => {
|
| 876 |
try {
|
|
|
|
| 831 |
}
|
| 832 |
})
|
| 833 |
.get('/tt', async (req, res) => {
|
| 834 |
+
try {
|
| 835 |
+
const { url } = req.query;
|
| 836 |
+
|
| 837 |
+
// Validasi URL TikTok
|
| 838 |
+
const tiktokUrlRegex = /^https?:\/\/(www\.|v(t|m|vt)\.|t\.)?tiktok\.com/i;
|
| 839 |
+
if (!tiktokUrlRegex.test(url)) {
|
| 840 |
+
return res.json({ message: 'Invalid URL', code: 400 });
|
| 841 |
+
}
|
| 842 |
+
|
| 843 |
+
const results = [];
|
| 844 |
+
|
| 845 |
+
// Coba ambil data dari API tikwm.com
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 846 |
try {
|
| 847 |
+
const response = await fetch(`https://tikwm.com/api/?url=${encodeURIComponent(url)}`, {
|
| 848 |
+
headers: {
|
| 849 |
+
'User-Agent': generateRandomUserAgent(),
|
| 850 |
+
'X-Forwarded-For': generateRandomIP(),
|
| 851 |
+
}
|
| 852 |
+
});
|
| 853 |
+
|
| 854 |
+
if (response.ok) {
|
| 855 |
+
const data = await response.json();
|
| 856 |
+
results.push({ source: 'tikwm.com', data });
|
| 857 |
+
return res.json({
|
| 858 |
+
message: "Success",
|
| 859 |
+
code: 200,
|
| 860 |
+
data: results,
|
| 861 |
+
});
|
| 862 |
+
} else {
|
| 863 |
+
console.log({ message: 'Failed to fetch data from tikwm.com', status: response.status });
|
| 864 |
+
// Jika response tidak OK, lanjutkan ke Tiktok.Downloader
|
| 865 |
+
}
|
| 866 |
} catch (error) {
|
| 867 |
+
console.log({ message: 'Error fetching data from tikwm.com', error });
|
| 868 |
+
// Jika terjadi error saat fetch, lanjutkan ke Tiktok.Downloader
|
| 869 |
}
|
| 870 |
+
|
| 871 |
+
// Jika fetching dari tikwm.com gagal, coba Tiktok.Downloader dengan versi berbeda
|
| 872 |
+
const versions = ['v1', 'v2', 'v3'];
|
| 873 |
+
let downloaderSuccess = false;
|
| 874 |
+
|
| 875 |
+
for (const version of versions) {
|
| 876 |
+
try {
|
| 877 |
+
const tiktokResult = await Tiktok.Downloader(url, { version });
|
| 878 |
+
results.push({ source: 'Tiktok.Downloader', version, data: tiktokResult });
|
| 879 |
+
downloaderSuccess = true;
|
| 880 |
+
// Jika berhasil, hentikan iterasi versi
|
| 881 |
+
break;
|
| 882 |
+
} catch (error) {
|
| 883 |
+
console.log({ message: `Error with Tiktok.Downloader version ${version}`, error });
|
| 884 |
+
results.push({ source: 'Tiktok.Downloader', version, message: "Internal Server Error", code: 500 });
|
| 885 |
+
// Lanjutkan ke versi berikutnya jika ada error
|
| 886 |
+
}
|
| 887 |
+
}
|
| 888 |
+
|
| 889 |
+
if (downloaderSuccess) {
|
| 890 |
+
return res.json({
|
| 891 |
+
message: "Success",
|
| 892 |
+
code: 200,
|
| 893 |
+
data: results,
|
| 894 |
+
});
|
| 895 |
+
} else {
|
| 896 |
+
// Jika semua versi Tiktok.Downloader gagal
|
| 897 |
+
return res.json({
|
| 898 |
+
message: "Internal Server Error",
|
| 899 |
+
code: 500,
|
| 900 |
+
data: results,
|
| 901 |
+
});
|
| 902 |
+
}
|
| 903 |
+
|
| 904 |
+
} catch (e) {
|
| 905 |
+
console.log({ message: 'Unexpected Error', error: e });
|
| 906 |
+
return res.json({ message: "Internal Server Error", code: 500 });
|
| 907 |
}
|
| 908 |
+
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 909 |
|
| 910 |
.get('/pindl', async (req, res) => {
|
| 911 |
try {
|