inital release
This commit is contained in:
commit
1d708c14cf
26 changed files with 34335 additions and 0 deletions
46
routes/search.js
Normal file
46
routes/search.js
Normal file
|
@ -0,0 +1,46 @@
|
|||
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;
|
Loading…
Add table
Add a link
Reference in a new issue