ilhamdev commited on
Commit
aa79452
·
verified ·
1 Parent(s): 8754ed1

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +71 -36
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
- try {
835
- let { url } = req.query;
836
-
837
- if (!/https?:\/\/(www\.|v(t|m|vt)\.|t\.)?tiktok\.com/i.test(url)) return res.json({ message: 'Invalid URL' });
838
-
839
- // Fetch data from tikwm.com API
840
- //= await fetch(`https://tikwm.com/api/?url=${url}`, {
841
- // headers: {
842
- // 'User-Agent': generateRandomUserAgent(),
843
- // 'X-Forwarded-For': generateRandomIP(),
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 tiktokResult = await Tiktok.Downloader(url, { version });
857
- results.push({ version, result: tiktokResult });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
858
  } catch (error) {
859
- results.push({ version, error: error.message });
 
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 {