yt-cli


Logs | Files | README | README | LICENSE | GitLab


1
commit 857edaf986e91a05c25aadcb94c93e2b27ae2f4a
2
Author: Connor Etherington <[email protected]>
3
Date:   Mon Sep 4 04:59:06 2023 +0200
4
5
    Auto-Commit Update - 20230904
6
---
7
 PKGBUILD                                  |   2 +-
8
 usr/lib/node_modules/yt-cli/lib/yt-cli.js |  68 ++++-
9
 usr/lib/node_modules/yt-cli/yarn.lock     | 483 ++++++++++++++++++++++++++++++
10
 3 files changed, 538 insertions(+), 15 deletions(-)
11
12
diff --git a/PKGBUILD b/PKGBUILD
13
index 82b04d2..c41a72a 100644
14
--- a/PKGBUILD
15
+++ b/PKGBUILD
16
@@ -3,7 +3,7 @@
17
 pkgname=yt-cli
18
 pkgver=0.2.3
19
 pkgrel=1
20
-pkgdesc="An easy to use CLI YouTube client"
21
+pkgdesc="A CLI YouTube client, with buit-in search and download capabilities."
22
 arch=('any')
23
 url="https://gitlab.com/a4to/${pkgname}"
24
 license=('MIT')
25
diff --git a/usr/lib/node_modules/yt-cli/lib/yt-cli.js b/usr/lib/node_modules/yt-cli/lib/yt-cli.js
26
index 284715b..942f050 100755
27
--- a/usr/lib/node_modules/yt-cli/lib/yt-cli.js
28
+++ b/usr/lib/node_modules/yt-cli/lib/yt-cli.js
29
@@ -49,6 +49,19 @@ const getData = async (searchTerm) => {
30
   return vidList;
31
 }
32
 
