ilhamdev commited on
Commit
0471855
·
verified ·
1 Parent(s): 31e4fbb

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +31 -27
index.js CHANGED
@@ -279,8 +279,18 @@ async function fileDitch(media){
279
  async function ytAPI(url) {
280
  try {
281
  const ID = ytdl.getVideoID(url)
282
- let videoStream = await ytdl(ID, { filter: 'audioandvideo', quality: 'highestvideo' });
283
- let audioStream = await ytdl(ID, {filter: "audioandvideo", quality:"lowest"})
 
 
 
 
 
 
 
 
 
 
284
  let buffermp4 = await streamToBuffer(videoStream)
285
  let buffermp3 = await streamToBuffer(audioStream)
286
  buffermp3 = await convertMp4ToAudio(buffermp3)
@@ -509,34 +519,28 @@ const app = express()
509
 
510
 
511
  .get('/yt', async (req, res) => {
512
- const host = 'https://' + req.get('host');
513
  try {
514
- let { url, type, quality, json } = req.query;
515
- if (!ytIdRegex.test(url)) return res.json({ message: 'Invalid URL' });
516
- if (!!json) {
517
- let ytId = ytIdRegex.exec(url)?.[1];
518
- if (!ytId) return res.json({ message: 'No video id found' });
519
- let data = await yts({ videoId: ytId });
520
- const downloadUrls = {
521
- audio: `${host}/yt?url=${url}&type=audio&quality=128kbps`,
522
- video: `${host}/yt?url=${url}&type=video&quality=`,
523
- };
524
- return res.json({
525
- ...data,
526
- download: downloadUrls
527
- });
528
  }
529
- if (!type || !/audio|video/i.test(type)) type = 'video';
530
- let data = await youtubedl(url).catch(e => console.log(e));
531
- if (!data) return res.json({ message: 'Error: link download not found' });
532
- type = type.toLowerCase();
533
- let result = quality ? Object.values(data[type]).find(x => x.quality == quality) : Object.values(data[type])[0];
534
- if (quality && !result) return res.json({ message: `Invalid quality: ${quality}, available quality (${Object.keys(data[type]).join('/')})` });
535
- if (!result) return res.json({ message: 'Error: can\'t download' });
536
- res.redirect(await result.download());
537
- } catch (e) {
 
538
  console.log(e);
539
- return res.json({ message: e.message });
540
  }
541
  })
542
  .get('/ig', async (req,res) => {
 
279
  async function ytAPI(url) {
280
  try {
281
  const ID = ytdl.getVideoID(url)
282
+ let videoStream = await ytdl(ID, { filter: 'audioandvideo', quality: 'highestvideo',requestOptions: {
283
+ headers: {
284
+ 'User-Agent': generateRandomUserAgent(),
285
+ 'X-Forwarded-For': generateRandomIP()
286
+ }
287
+ } });
288
+ let audioStream = await ytdl(ID, {filter: "audioandvideo", quality:"lowest", requestOptions: {
289
+ headers: {
290
+ 'User-Agent': generateRandomUserAgent(),
291
+ 'X-Forwarded-For': generateRandomIP()
292
+ }
293
+ }})
294
  let buffermp4 = await streamToBuffer(videoStream)
295
  let buffermp3 = await streamToBuffer(audioStream)
296
  buffermp3 = await convertMp4ToAudio(buffermp3)
 
519
 
520
 
521
  .get('/yt', async (req, res) => {
 
522
  try {
523
+ let { url } = req.query;
524
+ //if (!ytIdRegex.test(url)) return res.json({ message: 'Invalid URL' });
525
+ if (!ytdl.validateURL(url)) return res.json({ message: 'Invalid URL' });
526
+ let videoID = ytdl.getVideoID(url);
527
+ let dataInfo = await ytdl.getInfo(videoID, {requestOptions: {
528
+ headers: {
529
+ 'User-Agent': generateRandomUserAgent(),
530
+ 'X-Forwarded-For': generateRandomIP()
 
 
 
 
 
 
531
  }
532
+ }}) || {};
533
+ //let otherAPI = await (await axios.get("https://line.1010diy.com/web/free-mp3-finder/detail?url="+url))?.data?.data ? await (await axios.get("https://line.1010diy.com/web/free-mp3-finder/detail?url="+url))?.data?.data : null
534
+
535
+ let response = {
536
+ metadata: dataInfo,
537
+ //other: otherAPI || null
538
+ };
539
+
540
+ return res.json(response);
541
+ } catch (e) {
542
  console.log(e);
543
+ return res.status(500).json({ message: e.message });
544
  }
545
  })
546
  .get('/ig', async (req,res) => {