Hey thanks for making this software! It's been super useful so far. But now it seems our friends at FEM changed things a bit and executing the downloader gives this error:
npm WARN cli npm v9.1.1 does not support Node.js v15.14.0. You should probably upgrade to a
npm WARN cli newer version of node as we can't make any promises that npm will work with this
npm WARN cli version. This version of npm supports the following node versions: `^14.17.0 ||
npm WARN cli ^16.13.0 || >=18.0.0`. You can find the latest version at https://nodejs.org/.
Need to install the following packages:
[email protected]
Ok to proceed? (y) y
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '[email protected]',
npm WARN EBADENGINE required: { node: '>=16' },
npm WARN EBADENGINE current: { node: 'v15.14.0', npm: '9.1.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '[email protected]',
npm WARN EBADENGINE required: { node: '>=16' },
npm WARN EBADENGINE current: { node: 'v15.14.0', npm: '9.1.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '[email protected]',
npm WARN EBADENGINE required: { node: '^12.20.0 || ^14.13.1 || >=16.0.0' },
⠴ [0%] Downloading 1. Introduction/1. Introduction.mp4 | Size: 0KB | Remaining: 1/92
node:internal/process/esm_loader:74
internalBinding('errors').triggerUncaughtException(
^
Response {
size: 0,
[Symbol(Body internals)]: {
body: <ref *1> Gunzip {
_writeState: Uint32Array(2) [ 0, 0 ],
_readableState: ReadableState {
objectMode: false,
highWaterMark: 16384,
buffer: BufferList { head: null, tail: null, length: 0 },
length: 0,
pipes: [],
flowing: null,
ended: false,
endEmitted: false,
reading: false,
constructed: true,
sync: false,
needReadable: false,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
errorEmitted: false,
emitClose: true,
autoDestroy: true,
destroyed: false,
errored: null,
closed: false,
closeEmitted: false,
defaultEncoding: 'utf8',
awaitDrainWriters: null,
multiAwaitDrain: false,
readingMore: false,
decoder: null,
encoding: null,
[Symbol(kPaused)]: null
},
_events: [Object: null prototype] {
prefinish: [Function: prefinish],
close: [
[Function (anonymous)],
[Function: onclose],
[Function: bound onceWrapper] {
listener: [Function: onclose]
}
],
end: [Function: onend],
finish: [
[Function: onfinish],
[Function: bound onceWrapper] {
listener: [Function: onfinish]
}
],
error: [
[Function: onerror],
[Function: onerror],
[Function (anonymous)]
],
unpipe: [Function: onunpipe]
},
_eventsCount: 6,
_maxListeners: undefined,
_writableState: WritableState {
objectMode: false,
highWaterMark: 16384,
finalCalled: false,
needDrain: false,
ending: true,
ended: true,
finished: false,
destroyed: false,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 64,
writing: true,
corked: 0,
sync: false,
bufferProcessing: false,
onwrite: [Function: bound onwrite],
writecb: [Function: nop],
writelen: 64,
afterWriteTickInfo: null,
buffered: [],
bufferedIndex: 0,
allBuffers: true,
allNoop: true,
pendingcb: 1,
constructed: true,
prefinished: false,
errorEmitted: false,
emitClose: true,
autoDestroy: true,
errored: null,
closed: false,
closeEmitted: false,
[Symbol(kOnFinished)]: []
},
allowHalfOpen: true,
bytesWritten: 0,
_handle: Zlib {
onerror: [Function: zlibOnError],
buffer: Buffer(64) [Uint8Array] [
31, 139, 8, 0, 0, 0, 0, 0, 0, 255, 170, 86,
74, 206, 79, 73, 85, 178, 50, 49, 48, 212, 81, 202,
77, 45, 46, 78, 76, 79, 85, 178, 82, 202, 203, 47,
81, 72, 44, 45, 201, 200, 47, 202, 172, 74, 77, 81,
170, 229, 2, 4, 0, 0, 255, 255, 214, 255, 249, 78,
40, 0, 0, 0
],
cb: [Function (anonymous)],
availOutBefore: 16384,
availInBefore: 64,
inOff: 0,
flushFlag: 2,
[Symbol(owner_symbol)]: [Circular *1]
},
_outBuffer: Buffer(16384) [Uint8Array] [
123, 34, 99, 111, 100, 101, 34, 58, 52, 48, 49, 44,
34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 110,
111, 116, 32, 97, 117, 116, 104, 111, 114, 105, 122, 101,
100, 34, 125, 10, 85, 85, 85, 85, 85, 85, 85, 85,
85, 85, 85, 85, 85, 85, 85, 85, 32, 78, 111, 118,
32, 50, 48, 50, 50, 32, 48, 57, 58, 48, 49, 58,
53, 55, 32, 71, 77, 84, 13, 10, 67, 111, 110, 116,
101, 110, 116, 45, 84, 121, 112, 101, 58, 32, 97, 112,
112, 108, 105, 99,
... 16284 more items
],
_outOffset: 0,
_chunkSize: 16384,
_defaultFlushFlag: 2,
_finishFlushFlag: 2,
_defaultFullFlushFlag: 3,
_info: undefined,
_maxOutputLength: 4294967296,
_level: -1,
_strategy: 0,
[Symbol(kCapture)]: false,
[Symbol(kCallback)]: null,
[Symbol(kError)]: null
},
stream: <ref *1> Gunzip {
_writeState: Uint32Array(2) [ 0, 0 ],
_readableState: ReadableState {
objectMode: false,
highWaterMark: 16384,
buffer: BufferList { head: null, tail: null, length: 0 },
length: 0,
pipes: [],
flowing: null,
ended: false,
endEmitted: false,
reading: false,
constructed: true,
sync: false,
needReadable: false,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
errorEmitted: false,
emitClose: true,
autoDestroy: true,
destroyed: false,
errored: null,
closed: false,
closeEmitted: false,
defaultEncoding: 'utf8',
awaitDrainWriters: null,
multiAwaitDrain: false,
readingMore: false,
decoder: null,
encoding: null,
[Symbol(kPaused)]: null
},
_events: [Object: null prototype] {
prefinish: [Function: prefinish],
close: [
[Function (anonymous)],
[Function: onclose],
[Function: bound onceWrapper] {
listener: [Function: onclose]
}
],
end: [Function: onend],
finish: [
[Function: onfinish],
[Function: bound onceWrapper] {
listener: [Function: onfinish]
}
],
error: [
[Function: onerror],
[Function: onerror],
[Function (anonymous)]
],
unpipe: [Function: onunpipe]
},
_eventsCount: 6,
_maxListeners: undefined,
_writableState: WritableState {
objectMode: false,
highWaterMark: 16384,
finalCalled: false,
needDrain: false,
ending: true,
ended: true,
finished: false,
destroyed: false,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 64,
writing: true,
corked: 0,
sync: false,
bufferProcessing: false,
onwrite: [Function: bound onwrite],
writecb: [Function: nop],
writelen: 64,
afterWriteTickInfo: null,
buffered: [],
bufferedIndex: 0,
allBuffers: true,
allNoop: true,
pendingcb: 1,
constructed: true,
prefinished: false,
errorEmitted: false,
emitClose: true,
autoDestroy: true,
errored: null,
closed: false,
closeEmitted: false,
[Symbol(kOnFinished)]: []
},
allowHalfOpen: true,
bytesWritten: 0,
_handle: Zlib {
onerror: [Function: zlibOnError],
buffer: Buffer(64) [Uint8Array] [
31, 139, 8, 0, 0, 0, 0, 0, 0, 255, 170, 86,
74, 206, 79, 73, 85, 178, 50, 49, 48, 212, 81, 202,
77, 45, 46, 78, 76, 79, 85, 178, 82, 202, 203, 47,
81, 72, 44, 45, 201, 200, 47, 202, 172, 74, 77, 81,
170, 229, 2, 4, 0, 0, 255, 255, 214, 255, 249, 78,
40, 0, 0, 0
],
cb: [Function (anonymous)],
availOutBefore: 16384,
availInBefore: 64,
inOff: 0,
flushFlag: 2,
[Symbol(owner_symbol)]: [Circular *1]
},
_outBuffer: Buffer(16384) [Uint8Array] [
123, 34, 99, 111, 100, 101, 34, 58, 52, 48, 49, 44,
34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 110,
111, 116, 32, 97, 117, 116, 104, 111, 114, 105, 122, 101,
100, 34, 125, 10, 85, 85, 85, 85, 85, 85, 85, 85,
85, 85, 85, 85, 85, 85, 85, 85, 32, 78, 111, 118,
32, 50, 48, 50, 50, 32, 48, 57, 58, 48, 49, 58,
53, 55, 32, 71, 77, 84, 13, 10, 67, 111, 110, 116,
101, 110, 116, 45, 84, 121, 112, 101, 58, 32, 97, 112,
112, 108, 105, 99,
... 16284 more items
],
_outOffset: 0,
_chunkSize: 16384,
_defaultFlushFlag: 2,
_finishFlushFlag: 2,
_defaultFullFlushFlag: 3,
_info: undefined,
_maxOutputLength: 4294967296,
_level: -1,
_strategy: 0,
[Symbol(kCapture)]: false,
[Symbol(kCallback)]: null,
[Symbol(kError)]: null
},
boundary: null,
disturbed: false,
error: null
},
[Symbol(Response internals)]: {
type: 'default',
url: 'https://api.frontendmasters.com/v1/kabuki/video/DVSfnDTkWs/source?f=m3u8',
status: 401,
statusText: 'Unauthorized',
headers: Headers {
[Symbol(query)]: [
'access-control-allow-credentials',
'true',
'access-control-allow-origin',
'https://frontendmasters.com',
'connection',
'close',
'content-encoding',
'gzip',
'content-length',
'64',
'content-type',
'application/json',
'date',
'Thu, 24 Nov 2022 09:01:57 GMT',
'server',
'nginx/1.16.1',
'vary',
'Origin'
],
[Symbol(context)]: null
},
counter: 0,
highWaterMark: 16384
}
}
➜ Projects npx fem-dl@latesteee
➜ Projects clear
⠼ [0%] Downloading 1. Introduction/1. Introduction.mp4 | Size: 0KB | Remaining: 1/114
node:internal/process/esm_loader:74
internalBinding('errors').triggerUncaughtException(
^
Response {
size: 0,
[Symbol(Body internals)]: {
body: <ref *1> Gunzip {
_writeState: Uint32Array(2) [ 0, 0 ],
_readableState: ReadableState {
objectMode: false,
highWaterMark: 16384,
buffer: BufferList { head: null, tail: null, length: 0 },
length: 0,
pipes: [],
flowing: null,
ended: false,
endEmitted: false,
reading: false,
constructed: true,
sync: false,
needReadable: false,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
errorEmitted: false,
emitClose: true,
autoDestroy: true,
destroyed: false,
errored: null,
closed: false,
closeEmitted: false,
defaultEncoding: 'utf8',
awaitDrainWriters: null,
multiAwaitDrain: false,
readingMore: false,
decoder: null,
encoding: null,
[Symbol(kPaused)]: null
},
_events: [Object: null prototype] {
prefinish: [Function: prefinish],
close: [
[Function (anonymous)],
[Function: onclose],
[Function: bound onceWrapper] {
listener: [Function: onclose]
}
],
end: [Function: onend],
finish: [
[Function: onfinish],
[Function: bound onceWrapper] {
listener: [Function: onfinish]
}
],
error: [
[Function: onerror],
[Function: onerror],
[Function (anonymous)]
],
unpipe: [Function: onunpipe]
},
_eventsCount: 6,
_maxListeners: undefined,
_writableState: WritableState {
objectMode: false,
highWaterMark: 16384,
finalCalled: false,
needDrain: false,
ending: true,
ended: true,
finished: false,
destroyed: false,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 64,
writing: true,
corked: 0,
sync: false,
bufferProcessing: false,
onwrite: [Function: bound onwrite],
writecb: [Function: nop],
writelen: 64,
afterWriteTickInfo: null,
buffered: [],
bufferedIndex: 0,
allBuffers: true,
allNoop: true,
pendingcb: 1,
constructed: true,
prefinished: false,
errorEmitted: false,
emitClose: true,
autoDestroy: true,
errored: null,
closed: false,
closeEmitted: false,
[Symbol(kOnFinished)]: []
},
allowHalfOpen: true,
bytesWritten: 0,
_handle: Zlib {
onerror: [Function: zlibOnError],
buffer: Buffer(64) [Uint8Array] [
31, 139, 8, 0, 0, 0, 0, 0, 0, 255, 170, 86,
74, 206, 79, 73, 85, 178, 50, 49, 48, 212, 81, 202,
77, 45, 46, 78, 76, 79, 85, 178, 82, 202, 203, 47,
81, 72, 44, 45, 201, 200, 47, 202, 172, 74, 77, 81,
170, 229, 2, 4, 0, 0, 255, 255, 214, 255, 249, 78,
40, 0, 0, 0
],
cb: [Function (anonymous)],
availOutBefore: 16384,
availInBefore: 64,
inOff: 0,
flushFlag: 2,
[Symbol(owner_symbol)]: [Circular *1]
},
_outBuffer: Buffer(16384) [Uint8Array] [
123, 34, 99, 111, 100, 101, 34, 58, 52, 48, 49, 44,
34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 110,
111, 116, 32, 97, 117, 116, 104, 111, 114, 105, 122, 101,
100, 34, 125, 10, 85, 85, 85, 85, 85, 85, 85, 85,
85, 85, 85, 85, 85, 85, 85, 85, 64, 0, 0, 0,
1, 0, 0, 0, 81, 153, 208, 181, 131, 4, 0, 0,
64, 0, 0, 0, 0, 0, 0, 0, 145, 153, 208, 181,
131, 4, 0, 0, 64, 0, 0, 0, 168, 1, 0, 0,
209, 145, 208, 181,
... 16284 more items
],
_outOffset: 0,
_chunkSize: 16384,
_defaultFlushFlag: 2,
_finishFlushFlag: 2,
_defaultFullFlushFlag: 3,
_info: undefined,
_maxOutputLength: 4294967296,
_level: -1,
_strategy: 0,
[Symbol(kCapture)]: false,
[Symbol(kCallback)]: null,
[Symbol(kError)]: null
},
stream: <ref *1> Gunzip {
_writeState: Uint32Array(2) [ 0, 0 ],
_readableState: ReadableState {
objectMode: false,
highWaterMark: 16384,
buffer: BufferList { head: null, tail: null, length: 0 },
length: 0,
pipes: [],
flowing: null,
ended: false,
endEmitted: false,
reading: false,
constructed: true,
sync: false,
needReadable: false,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
errorEmitted: false,
emitClose: true,
autoDestroy: true,
destroyed: false,
errored: null,
closed: false,
closeEmitted: false,
defaultEncoding: 'utf8',
awaitDrainWriters: null,
multiAwaitDrain: false,
readingMore: false,
decoder: null,
encoding: null,
[Symbol(kPaused)]: null
},
_events: [Object: null prototype] {
prefinish: [Function: prefinish],
close: [
[Function (anonymous)],
[Function: onclose],
[Function: bound onceWrapper] {
listener: [Function: onclose]
}
],
end: [Function: onend],
finish: [
[Function: onfinish],
[Function: bound onceWrapper] {
listener: [Function: onfinish]
}
],
error: [
[Function: onerror],
[Function: onerror],
[Function (anonymous)]
],
unpipe: [Function: onunpipe]
},
_eventsCount: 6,
_maxListeners: undefined,
_writableState: WritableState {
objectMode: false,
highWaterMark: 16384,
finalCalled: false,
needDrain: false,
ending: true,
ended: true,
finished: false,
destroyed: false,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 64,
writing: true,
corked: 0,
sync: false,
bufferProcessing: false,
onwrite: [Function: bound onwrite],
writecb: [Function: nop],
writelen: 64,
afterWriteTickInfo: null,
buffered: [],
bufferedIndex: 0,
allBuffers: true,
allNoop: true,
pendingcb: 1,
constructed: true,
prefinished: false,
errorEmitted: false,
emitClose: true,
autoDestroy: true,
errored: null,
closed: false,
closeEmitted: false,
[Symbol(kOnFinished)]: []
},
allowHalfOpen: true,
bytesWritten: 0,
_handle: Zlib {
onerror: [Function: zlibOnError],
buffer: Buffer(64) [Uint8Array] [
31, 139, 8, 0, 0, 0, 0, 0, 0, 255, 170, 86,
74, 206, 79, 73, 85, 178, 50, 49, 48, 212, 81, 202,
77, 45, 46, 78, 76, 79, 85, 178, 82, 202, 203, 47,
81, 72, 44, 45, 201, 200, 47, 202, 172, 74, 77, 81,
170, 229, 2, 4, 0, 0, 255, 255, 214, 255, 249, 78,
40, 0, 0, 0
],
cb: [Function (anonymous)],
availOutBefore: 16384,
availInBefore: 64,
inOff: 0,
flushFlag: 2,
[Symbol(owner_symbol)]: [Circular *1]
},
_outBuffer: Buffer(16384) [Uint8Array] [
123, 34, 99, 111, 100, 101, 34, 58, 52, 48, 49, 44,
34, 109, 101, 115, 115, 97, 103, 101, 34, 58, 34, 110,
111, 116, 32, 97, 117, 116, 104, 111, 114, 105, 122, 101,
100, 34, 125, 10, 85, 85, 85, 85, 85, 85, 85, 85,
85, 85, 85, 85, 85, 85, 85, 85, 64, 0, 0, 0,
1, 0, 0, 0, 81, 153, 208, 181, 131, 4, 0, 0,
64, 0, 0, 0, 0, 0, 0, 0, 145, 153, 208, 181,
131, 4, 0, 0, 64, 0, 0, 0, 168, 1, 0, 0,
209, 145, 208, 181,
... 16284 more items
],
_outOffset: 0,
_chunkSize: 16384,
_defaultFlushFlag: 2,
_finishFlushFlag: 2,
_defaultFullFlushFlag: 3,
_info: undefined,
_maxOutputLength: 4294967296,
_level: -1,
_strategy: 0,
[Symbol(kCapture)]: false,
[Symbol(kCallback)]: null,
[Symbol(kError)]: null
},
boundary: null,
disturbed: false,
error: null
},
[Symbol(Response internals)]: {
type: 'default',
url: 'https://api.frontendmasters.com/v1/kabuki/video/PfvXQUIjKJ/source?f=m3u8',
status: 401,
statusText: 'Unauthorized',
headers: Headers {
[Symbol(query)]: [
'access-control-allow-credentials',
'true',
'access-control-allow-origin',
'https://frontendmasters.com',
'connection',
'close',
'content-encoding',
'gzip',
'content-length',
'64',
'content-type',
'application/json',
'date',
'Thu, 24 Nov 2022 09:06:00 GMT',
'server',
'nginx/1.16.1',
'vary',
'Origin'
],
[Symbol(context)]: null
},
counter: 0,
highWaterMark: 16384
}
}```