repiped/routes/search.js
2025-04-30 19:01:10 +02:00

46 lines
1.4 KiB
JavaScript

const https = require("https");
const yts = require('yt-search');
function searchRouteHandler(app) {
app.get("/api/search", async (req, res) => {
try {
const query = req.query.q;
if (!query) {
return res.status(400).json({ error: "Search query is required" });
}
const results = await yts(query);
console.log(results.videos[0])
const formattedResults = {
items: results.videos.map(video => ({
url: `/watch?v=${video.videoId}`,
type: "stream",
title: video.title,
thumbnail: `/api/thumbnail/${video.videoId}`,
uploaderName: video.author.name,
uploaderUrl: `/channel/${video.author.url}`,
uploaderAvatar: `/api/avatar/${video.author.url.replace("https://youtube.com/", "")}.png`,
uploadedDate: video.ago,
shortDescription: video.description,
duration: video.seconds,
views: video.views,
uploaded: new Date(video.timestamp * 1000).getTime(),
uploaderVerified: false,
isShort: video.duration.seconds < 60
})),
nextpage: "",
suggestion: "",
corrected: false
};
res.json(formattedResults);
} catch (err) {
console.error(`Error searching videos: ${err.message}`);
res.status(500).send("Error searching videos");
}
});
}
module.exports = searchRouteHandler;