fast-dirpy 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -12
- package/dist/chunk-DK24QP3J.js +2 -0
- package/dist/chunk-OYM7YQEE.js +1 -0
- package/dist/cli.js +1 -1
- package/dist/{config-BACwc8Uz.d.ts → config-DKxT5hQw.d.ts} +6 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +1 -1
- package/package.json +8 -6
- package/dist/chunk-4ZCL2CPC.js +0 -2
- package/dist/chunk-OTOEWWYP.js +0 -1
- /package/dist/{chunk-LP3GSA6N.js → chunk-HD53P4DN.js} +0 -0
package/README.md
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
|
|
6
6
|
[![npm version][npm-version-src]][npm-version-href]
|
|
7
7
|
[![npm downloads][npm-downloads-src]][npm-downloads-href]
|
|
8
|
-
[![bundle][bundle-src]][bundle-href]
|
|
9
8
|
[![JSDocs][jsdocs-src]][jsdocs-href]
|
|
10
9
|
[![License][license-src]][license-href]
|
|
11
10
|
|
|
@@ -33,9 +32,9 @@ npm i fast-dirpy -g
|
|
|
33
32
|
### Config file
|
|
34
33
|
|
|
35
34
|
> [!IMPORTANT]
|
|
36
|
-
> `fast-dirpy.config` can be `fast-dirpy.config.['ts', 'mts', 'cts', 'js', 'mjs', 'cjs']`
|
|
35
|
+
> `fast-dirpy.config` can be `fast-dirpy.config.['ts', 'mts', 'cts', 'js', 'mjs', 'cjs', 'json']`
|
|
37
36
|
|
|
38
|
-
You can create a `fast-dirpy.config
|
|
37
|
+
You can create a `fast-dirpy.config` file in your library root or same location in command line.
|
|
39
38
|
|
|
40
39
|
```ts
|
|
41
40
|
import { defineConfig } from 'fast-dirpy'
|
|
@@ -59,17 +58,19 @@ export default defineConfig({
|
|
|
59
58
|
# Proxy:
|
|
60
59
|
# -H, --proxyHost: proxy host
|
|
61
60
|
# -P, --proxyPort: proxy port
|
|
62
|
-
|
|
63
|
-
fast-dirpy get https
|
|
61
|
+
# -c, --config: Specified external config file.
|
|
62
|
+
# e.g.: fast-dirpy get https://xxx -c ~/Downloads/fast-dirpy.config.json
|
|
63
|
+
fast-dirpy get https\://www.youtube.com/watch\?v\=6c28qWDMPBA -H 127.0.0.1 -P 7890
|
|
64
64
|
|
|
65
65
|
# No proxy needed for Bilibili videos
|
|
66
|
+
# --bilibili: Tell fast-dirpy to get direct link from Bilibili, then bypass proxy.
|
|
66
67
|
fast-dirpy get --bilibili https://www.bilibili.com/video/BV1TSPeeGE35
|
|
67
68
|
```
|
|
68
69
|
|
|
69
70
|
if you have set your proxy config in `fast-dirpy.config.ts`, you can omit proxy parameters:
|
|
70
71
|
|
|
71
72
|
```shell
|
|
72
|
-
fast-dirpy get https\://www.youtube.com/watch\?v\=
|
|
73
|
+
fast-dirpy get https\://www.youtube.com/watch\?v\=6c28qWDMPBA
|
|
73
74
|
```
|
|
74
75
|
|
|
75
76
|
#### Download Video
|
|
@@ -80,16 +81,19 @@ fast-dirpy get https\://www.youtube.com/watch\?v\=SAXpBgkXt60
|
|
|
80
81
|
# Proxy:
|
|
81
82
|
# -H, --proxyHost: proxy host.
|
|
82
83
|
# -P, --proxyPort: proxy port.
|
|
83
|
-
|
|
84
|
+
# -c, --config: Specified external config file.
|
|
85
|
+
# e.g.: fast-dirpy get https://xxx -c ~/Downloads/fast-dirpy.config.json
|
|
86
|
+
fast-dirpy download https\://www.youtube.com/watch\?v\=6c28qWDMPBA -p ./test.mp4 -H 127.0.0.1 -P 7890
|
|
84
87
|
|
|
85
88
|
# No proxy needed for Bilibili videos
|
|
89
|
+
# --bilibili: Tell fast-dirpy to download from a Bilibili link.
|
|
86
90
|
fast-dirpy download --bilibili https://www.bilibili.com/video/BV1TSPeeGE35 -p ./test.mp4
|
|
87
91
|
```
|
|
88
92
|
|
|
89
93
|
if you have set your proxy config in `fast-dirpy.config.ts`, you can omit proxy parameters:
|
|
90
94
|
|
|
91
95
|
```shell
|
|
92
|
-
fast-dirpy download https\://www.youtube.com/watch\?v\=
|
|
96
|
+
fast-dirpy download https\://www.youtube.com/watch\?v\=6c28qWDMPBA -p ./test.mp4
|
|
93
97
|
```
|
|
94
98
|
|
|
95
99
|
For further CLI help:
|
|
@@ -100,11 +104,14 @@ fast-dirpy --help
|
|
|
100
104
|
|
|
101
105
|
### Use as a library
|
|
102
106
|
```ts
|
|
103
|
-
import { downloadVideoFromRawLink,
|
|
107
|
+
import { downloadVideoFromRawLink, getBilibiliLink, getDirectLink } from 'fast-dirpy'
|
|
104
108
|
|
|
105
109
|
// get direct link
|
|
106
110
|
const link = await getDirectLink(
|
|
107
|
-
|
|
111
|
+
{
|
|
112
|
+
url: '<url>',
|
|
113
|
+
cwd: '/path/to/external-config' // Optional: You can specify an external config file.
|
|
114
|
+
},
|
|
108
115
|
{
|
|
109
116
|
host: '127.0.0.1',
|
|
110
117
|
port: 7890
|
|
@@ -120,6 +127,7 @@ const link = await getBilibiliLink(
|
|
|
120
127
|
await downloadVideoFromRawLink({
|
|
121
128
|
url: '<url>',
|
|
122
129
|
path: './download.mp4',
|
|
130
|
+
cwd: '/path/to/external-config', // Optional: You can specify an external config file.
|
|
123
131
|
proxy: {
|
|
124
132
|
host: '127.0.0.1',
|
|
125
133
|
port: 7890
|
|
@@ -143,8 +151,6 @@ await downloadBilibiliVideo({
|
|
|
143
151
|
[npm-version-href]: https://npmjs.com/package/fast-dirpy
|
|
144
152
|
[npm-downloads-src]: https://img.shields.io/npm/dm/fast-dirpy?style=flat&colorA=080f12&colorB=1fa669
|
|
145
153
|
[npm-downloads-href]: https://npmjs.com/package/fast-dirpy
|
|
146
|
-
[bundle-src]: https://img.shields.io/bundlephobia/minzip/fast-dirpy?style=flat&colorA=080f12&colorB=1fa669&label=minzip
|
|
147
|
-
[bundle-href]: https://bundlephobia.com/result?p=fast-dirpy
|
|
148
154
|
[license-src]: https://img.shields.io/github/license/Vincent-the-gamer/fast-dirpy.svg?style=flat&colorA=080f12&colorB=1fa669
|
|
149
155
|
[license-href]: https://github.com/Vincent-the-gamer/fast-dirpy/blob/main/LICENSE
|
|
150
156
|
[jsdocs-src]: https://img.shields.io/badge/jsdocs-reference-080f12?style=flat&colorA=080f12&colorB=1fa669
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as L,b as I,c as a}from"./chunk-HD53P4DN.js";var P=L((ne,M)=>{"use strict";a();var v=function(r){return C(r)&&!U(r)};function C(e){return!!e&&typeof e=="object"}function U(e){var r=Object.prototype.toString.call(e);return r==="[object RegExp]"||r==="[object Date]"||R(e)}var V=typeof Symbol=="function"&&Symbol.for,$=V?Symbol.for("react.element"):60103;function R(e){return e.$$typeof===$}function N(e){return Array.isArray(e)?[]:{}}function m(e,r){return r.clone!==!1&&r.isMergeableObject(e)?l(N(e),e,r):e}function k(e,r,t){return e.concat(r).map(function(n){return m(n,t)})}function B(e,r){if(!r.customMerge)return l;var t=r.customMerge(e);return typeof t=="function"?t:l}function F(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(r){return Object.propertyIsEnumerable.call(e,r)}):[]}function j(e){return Object.keys(e).concat(F(e))}function D(e,r){try{return r in e}catch{return!1}}function K(e,r){return D(e,r)&&!(Object.hasOwnProperty.call(e,r)&&Object.propertyIsEnumerable.call(e,r))}function z(e,r,t){var n={};return t.isMergeableObject(e)&&j(e).forEach(function(o){n[o]=m(e[o],t)}),j(r).forEach(function(o){K(e,o)||(D(e,o)&&t.isMergeableObject(r[o])?n[o]=B(o,t)(e[o],r[o],t):n[o]=m(r[o],t))}),n}function l(e,r,t){t=t||{},t.arrayMerge=t.arrayMerge||k,t.isMergeableObject=t.isMergeableObject||v,t.cloneUnlessOtherwiseSpecified=m;var n=Array.isArray(r),o=Array.isArray(e),i=n===o;return i?n?t.arrayMerge(e,r,t):z(e,r,t):m(r,t)}l.all=function(r,t){if(!Array.isArray(r))throw new Error("first argument should be an array");return r.reduce(function(n,o){return l(n,o,t)},{})};var G=l;M.exports=G});a();import T from"node:process";import{consola as _}from"consola";var p=_.withTag("fast-dirpy");function re(e){"CONSOLA_LEVEL"in T.env||(p.level=e?0:3)}a();import W from"node:fs";import x from"axios";import Y from"jsdom";a();var g=I(P(),1);import{createConfigLoader as H}from"unconfig";var u={timeout:2e4};async function O(e,r){let t=u,n=H({sources:[{files:["fast-dirpy.config"],extensions:["ts","mts","cts","js","mjs","cjs","json"]}],cwd:r||process.cwd(),merge:!1}),{config:o,sources:i}=await n.load();return i.length?(p.info(`Config file found: ${i[0]}`),(0,g.default)((0,g.default)(t,o),e)):(0,g.default)(t,e)}var X={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36"},{JSDOM:J}=Y;async function Z(e,r=u){let{url:t,cwd:n}=e,{proxy:o,timeout:i}=await O(r,n),b=o?.host!==""?o:void 0,{data:f}=await x.get("https://dirpy.com/studio",{params:{url:t},headers:{...X,Referer:`https://dirpy.com/studio?url=${t}`},proxy:b,timeout:i}),{window:h}=new J(f),s="",c=h.document.getElementById("media-source");return c&&(s=c.src),s}async function w(e,r=u){let{path:t,url:n}=e,{proxy:o,timeout:i}=await O(r),b=o?.host!==""?o:void 0;if(n==="")return Promise.reject("Extract direct link failed!");let f=W.createWriteStream(t);return(await x({url:n,headers:{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36"},method:"GET",responseType:"stream",proxy:b,timeout:i,onDownloadProgress:s=>{let{loaded:c,total:A,progress:S}=s,E=`loaded:${c} total: ${A} progress: ${(S*100).toFixed(2)}%
|
|
2
|
+
`;p.info(E)}})).data.pipe(f),new Promise((s,c)=>{f.on("finish",s),f.on("error",c)})}async function ye(e,r=u){let{path:t,url:n,cwd:o}=e,i=await Z({url:n},r);await w({url:i,path:t,cwd:o},r)}a();function q(e){let r=e.match(/BV[a-zA-Z0-9]+/);return r?`https://bilibili-real-url.deno.dev/${r[0]}.mp4`:""}async function we(e){let{path:r,url:t}=e,n=q(t);n!==""?await w({url:n,path:r||"./download.mp4"}):console.error("Extract direct link failed!")}export{p as a,re as b,Z as c,w as d,ye as e,q as f,we as g};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as i}from"./chunk-HD53P4DN.js";i();function o(p){return p}export{o as a};
|
package/dist/cli.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as n,b as d,c as f,e as g,f as x,g as h}from"./chunk-DK24QP3J.js";import{c as m}from"./chunk-HD53P4DN.js";m();import{bold as b,dim as u}from"ansis";import{cac as P}from"cac";import k from"restore-cursor";var c={name:"fast-dirpy",type:"module",version:"0.1.6",description:"A simple library/CLI to download video using dirpy.com",author:"Vincent-the-gamer",license:"MIT",homepage:"https://github.com/Vincent-the-gamer/fast-dirpy#readme",repository:{type:"git",url:"git+https://github.com/Vincent-the-gamer/fast-dirpy.git"},bugs:{url:"https://github.com/Vincent-the-gamer/fast-dirpy/issues"},sideEffects:!1,main:"dist/index.js",module:"dist/index.js",types:"dist/index.d.ts",typesVersions:{"*":{".":["./dist/index.d.ts","./dist/cli.d.ts"]}},bin:{"fast-dirpy":"bin/fast-dirpy.js"},files:["dist"],scripts:{tsx:"tsx",build:"tsup",test:"vitest",dep:"taze major","lint:fix":"eslint . --fix",login:"pnpm login --registry https://registry.npmjs.com"},publishConfig:{registry:"https://registry.npmjs.com",access:"public"},dependencies:{ansis:"^3.17.0",axios:"^1.8.4",cac:"^6.7.14",consola:"^3.4.2",jsdom:"^26.1.0","restore-cursor":"^5.1.0",unconfig:"^7.3.1"},devDependencies:{"@antfu/eslint-config":"^4.12.0","@types/node":"^22.14.1",deepmerge:"^4.3.1",eslint:"^9.25.0",taze:"^19.0.4",tsup:"^8.4.0",tsx:"^4.19.3",typescript:"^5.8.3",vitest:"^3.1.1"}};var t=P("fast-dirpy"),{version:v}=c;t.command("get <url>","get video direct link.").option("--proxyHost, -H <proxyHost>","Proxy host.").option("--proxyPort, -P <proxyPort>","Proxy port.").option("--bilibili","Tell fast-dirpy to fetch a Bilibili link, then bypass proxy.").option("--config, -c <path>","Specify an external config file.").option("--silent","Suppress non-error logs").action(async(i,r)=>{let{proxyHost:o,proxyPort:p,bilibili:e,config:l,silent:a}=r;if(d(!!a),n.info(`fast-dirpy ${u(`v${v}`)} : ${b("Direct Link Getter")}.`),e){if(!i.includes("bilibili.com")){n.error("Please provide a valid Bilibili URL.");return}let s=await x(i);console.log(s)}else{let y=await f({url:i,cwd:l},o?{proxy:{host:o,port:p}}:void 0);console.log(y)}});t.command("download <url>","download a video.").option("--path, -p <path>","Download destination path + filename. e.g. /xxx/example.mp4.").option("--proxyHost, -H <proxyHost>","Proxy host.").option("--proxyPort, -P <proxyPort>","Proxy port.").option("--bilibili","Tell fast-dirpy to download from a Bilibili link.").option("--config, -c <path>","Specify an external config file.").option("--silent","Suppress non-error logs").action(async(i,r)=>{let{proxyHost:o,proxyPort:p,path:e,bilibili:l,config:a,silent:s}=r;d(!!s),n.info(`fast-dirpy ${u(`v${v}`)} : ${b("Video Downloader")}.`),l?await h({url:i,path:e}):g({url:i,path:e||"./download.mp4",cwd:a},o?{proxy:{host:o,port:p}}:void 0)});t.help();t.version(c.version);t.parse();k();
|
|
@@ -6,11 +6,16 @@ interface DirpyOptions {
|
|
|
6
6
|
};
|
|
7
7
|
timeout?: number;
|
|
8
8
|
}
|
|
9
|
+
interface DirectLinkParams {
|
|
10
|
+
url: string;
|
|
11
|
+
cwd?: string;
|
|
12
|
+
}
|
|
9
13
|
interface DownloadParams {
|
|
10
14
|
url: string;
|
|
11
15
|
path: string;
|
|
16
|
+
cwd?: string;
|
|
12
17
|
}
|
|
13
18
|
|
|
14
19
|
declare function defineConfig(options: DirpyOptions): DirpyOptions;
|
|
15
20
|
|
|
16
|
-
export { type
|
|
21
|
+
export { type DownloadParams as D, type DirectLinkParams as a, type DirpyOptions as b, defineConfig as d };
|
package/dist/config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { d as defineConfig } from './config-
|
|
1
|
+
export { d as defineConfig } from './config-DKxT5hQw.js';
|
package/dist/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
1
|
+
import{a}from"./chunk-OYM7YQEE.js";import"./chunk-HD53P4DN.js";export{a as defineConfig};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { D as
|
|
2
|
-
export { d as defineConfig } from './config-
|
|
3
|
-
|
|
4
|
-
declare function getDirectLink(url: string, options?: Partial<DirpyOptions>): Promise<string>;
|
|
5
|
-
declare function downloadVideo(params: DownloadParams, options?: Partial<DirpyOptions>): Promise<void>;
|
|
6
|
-
declare function downloadVideoFromRawLink(params: DownloadParams, options?: Partial<DirpyOptions>): Promise<void>;
|
|
1
|
+
import { D as DownloadParams, a as DirectLinkParams, b as DirpyOptions } from './config-DKxT5hQw.js';
|
|
2
|
+
export { d as defineConfig } from './config-DKxT5hQw.js';
|
|
7
3
|
|
|
8
4
|
declare function getBilibiliDirectLink(link: string): string;
|
|
9
5
|
declare function downloadBilibiliVideo(params: DownloadParams): Promise<void>;
|
|
10
6
|
|
|
11
|
-
|
|
7
|
+
declare function getDirectLink(params: DirectLinkParams, options?: Partial<DirpyOptions>): Promise<string>;
|
|
8
|
+
declare function downloadVideo(params: DownloadParams, options?: Partial<DirpyOptions>): Promise<void>;
|
|
9
|
+
declare function downloadVideoFromRawLink(params: DownloadParams, options?: Partial<DirpyOptions>): Promise<void>;
|
|
10
|
+
|
|
11
|
+
export { DirectLinkParams, DirpyOptions, DownloadParams, downloadBilibiliVideo, downloadVideo, downloadVideoFromRawLink, getBilibiliDirectLink, getDirectLink };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{c as r,d as e,e as f,f as m,g as p}from"./chunk-DK24QP3J.js";import{a as t}from"./chunk-OYM7YQEE.js";import{c as o}from"./chunk-HD53P4DN.js";o();export{t as defineConfig,p as downloadBilibiliVideo,e as downloadVideo,f as downloadVideoFromRawLink,m as getBilibiliDirectLink,r as getDirectLink};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fast-dirpy",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.6",
|
|
5
5
|
"description": "A simple library/CLI to download video using dirpy.com",
|
|
6
6
|
"author": "Vincent-the-gamer",
|
|
7
7
|
"license": "MIT",
|
|
@@ -36,21 +36,23 @@
|
|
|
36
36
|
"access": "public"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
+
"ansis": "^3.17.0",
|
|
39
40
|
"axios": "^1.8.4",
|
|
40
41
|
"cac": "^6.7.14",
|
|
41
|
-
"
|
|
42
|
+
"consola": "^3.4.2",
|
|
43
|
+
"jsdom": "^26.1.0",
|
|
42
44
|
"restore-cursor": "^5.1.0",
|
|
43
45
|
"unconfig": "^7.3.1"
|
|
44
46
|
},
|
|
45
47
|
"devDependencies": {
|
|
46
|
-
"@antfu/eslint-config": "^4.
|
|
47
|
-
"@types/node": "^22.
|
|
48
|
+
"@antfu/eslint-config": "^4.12.0",
|
|
49
|
+
"@types/node": "^22.14.1",
|
|
48
50
|
"deepmerge": "^4.3.1",
|
|
49
|
-
"eslint": "^9.
|
|
51
|
+
"eslint": "^9.25.0",
|
|
50
52
|
"taze": "^19.0.4",
|
|
51
53
|
"tsup": "^8.4.0",
|
|
52
54
|
"tsx": "^4.19.3",
|
|
53
|
-
"typescript": "^5.8.
|
|
55
|
+
"typescript": "^5.8.3",
|
|
54
56
|
"vitest": "^3.1.1"
|
|
55
57
|
},
|
|
56
58
|
"scripts": {
|
package/dist/chunk-4ZCL2CPC.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as E,b as T,c as i}from"./chunk-LP3GSA6N.js";var D=E((J,j)=>{"use strict";i();var _=function(r){return I(r)&&!L(r)};function I(e){return!!e&&typeof e=="object"}function L(e){var r=Object.prototype.toString.call(e);return r==="[object RegExp]"||r==="[object Date]"||R(e)}var v=typeof Symbol=="function"&&Symbol.for,U=v?Symbol.for("react.element"):60103;function R(e){return e.$$typeof===U}function V(e){return Array.isArray(e)?[]:{}}function l(e,r){return r.clone!==!1&&r.isMergeableObject(e)?s(V(e),e,r):e}function $(e,r,t){return e.concat(r).map(function(o){return l(o,t)})}function C(e,r){if(!r.customMerge)return s;var t=r.customMerge(e);return typeof t=="function"?t:s}function B(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(r){return Object.propertyIsEnumerable.call(e,r)}):[]}function h(e){return Object.keys(e).concat(B(e))}function M(e,r){try{return r in e}catch{return!1}}function F(e,r){return M(e,r)&&!(Object.hasOwnProperty.call(e,r)&&Object.propertyIsEnumerable.call(e,r))}function K(e,r,t){var o={};return t.isMergeableObject(e)&&h(e).forEach(function(n){o[n]=l(e[n],t)}),h(r).forEach(function(n){F(e,n)||(M(e,n)&&t.isMergeableObject(r[n])?o[n]=C(n,t)(e[n],r[n],t):o[n]=l(r[n],t))}),o}function s(e,r,t){t=t||{},t.arrayMerge=t.arrayMerge||$,t.isMergeableObject=t.isMergeableObject||_,t.cloneUnlessOtherwiseSpecified=l;var o=Array.isArray(r),n=Array.isArray(e),c=o===n;return c?o?t.arrayMerge(e,r,t):K(e,r,t):l(r,t)}s.all=function(r,t){if(!Array.isArray(r))throw new Error("first argument should be an array");return r.reduce(function(o,n){return s(o,n,t)},{})};var N=s;j.exports=N});i();import z from"node:fs";import P from"axios";import G from"jsdom";i();var p=T(D(),1);import{createConfigLoader as k}from"unconfig";var f={timeout:2e4};async function O(e){let r=f,t=k({sources:[{files:["fast-dirpy.config"],extensions:["ts","mts","cts","js","mjs","cjs"]}],cwd:process.cwd(),merge:!1}),{config:o,sources:n}=await t.load();return n.length?(0,p.default)((0,p.default)(r,o),e):(0,p.default)(r,e)}var H={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36"},{JSDOM:W}=G;async function Y(e,r=f){let{proxy:t,timeout:o}=await O(r),n=t?.host!==""?t:void 0,{data:c}=await P.get("https://dirpy.com/studio",{params:{url:e},headers:{...H,Referer:`https://dirpy.com/studio?url=${e}`},proxy:n,timeout:o}),{window:u}=new W(c),a="",m=u.document.getElementById("media-source");return m&&(a=m.src),a}async function w(e,r=f){let{path:t,url:o}=e,{proxy:n,timeout:c}=await O(r),u=n?.host!==""?n:void 0;if(o==="")return Promise.reject("Extract direct link failed!");let a=z.createWriteStream(t);return(await P({url:o,headers:{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36"},method:"GET",responseType:"stream",proxy:u,timeout:c,onDownloadProgress:d=>{let{loaded:y,total:x,progress:A}=d,S=`loaded:${y} total: ${x} progress: ${(A*100).toFixed(2)}%
|
|
2
|
-
`;console.log(S)}})).data.pipe(a),new Promise((d,y)=>{a.on("finish",d),a.on("error",y)})}async function ie(e,r=f){let{path:t,url:o}=e,n=await Y(o,r);await w({url:n,path:t},r)}i();function X(e){let r=e.match(/BV[a-zA-Z0-9]+/);return r?`https://bilibili-real-url.deno.dev/${r[0]}.mp4`:""}async function le(e){let{path:r,url:t}=e,o=X(t);o!==""?await w({url:o,path:r||"./download.mp4"}):console.error("Extract direct link failed!")}export{Y as a,w as b,ie as c,X as d,le as e};
|
package/dist/chunk-OTOEWWYP.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as i}from"./chunk-LP3GSA6N.js";i();function o(p){return p}export{o as a};
|
|
File without changes
|