Download server.js from R-BOT/genii: direct link, hf CLI and curl.
- Browser
- Download file 2.71 kB
-
https://huggingface.co/spaces/R-BOT/genii/resolve/main/server.js
- Command line
-
hf download hf://spaces/R-BOT/genii/server.js
-
curl -L -o server.js https://huggingface.co/spaces/R-BOT/genii/resolve/main/server.js
2.71 kB
| 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}`); | |
| }); | |