diff --git a/index.js b/index.js
index eb73449..4c7b3f5 100644
--- a/index.js
+++ b/index.js
@@ -4,8 +4,6 @@ const ytdl = require('ytdl-core'),
express = require('express'),
bodyParser = require('body-parser'),
cp = require("child_process"),
- ffmpeg = require('ffmpeg-static'),
- multer = require('multer')
const PORT = process.env.PORT || 8080
@@ -15,49 +13,6 @@ var formats = {
"matroska": "mkv"
}
-if (fs.existsSync(path.join(__dirname, 'uploads'))) {
- fs.rmSync(path.join(__dirname, 'uploads'), { recursive: true })
-}
-
-var uploads = multer({ dest: 'uploads/' })
-
-const characters = "abcdefghijklmnopqrstuvwxyz!@$%^*()[]_-=+ "
-
-// process.on('uncaughtException', (err, origin) => {
-// fs.writeSync(
-// process.stderr.fd,
-// `Caught exception: ${err}\n` +
-// `Exception origin: ${origin}`,
-// );
-// });
-
-app.use(bodyParser.urlencoded({ extended: false }))
-
-app.post("/convert", uploads.single("files"), (req, res) => {
- var file = req.file
- var format = req.body.format || 'mp4'
-
- const ffmpegProcess = cp.spawn(ffmpeg, [
- '-i', file.path,
- '-f', format,
- '-loglevel', 'error',
- '-movflags', 'frag_keyframe+empty_moov',
- '-vcodec', 'copy' ,
- '-'
- ], {
- stdio: [
- 'pipe', 'pipe', 'pipe', 'pipe', 'pipe',
- ],
- })
-
- res.setHeader('Content-Disposition', `attachment; filename="${file.originalname.substring(0, file.originalname.lastIndexOf('.'))}.${formats[format] || format}"`);
- ffmpegProcess.stdio[1].pipe(res)
-
- .on("close", () => {
- fs.rmSync(file.path)
- })
-})
-
app.get("/download", async (req, res) => {
const url = req.query.url
const format = req.query.format || 'mp4'
@@ -67,110 +22,7 @@ app.get("/download", async (req, res) => {
res.setHeader("X-Accel-Buffering", "no")
- if (!ytdl.validateURL(url)) {
- res.header("Content-Type", "text/html")
- res.write(``)
- res.write(`
Invalid URL! Check the url for any errors!
URL: ${url}
`)
- return
- }
- var vidinfo = await ytdl.getBasicInfo(url)
-
- const ogname = vidinfo.videoDetails.title
- var filename = ""
-
- for (let index = 0; index < ogname.length; index++) {
- const letter = ogname[index];
- if ((characters + characters.toUpperCase()).includes(letter)) {
- filename += letter
- }
- }
-
- if ("mp3 ogg wav".includes(format)) {
- var audio = ytdl(url, { filter: 'audioonly', quality: quality })
-
- const ffmpegProcess = cp.spawn(ffmpeg, [
- '-i', `pipe:3`,
- '-c:v', 'copy',
- '-c:a', 'libmp3lame',
- '-preset', preset,
- '-f', format,
- '-loglevel', 'error',
- '-'
- ], {
- stdio: [
- 'pipe', 'pipe', 'pipe', 'pipe', 'pipe',
- ],
- })
-
- audio.pipe(ffmpegProcess.stdio[3])
-
- res.setHeader('Content-Disposition', `attachment; filename="${filename}.${formats[format] || format}"`);
-
- ffmpegProcess.stdio[1].pipe(res)
-
- } else if (defin == "hd") {
- var video = ytdl(url, { filter: 'videoonly', quality: quality })
- var audio = ytdl(url, { filter: 'audioonly', highWaterMark: 1 << 25 })
-
- const ffmpegProcess = cp.spawn(ffmpeg, [
- '-i', `pipe:3`,
- '-i', `pipe:4`,
- '-map', '0:v',
- '-map', '1:a',
- '-c:v', 'copy',
- '-c:a', 'libmp3lame',
- '-crf', '27',
- '-preset', preset,
- '-movflags', 'frag_keyframe+empty_moov',
- '-f', format,
- '-loglevel', 'error',
- '-map_metadata', '0',
- '-'
- ], {
- stdio: [
- 'pipe', 'pipe', 'pipe', 'pipe', 'pipe',
- ],
- })
-
- video.pipe(ffmpegProcess.stdio[3])
- audio.pipe(ffmpegProcess.stdio[4])
-
- res.setHeader('Content-Disposition', `attachment; filename="${filename}.${formats[format] || format}"`);
- ffmpegProcess.stdio[1].pipe(res)
-
- } else {
- if (format != 'mp4') {
- var video = ytdl(url, { filter: 'videoandaudio', quality: quality, highWaterMark: 1 << 25 })
-
- const ffmpegProcess = cp.spawn(ffmpeg, [
- '-i', `pipe:3`,
- '-preset', preset,
- '-f', format,
- '-loglevel', 'error',
- '-c:v', 'copy',
- '-c:a', 'libmp3lame',
- '-movflags', 'frag_keyframe+empty_moov',
- '-map_metadata', '0',
- '-'
- ], {
- stdio: [
- 'pipe', 'pipe', 'pipe', 'pipe', 'pipe',
- ],
- })
-
- video.pipe(ffmpegProcess.stdio[3])
-
- res.setHeader('Content-Disposition', `attachment; filename="${filename}.${formats[format] || format}"`);
- // res.setHeader('Content-Length', fs.readFileSync(dest).length)
-
- ffmpegProcess.stdio[1].pipe(res)
- } else {
- var video = ytdl(url, { filter: 'videoandaudio', quality: quality, highWaterMark: 1 << 25 })
- res.setHeader('Content-Disposition', `attachment; filename="${filename}.${formats[format] || format}"`);
- video.pipe(res)
- }
- }
})