File size: 2,707 Bytes
75cd405 6dd6c3a 34f5aad 75cd405 c41752f 75cd405 6dd6c3a 21abae2 75cd405 f6b3e6c 75cd405 f6b3e6c 75cd405 fe364d9 f6b3e6c 75cd405 f6b3e6c 75cd405 34f5aad 6dd6c3a 34f5aad f6b3e6c 6dd6c3a f6b3e6c 6dd6c3a 34f5aad 6dd6c3a f6b3e6c 6dd6c3a 34f5aad 75cd405 6dd6c3a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | 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}`);
});
|