ilhamdev commited on
Commit
6b9d192
·
verified ·
1 Parent(s): f386153

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +29 -28
index.js CHANGED
@@ -88,35 +88,36 @@ const app = express()
88
  .use(express.json())
89
  .all('/', (_, res) => res.send('Hello World'))
90
  .get('/yt', async (req, res) => {
91
- const host = 'https://' + req.get('host');
92
- try {
93
- let { url, type, quality, json } = req.query;
94
- if (!ytIdRegex.test(url)) return res.json({ message: 'Invalid URL' });
95
- if (!!json) {
96
- let ytId = ytIdRegex.exec(url)?.[1];
97
- if (!ytId) return res.json({ message: 'No video id found' });
98
- let data = await yts({ videoId: ytId });
99
- return res.json({
100
- ...data,
101
- download: {
102
- audio: `${host}/yt?url=${url}&type=audio&quality=`,
103
- video: `${host}/yt?url=${url}&type=video&quality=`,
104
- }
105
- });
106
- }
107
- if (!type || !/audio|video/i.test(type)) type = 'video';
108
- let data = await youtubedl(url).catch(e => console.log(e));
109
- if (!data) return res.json({ message: 'Error: link download not found' });
110
- type = type.toLowerCase();
111
- let result = quality ? Object.values(data[type]).find(x => x.quality == quality) : Object.values(data[type])[0];
112
- if (quality && !result) return res.json({ message: `Invalid quality: ${quality}, available quality (${Object.keys(data[type]).join('/')})` });
113
- if (!result) return res.json({ message: 'Error: can\'t download' });
114
- res.redirect(await result.download());
115
- } catch (e) {
116
- console.log(e);
117
- res.json({ message: e });
118
  }
119
- })
 
 
 
 
 
 
 
 
 
 
 
 
120
  .get('/search', async (req, res) => {
121
  try {
122
  let q = req.query.q || req.query.query;
 
88
  .use(express.json())
89
  .all('/', (_, res) => res.send('Hello World'))
90
  .get('/yt', async (req, res) => {
91
+ const host = 'https://' + req.get('host');
92
+ try {
93
+ let { url, type, quality, json } = req.query;
94
+ if (!ytIdRegex.test(url)) return res.json({ message: 'Invalid URL' });
95
+ if (!!json) {
96
+ let ytId = ytIdRegex.exec(url)?.[1];
97
+ if (!ytId) return res.json({ message: 'No video id found' });
98
+ let data = await yts({ videoId: ytId });
99
+ const downloadUrls = {
100
+ audio: `${host}/yt?url=${url}&type=audio&quality=`,
101
+ video: `${host}/yt?url=${url}&type=video&quality=`,
102
+ };
103
+ return res.json({
104
+ ...data,
105
+ download: downloadUrls
106
+ });
 
 
 
 
 
 
 
 
 
 
 
107
  }
108
+ if (!type || !/audio|video/i.test(type)) type = 'video';
109
+ let data = await youtubedl(url).catch(e => console.log(e));
110
+ if (!data) return res.json({ message: 'Error: link download not found' });
111
+ type = type.toLowerCase();
112
+ let result = quality ? Object.values(data[type]).find(x => x.quality == quality) : Object.values(data[type])[0];
113
+ if (quality && !result) return res.json({ message: `Invalid quality: ${quality}, available quality (${Object.keys(data[type]).join('/')})` });
114
+ if (!result) return res.json({ message: 'Error: can\'t download' });
115
+ res.redirect(await result.download());
116
+ } catch (e) {
117
+ console.log(e);
118
+ res.json({ message: e });
119
+ }
120
+ })
121
  .get('/search', async (req, res) => {
122
  try {
123
  let q = req.query.q || req.query.query;