I'm trying to save a YouTube video using ytdl and pass it with a stream using .pipe()
to save it using a stream.
No matter what I do I always get the error below.
I have already tried to use .saveToFile()
and .save()
inside of .pipe()
.
(node:1) UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_TYPE]: The "file" argument must be of type string. Received an instance of Object
at validateString (internal/validators.js:124:11)
at normalizeSpawnArguments (child_process.js:435:3)
at spawn (child_process.js:575:13)
at spawnWithSignal (child_process.js:714:17)
at /app/available_modules/1623080324000/fluent-ffmpeg/lib/processor.js:152:24
at FfmpegCommand.proto._getFfmpegPath (/app/available_modules/1623080324000/fluent-ffmpeg/lib/capabilities.js:90:14)
at FfmpegCommand.proto._spawnFfmpeg (/app/available_modules/1623080324000/fluent-ffmpeg/lib/processor.js:132:10)
at FfmpegCommand.proto.availableFormats.proto.getAvailableFormats (/app/available_modules/1623080324000/fluent-ffmpeg/lib/capabilities.js:517:10)
at /app/available_modules/1623080324000/fluent-ffmpeg/lib/capabilities.js:568:14
at nextTask (/app/available_modules/1623080324000/fluent-ffmpeg/node_modules/async/dist/async.js:4576:27)
at Object.waterfall (/app/available_modules/1623080324000/fluent-ffmpeg/node_modules/async/dist/async.js:4587:9)
at Object.awaitable [as waterfall] (/app/available_modules/1623080324000/fluent-ffmpeg/node_modules/async/dist/async.js:208:32)
at FfmpegCommand.proto._checkCapabilities (/app/available_modules/1623080324000/fluent-ffmpeg/lib/capabilities.js:565:11)
at /app/available_modules/1623080324000/fluent-ffmpeg/lib/processor.js:298:14
at nextTask (/app/available_modules/1623080324000/fluent-ffmpeg/node_modules/async/dist/async.js:4576:27)
at Object.waterfall (/app/available_modules/1623080324000/fluent-ffmpeg/node_modules/async/dist/async.js:4587:9)
at Object.awaitable [as waterfall] (/app/available_modules/1623080324000/fluent-ffmpeg/node_modules/async/dist/async.js:208:32)
at FfmpegCommand.proto._prepare (/app/available_modules/1623080324000/fluent-ffmpeg/lib/processor.js:295:11)
at FfmpegCommand.proto.exec.proto.execute.proto.run (/app/available_modules/1623080324000/fluent-ffmpeg/lib/processor.js:431:10)
at FfmpegCommand.proto.writeToStream.proto.pipe.proto.stream (/app/available_modules/1623080324000/fluent-ffmpeg/lib/recipes.js:64:34)
(Use `node --trace-warnings ...` to show where the warning was created)
const ffmpeg = require('fluent-ffmpeg')
const ffmpegPath = require('@ffmpeg-installer/ffmpeg')
const fs = require('fs')
const ytdl = require('ytdl-core')
ffmpeg.setFfmpegPath(ffmpegPath)
async function get() {
ffmpeg(await ytdl('LuchnQtK86U'))
.pipe(fs.createWriteStream('track.mp3'))
}
get()