new domain

This commit is contained in:
NK 2023-04-27 18:12:16 +01:00
parent df13398d33
commit f847cb8d8d
3 changed files with 4 additions and 40 deletions

View file

@ -19,8 +19,7 @@
"react-dom": "18.2.0",
"react-icons": "^4.8.0",
"tailwindcss": "^3.3.2",
"typescript": "5.0.4",
"ytdl-core": "npm:@distube/ytdl-core@^4.11.9"
"typescript": "5.0.4"
},
"devDependencies": {
"@types/downloadjs": "^1.4.3"

View file

@ -1,36 +0,0 @@
import type { NextApiRequest, NextApiResponse } from "next";
const ytdl = require("ytdl-core");
export default async function handler(
req: NextApiRequest,
res: NextApiResponse
) {
if (req.method === "POST") {
try {
const url = req.body.url;
const type = req.body.type;
if (!ytdl.validateURL(url))
return res.status(400).json({ message: "Invalid URL", code: 400 });
if (type !== "mp3" && type !== "mp4")
return res.status(400).json({ message: "Invalid type", code: 400 });
res.setHeader(
"Content-Type",
type === "mp3" ? "audio/mpeg" : "video/mp4"
);
await ytdl(url, {
format: type,
filter: type == "mp4" ? "videoandaudio" : "audioonly",
}).pipe(res);
} catch (e) {
console.log(e);
}
} else {
res.status(405).json({ message: "Method not allowed", code: 405 });
}
}
export const config = {
api: {
responseLimit: false,
},
};

View file

@ -28,13 +28,13 @@ export default function Home() {
if (videoID) {
const title = await getTitle(videoID);
try {
fetch("/api/download", {
fetch("https://service-api.night0721.repl.co/api/download", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ url, type }),
})
.then(res => res.blob())
.then(blob => {
.then(async blob => {
const sizeInBytes = blob.size;
if (sizeInBytes <= 0) {
setInfo(
@ -50,6 +50,7 @@ export default function Home() {
}
});
} catch (err) {
console.error(err);
setInfo(
"Unable to download! Maybe File size is too high. Try to download video less than 5MB"
);