BLUE-TUBE / server.js
BLUESERVER's picture
Update server.js
10a420a verified
const express = require('express');
const ytSearch = require('yt-search');
const path = require('path');
const cors = require('cors');
const app = express();
const PORT = 7860;
// Enable CORS
app.use(cors());
// Serve static files (like HTML, CSS, JS)
app.use(express.static(path.join(__dirname, 'public')));
// API Endpoint to search YouTube videos
app.get('/api/search', async (req, res) => {
const query = req.query.q;
if (!query) {
return res.status(400).json({ error: 'Query parameter "q" is required' });
}
try {
const results = await ytSearch(query);
const videos = results.videos.slice(0, 10).map(video => ({
title: video.title,
url: video.url,
duration: video.timestamp,
views: video.views,
uploaded: video.ago,
thumbnail: video.thumbnail
}));
res.json({ videos });
} catch (error) {
console.error(error);
res.status(500).json({ error: 'An error occurred while searching for videos' });
}
});
// Default route to serve the frontend
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'index.html'));
});
// Start the server
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});