33
+const getTitle = async (url) => {
34
+  let data = await axios.get(url).then(res => { return res.data });
35
+  data = await beautify(data);
36
+  data = data.match(/ytInitialData\s=\s(.*)/);
37
+  data = data.toString().replace('ytInitialData = ', '');
38
+  data = JSON.parse(JSON.stringify(data.replace(/;<\/script>.*/, '')), null, 2);
39
+
40
+  let vidTitle = JSON.parse(data).contents.twoColumnWatchNextResults.results.results.contents[0].videoPrimaryInfoRenderer.title.runs[0].text || false;
41
+  return vidTitle || url.replace(/https?:\/\/(www.)?youtube.com\/watch\?v=/, '');
42
+}
43
+
44
+
45
+
46
 const spin = async (func) => {
47
   console.log();
48
   const result = await logger(func(), " Downloading video...")
49
@@ -71,7 +84,8 @@ const main = async (search) => {
50
   let help = false,
51
       to = false,
52
       auto = false,
53
-      download = false;
54
+      download = false,
55
+      link = false;
56
 
57
   if(search) {
58
 
59
@@ -80,9 +94,10 @@ const main = async (search) => {
60
       .replace(/--?a(uto)?\s?/, '')
61
       .replace(/--?d(ownload)?\s?/, '')
62
       .replace(/-dt\s?/, '')
63
+      .replace(/--?l(ink)?\s?/, '')
64
       .replace(/ /g, '') === '') {
65
 
66
-      await sh(`echo -e "\n  Usage: yt-cli [options] [search-term]\n\n    -a | --auto     : auto select first result\n    -d | --download : download selected video to \${HOME}/yt-cli\n    -t | --to       : download selected video to specified directory\n    -h | --help     : show this help message\n\n"`);
67
+      await sh(`echo -e "\n  Usage: yt-cli [options] [search-term]\n\n    -a | --auto     : auto select first result\n    -d | --download : download selected video to \${HOME}/yt-cli\n    -t | --to       : download selected video to specified directory\n    -l | --link     : Directly provide a URL/Link\n    -h | --help     : show this help message\n\n"`);
68
 
69
       help = true;
70
     } else {
71
@@ -93,6 +108,7 @@ const main = async (search) => {
72
       .replace(/--?a(uto)?\s?/, '')
73
       .replace(/--?d(ownload)?\s?/, '')
74
       .replace(/-dt\s?/, '')
75
+      .replace(/--?l(ink)?\s?/, '')
76
       .replace(/ /g, '') === '') {
77
 
78
       to = response.searchTerm.split(/--?to?\s/)[1] ? response.searchTerm.split(/--?to?\s/)[1].split(' ')[0] : false;
79
@@ -105,6 +121,7 @@ const main = async (search) => {
80
     if(response.searchTerm.match(/-dt\s*/) || response.searchTerm.match(/--download-to\s*/)) if(response.searchTerm.split(/-dt\s/)[0]
81
       .replace(/--?a(uto)?\s?/, '')
82
       .replace(/--?d(ownload)?\s?/, '')
83
+      .replace(/--?l(ink)?\s?/, '')
84
       .replace(/ /g, '') === '') {
85
 
86
 
87
@@ -120,6 +137,7 @@ const main = async (search) => {
88
     if(response.searchTerm.match(/-a\s*?/) || response.searchTerm.match(/--auto\s*?/)) if(response.searchTerm.split(/--?a(uto)?\s?/)[0]
89
       .replace(/--?d(ownload)?\s?/, '')
90
       .replace(/-dt\s?/, '')
91
+      .replace(/--?l(ink)?\s?/, '')
92
       .replace(/ /g, '') === '') {
93
 
94
       response.searchTerm = response.searchTerm.replace(/--?a(uto)?\s/, '');
95
@@ -128,6 +146,7 @@ const main = async (search) => {
96
 
97
     if(response.searchTerm.match(/-d\s*/) || response.searchTerm.match(/--download\s*?/)) if(response.searchTerm.split(/--?d(ownload)?\s?/)[0]
98
       .replace(/-dt\s?/, '')
99
+      .replace(/--?l(ink)?\s?/, '')
100
       .replace(/ /g, '') === '') {
101
 
102
       response.searchTerm = response.searchTerm.replace(/--?d(ownload)?\s/, '');
103
@@ -138,12 +157,23 @@ const main = async (search) => {
104
       download = false;
105
     }
106
 
107
+    if(response.searchTerm.match(/-l\s*/) || response.searchTerm.match(/--link\s*?/)) if(response.searchTerm.split(/--?l(ink)?\s?/)[0]
108
+      .replace(/ /g, '') === '') {
109
+
110
+      response.url = response.searchTerm.replace(/--?l(ink)?\s/, '');
111
+      response.searchTerm =  response.url;
112
+      response.title = await getTitle(response.url);
113
+      link = true;
114
+
115
+    }
116
+
117
 
118
   } else {
119
     help = false;
120
     auto = false;
121
     download = false;
122
     to = false;
123
+    link = false;
124
   }
125
 
126
 
127
@@ -154,21 +184,31 @@ const main = async (search) => {
128
     process.exit(0);
129
   }
130
 
131
+  let selectedVideo;
132
 
133
-  const data = await getData(response.searchTerm);
134
-  const list = data.map((d, i) => {
135
-    return `${i + 1}. ${d.title}`;
136
-  });
137
+  if(link) {
138
+    selectedVideo = {
139
+      title: response.title,
140
+      url: response.url
141
+    }
142
+  } else {
143
 
144
-  const response2 = auto ? { video: 0 } : await prompts({
145
-    type: 'select',
146
-    name: 'video',
147
-    message: 'Select video: ',
148
-    choices: list,
149
-    initial: 0
150
-  });
151
+    const data = await getData(response.searchTerm);
152
+    const list = data.map((d, i) => {
153
+      return `${i + 1}. ${d.title}`;
154
+    });
155
+
156
+    const response2 = auto ? { video: 0 } : await prompts({
157
+      type: 'select',
158
+      name: 'video',
159
+      message: 'Select video: ',
160
+      choices: list,
161
+      initial: 0
162
+    });
163
 
164
-  const selectedVideo = data[response2.video];
165
+    selectedVideo = data[response2.video];
166
+
167
+  }
168
 
169
   if(download) {
170
     if(!to) to = os.homedir() + '/yt-cli';
171
diff --git a/usr/lib/node_modules/yt-cli/yarn.lock b/usr/lib/node_modules/yt-cli/yarn.lock
172
new file mode 100644
173
index 0000000..188e523
174
--- /dev/null
175
+++ b/usr/lib/node_modules/yt-cli/yarn.lock
176
@@ -0,0 +1,483 @@
177
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
178
+# yarn lockfile v1
179
+
180
+
181
+ansi-escapes@^3.0.0:
182
+  version "3.2.0"
183
+  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
184
+  integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
185
+
186
+ansi-regex@^3.0.0:
187
+  version "3.0.1"
188
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
189
+  integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
190
+
191
+ansi-styles@^3.2.1:
192
+  version "3.2.1"
193
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
194
+  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
195
+  dependencies:
196
+    color-convert "^1.9.0"
197
+
198
+asynckit@^0.4.0:
199
+  version "0.4.0"
200
+  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
201
+  integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
202
+
203
+axios@^1.4.0:
204
+  version "1.4.0"
205
+  resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f"
206
+  integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==
207
+  dependencies:
208
+    follow-redirects "^1.15.0"
209
+    form-data "^4.0.0"
210
+    proxy-from-env "^1.1.0"
211
+
212
+bin-version-check@~5.1.0:
213
+  version "5.1.0"
214
+  resolved "https://registry.yarnpkg.com/bin-version-check/-/bin-version-check-5.1.0.tgz#788e80e036a87313f8be7908bc20e5abe43f0837"
215
+  integrity sha512-bYsvMqJ8yNGILLz1KP9zKLzQ6YpljV3ln1gqhuLkUtyfGi3qXKGuK2p+U4NAvjVFzDFiBBtOpCOSFNuYYEGZ5g==
216
+  dependencies:
217
+    bin-version "^6.0.0"
218
+    semver "^7.5.3"
219
+    semver-truncate "^3.0.0"
220
+
221
+bin-version@^6.0.0:
222
+  version "6.0.0"
223
+  resolved "https://registry.yarnpkg.com/bin-version/-/bin-version-6.0.0.tgz#08ecbe5fc87898b441425e145f9e105064d00315"
224
+  integrity sha512-nk5wEsP4RiKjG+vF+uG8lFsEn4d7Y6FVDamzzftSunXOoOcOOkzcWdKVlGgFFwlUQCj63SgnUkLLGF8v7lufhw==
225
+  dependencies:
226
+    execa "^5.0.0"
227
+    find-versions "^5.0.0"
228
+
229
+chalk@^2.4.1:
230
+  version "2.4.2"
231
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
232
+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
233
+  dependencies:
234
+    ansi-styles "^3.2.1"
235
+    escape-string-regexp "^1.0.5"
236
+    supports-color "^5.3.0"
237
+
238
+child_process@^1.0.2:
239
+  version "1.0.2"
240
+  resolved "https://registry.yarnpkg.com/child_process/-/child_process-1.0.2.tgz#b1f7e7fc73d25e7fd1d455adc94e143830182b5a"
241
+  integrity sha512-Wmza/JzL0SiWz7kl6MhIKT5ceIlnFPJX+lwUGj7Clhy5MMldsSoJR0+uvRzOS5Kv45Mq7t1PoE8TsOA9bzvb6g==
242
+
243
+cli-cursor@^2.0.0:
244
+  version "2.1.0"
245
+  resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
246
+  integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==
247
+  dependencies:
248
+    restore-cursor "^2.0.0"
249
+
250
+cli-spinners@^1.3.1:
251
+  version "1.3.1"
252
+  resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a"
253
+  integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==
254
+
255
+color-convert@^1.9.0:
256
+  version "1.9.3"
257
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
258
+  integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
259
+  dependencies:
260
+    color-name "1.1.3"
261
+
262
+[email protected]:
263
+  version "1.1.3"
264
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
265
+  integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
266
+
267
+colors@^1.4.0:
268
+  version "1.4.0"
269
+  resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
270
+  integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
271
+
272
+combined-stream@^1.0.8:
273
+  version "1.0.8"
274
+  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
275
+  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
276
+  dependencies:
277
+    delayed-stream "~1.0.0"
278
+
279
+cross-spawn@^7.0.3:
280
+  version "7.0.3"
281
+  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
282
+  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
283
+  dependencies:
284
+    path-key "^3.1.0"
285
+    shebang-command "^2.0.0"
286
+    which "^2.0.1"
287
+
288
+dargs@~7.0.0:
289
+  version "7.0.0"
290
+  resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc"
291
+  integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==
292
+
293
+decompress-response@^6.0.0:
294
+  version "6.0.0"
295
+  resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc"
296
+  integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
297
+  dependencies:
298
+    mimic-response "^3.1.0"
299
+
300
+delayed-stream@~1.0.0:
301
+  version "1.0.0"
302
+  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
303
+  integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
304
+
305
+escape-string-regexp@^1.0.5:
306
+  version "1.0.5"
307
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
308
+  integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
309
+
310
+execa@^5.0.0, execa@~5.1.0:
311
+  version "5.1.1"
312
+  resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
313
+  integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
314
+  dependencies:
315
+    cross-spawn "^7.0.3"
316
+    get-stream "^6.0.0"
317
+    human-signals "^2.1.0"
318
+    is-stream "^2.0.0"
319
+    merge-stream "^2.0.0"
320
+    npm-run-path "^4.0.1"
321
+    onetime "^5.1.2"
322
+    signal-exit "^3.0.3"
323
+    strip-final-newline "^2.0.0"
324
+
325
+find-versions@^5.0.0:
326
+  version "5.1.0"
327
+  resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-5.1.0.tgz#973f6739ce20f5e439a27eba8542a4b236c8e685"
328
+  integrity sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==
329
+  dependencies:
330
+    semver-regex "^4.0.5"
331
+
332
+follow-redirects@^1.15.0:
333
+  version "1.15.2"
334
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
335
+  integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
336
+
337
+form-data@^4.0.0:
338
+  version "4.0.0"
339
+  resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
340
+  integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
341
+  dependencies:
342
+    asynckit "^0.4.0"
343
+    combined-stream "^1.0.8"
344
+    mime-types "^2.1.12"
345
+
346
+fs@^0.0.1-security:
347
+  version "0.0.1-security"
348
+  resolved "https://registry.yarnpkg.com/fs/-/fs-0.0.1-security.tgz#8a7bd37186b6dddf3813f23858b57ecaaf5e41d4"
349
+  integrity sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==
350
+
351
+get-stream@^6.0.0:
352
+  version "6.0.1"
353
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
354
+  integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
355
+
356
+has-flag@^3.0.0:
357
+  version "3.0.0"
358
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
359
+  integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
360
+
361
+html-formatter@^0.1.9:
362
+  version "0.1.9"
363
+  resolved "https://registry.yarnpkg.com/html-formatter/-/html-formatter-0.1.9.tgz#58e8859712f3d4d9e7094027517c4c46f4c336b8"
364
+  integrity sha512-ao56oQHElDyKjnRara+Tw9iT6Ieuu6MRiBvCOCn2yhKtdT2Z9ViAyBal2j83bAf8sc6qAzGU0gkNVlFzkVAFHQ==
365
+
366
+human-signals@^2.1.0:
367
+  version "2.1.0"
368
+  resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
369
+  integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
370
+
371
+humanize-duration@^3.15.3:
372
+  version "3.29.0"
373
+  resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.29.0.tgz#beffaf7938388cd0f38c494f8970d6faebecf3c0"
374
+  integrity sha512-G5wZGwYTLaQAmYqhfK91aw3xt6wNbJW1RnWDh4qP1PvF4T/jnkjx2RVhG5kzB2PGsYGTn+oSDBQp+dMdILLxcg==
375
+
376
+[email protected]:
377
+  version "2.0.3"
378
+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
379
+  integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==
380
+
381
+is-fullwidth-code-point@^2.0.0:
382
+  version "2.0.0"
383
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
384
+  integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==
385
+
386
+is-stream@^2.0.0:
387
+  version "2.0.1"
388
+  resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
389
+  integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
390
+
391
+is-unix@~2.0.1:
392
+  version "2.0.7"
393
+  resolved "https://registry.yarnpkg.com/is-unix/-/is-unix-2.0.7.tgz#77a5ad10df9fe3735a01a7934822fe47d23d11f7"
394
+  integrity sha512-5aio7Qef7QKjQxdb52cXAmim9Bh3+y3yc9IA2IsXWwZVlc1rRsJHWtBxNwGBu9KqW7PJCbhepNIkfFdilRkHpQ==
395
+
396
+isexe@^2.0.0:
397
+  version "2.0.0"
398
+  resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
399
+  integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
400
+
401
+kleur@^3.0.3:
402
+  version "3.0.3"
403
+  resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
404
+  integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
405
+
406
+log-update@^2.3.0:
407
+  version "2.3.0"
408
+  resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708"
409
+  integrity sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==
410
+  dependencies:
411
+    ansi-escapes "^3.0.0"
412
+    cli-cursor "^2.0.0"
413
+    wrap-ansi "^3.0.1"
414
+
415
+lru-cache@^6.0.0:
416
+  version "6.0.0"
417
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
418
+  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
419
+  dependencies:
420
+    yallist "^4.0.0"
421
+
422
+merge-stream@^2.0.0:
423
+  version "2.0.0"
424
+  resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
425
+  integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
426
+
427
+[email protected]:
428
+  version "1.52.0"
429
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
430
+  integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
431
+
432
+mime-types@^2.1.12:
433
+  version "2.1.35"
434
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
435
+  integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
436
+  dependencies:
437
+    mime-db "1.52.0"
438
+
439
+mimic-fn@^1.0.0:
440
+  version "1.2.0"
441
+  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
442
+  integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
443
+
444
+mimic-fn@^2.1.0:
445
+  version "2.1.0"
446
+  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
447
+  integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
448
+
449
+mimic-response@^3.1.0:
450
+  version "3.1.0"
451
+  resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
452
+  integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
453
+
454
+npm-run-path@^4.0.1:
455
+  version "4.0.1"
456
+  resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
457
+  integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
458
+  dependencies:
459
+    path-key "^3.0.0"
460
+
461
+once@^1.3.1:
462
+  version "1.4.0"
463
+  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
464
+  integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
465
+  dependencies:
466
+    wrappy "1"
467
+
468
+onetime@^2.0.0:
469
+  version "2.0.1"
470
+  resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
471
+  integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==
472
+  dependencies:
473
+    mimic-fn "^1.0.0"
474
+
475
+onetime@^5.1.2:
476
+  version "5.1.2"
477
+  resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
478
+  integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
479
+  dependencies:
480
+    mimic-fn "^2.1.0"
481
+
482
+os@^0.1.2:
483
+  version "0.1.2"
484
+  resolved "https://registry.yarnpkg.com/os/-/os-0.1.2.tgz#f29a50c62908516ba42652de42f7038600cadbc2"
485
+  integrity sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==
486
+
487
+path-key@^3.0.0, path-key@^3.1.0:
488
+  version "3.1.1"
489
+  resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
490
+  integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
491
+
492
+path@^0.12.7:
493
+  version "0.12.7"
494
+  resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f"
495
+  integrity sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==
496
+  dependencies:
497
+    process "^0.11.1"
498
+    util "^0.10.3"
499
+
500
+process@^0.11.1:
501
+  version "0.11.10"
502
+  resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
503
+  integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
504
+
505
+progress-estimator@^0.3.1:
506
+  version "0.3.1"
507
+  resolved "https://registry.yarnpkg.com/progress-estimator/-/progress-estimator-0.3.1.tgz#5a4c5bffa2cca09ac233c43bb6a644cbe6706920"
508
+  integrity sha512-I5bwE35adOrA2rfZ9iHHPESUp5C6cXrZd0J8LdFD9J+66ijSugBwZHooPCROf94Ox8YZaUyvTLViqSiRvBhSoA==
509
+  dependencies:
510
+    chalk "^2.4.1"
511
+    cli-spinners "^1.3.1"
512
+    humanize-duration "^3.15.3"
513
+    log-update "^2.3.0"
514
+
515
+prompts@^2.4.2:
516
+  version "2.4.2"
517
+  resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
518
+  integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
519
+  dependencies:
520
+    kleur "^3.0.3"
521
+    sisteransi "^1.0.5"
522
+
523
+proxy-from-env@^1.1.0:
524
+  version "1.1.0"
525
+  resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
526
+  integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
527
+
528
+restore-cursor@^2.0.0:
529
+  version "2.0.0"
530
+  resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
531
+  integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==
532
+  dependencies:
533
+    onetime "^2.0.0"
534
+    signal-exit "^3.0.2"
535
+
536
+semver-regex@^4.0.5:
537
+  version "4.0.5"
538
+  resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-4.0.5.tgz#fbfa36c7ba70461311f5debcb3928821eb4f9180"
539
+  integrity sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==
540
+
541
+semver-truncate@^3.0.0:
542
+  version "3.0.0"
543
+  resolved "https://registry.yarnpkg.com/semver-truncate/-/semver-truncate-3.0.0.tgz#0e3b4825d4a4225d8ae6e7c72231182b42edba40"
544
+  integrity sha512-LJWA9kSvMolR51oDE6PN3kALBNaUdkxzAGcexw8gjMA8xr5zUqK0JiR3CgARSqanYF3Z1YHvsErb1KDgh+v7Rg==
545
+  dependencies:
546
+    semver "^7.3.5"
547
+
548
+semver@^7.3.5, semver@^7.5.3:
549
+  version "7.5.4"
550
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
551
+  integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
552
+  dependencies:
553
+    lru-cache "^6.0.0"
554
+
555
+shebang-command@^2.0.0:
556
+  version "2.0.0"
557
+  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
558
+  integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
559
+  dependencies:
560
+    shebang-regex "^3.0.0"
561
+
562
+shebang-regex@^3.0.0:
563
+  version "3.0.0"
564
+  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
565
+  integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
566
+
567
+signal-exit@^3.0.2, signal-exit@^3.0.3:
568
+  version "3.0.7"
569
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
570
+  integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
571
+
572
+simple-concat@^1.0.0:
573
+  version "1.0.1"
574
+  resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"
575
+  integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==
576
+
577
+simple-get@~4.0.1:
578
+  version "4.0.1"
579
+  resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543"
580
+  integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==
581
+  dependencies:
582
+    decompress-response "^6.0.0"
583
+    once "^1.3.1"
584
+    simple-concat "^1.0.0"
585
+
586
+sisteransi@^1.0.5:
587
+  version "1.0.5"
588
+  resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
589
+  integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
590
+
591
+string-width@^2.1.1:
592
+  version "2.1.1"
593
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
594
+  integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
595
+  dependencies:
596
+    is-fullwidth-code-point "^2.0.0"
597
+    strip-ansi "^4.0.0"
598
+
599
+strip-ansi@^4.0.0:
600
+  version "4.0.0"
601
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
602
+  integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==
603
+  dependencies:
604
+    ansi-regex "^3.0.0"
605
+
606
+strip-final-newline@^2.0.0:
607
+  version "2.0.0"
608
+  resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
609
+  integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
610
+
611
+supports-color@^5.3.0:
612
+  version "5.5.0"
613
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
614
+  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
615
+  dependencies:
616
+    has-flag "^3.0.0"
617
+
618
+util@^0.10.3:
619
+  version "0.10.4"
620
+  resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
621
+  integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==
622
+  dependencies:
623
+    inherits "2.0.3"
624
+
625
+which@^2.0.1:
626
+  version "2.0.2"
627
+  resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
628
+  integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
629
+  dependencies:
630
+    isexe "^2.0.0"
631
+
632
+wrap-ansi@^3.0.1:
633
+  version "3.0.1"
634
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba"
635
+  integrity sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==
636
+  dependencies:
637
+    string-width "^2.1.1"
638
+    strip-ansi "^4.0.0"
639
+
640
+wrappy@1:
641
+  version "1.0.2"
642
+  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
643
+  integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
644
+
645
+yallist@^4.0.0:
646
+  version "4.0.0"
647
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
648
+  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
649
+
650
+youtube-dl-exec@^2.4.2:
651
+  version "2.4.6"
652
+  resolved "https://registry.yarnpkg.com/youtube-dl-exec/-/youtube-dl-exec-2.4.6.tgz#5089475b34cb9f7d76846fec6cd40f79b0b2ed34"
653
+  integrity sha512-Ytsi4DR7uPyZiw4n40MLsElWW13vINl/+YoKwkMlkaTQSJsHr8/18z7aB9s2Lca7eaT0Q4Fdpt/zaI1Tt5NGUg==
654
+  dependencies:
655
+    bin-version-check "~5.1.0"
656
+    dargs "~7.0.0"
657
+    execa "~5.1.0"
658
+    is-unix "~2.0.1"
659
+    simple-get "~4.0.1"