const express = require('express'); const { tiktokStalk } = require('./lib/tiktokstalk'); // Pastikan file `tiktokstalk.js` sesuai const { yt1s } = require('./lib/yt1s'); // Modul untuk yt1s const { ytdl } = require('./lib/ytdl'); // Modul untuk ytdl const app = express(); const port = process.env.PORT || 7860; // Hugging Face Spaces menggunakan port 7860 // Middleware untuk parsing JSON app.use(express.json()); app.get('/', (req, res) => res.status(400).json({ message: 'Hello World' })); // Endpoint untuk TikTok Stalk app.get('/endpoint/tiktokstalk', async (req, res) => { const query = req.query.query; // Mengambil parameter dari query string console.log(`[TikTokStalk] Received query: ${query}`); // Log command if (!query) { console.error(`[TikTokStalk] Error: Query is required`); return res.status(400).json({ error: 'Query is required' }); } try { const result = await tiktokStalk(query); console.log(`[TikTokStalk] Success: Result fetched for ${query}`); res.json(result); } catch (error) { console.error(`[TikTokStalk] Error:`, error); res.status(500).json({ error: 'Something went wrong' }); } }); // Endpoint untuk YouTube Download via yt1s app.get('/endpoint/yt1s', async (req, res) => { const url = req.query.url; console.log(`[YouTubeDownload] Received request for URL: ${url}`); // Log command if (!url) { console.error(`[YouTubeDownload] Error: URL is required`); return res.status(400).json({ error: 'URL is required' }); } try { const result = await yt1s.dl(url); console.log(`[YouTubeDownload] Success: Video fetched for URL: ${url}`); res.json(result); } catch (error) { console.error(`[YouTubeDownload] Error:`, error); res.status(500).json({ error: 'Something went wrong' }); } }); // Endpoint untuk YouTube Download via ytdl app.get('/endpoint/ytdl', async (req, res) => { const url = req.query.url; const resolution = parseInt(req.query.resolution, 10) || 720; // Default ke 720p jika tidak ada console.log(`[YTDLDownload] Received request for URL: ${url}, Resolution: ${resolution}`); // Log command if (!url) { console.error(`[YTDLDownload] Error: URL is required`); return res.status(400).json({ error: 'URL is required' }); } try { const result = await ytdl(url, resolution); console.log(`[YTDLDownload] Success: Video fetched for URL: ${url}, Resolution: ${resolution}`); res.json(result); } catch (error) { console.error(`[YTDLDownload] Error:`, error); res.status(500).json({ error: 'Something went wrong' }); } }); // Menjalankan server app.listen(port, () => { console.log(`API running on http://localhost:${port}`); });