auths
objectreturn
or this.key = 'value'
, pass input data to your code viaparams
, and maintain state across executions with$checkpoint.async
(event, steps) => {
}
const stream = require("stream");
const { promisify } = require("util");
const fs = require("fs");
const { default: got } = await import("got");
// Upload file using the large file interface
// https://pipedream.com/docs/workflows/steps/triggers/#large-file-support
// This code downloads the file to the /tmp directory
const f = `/tmp/${steps.trigger.event.body.video.filename}`
const pipeline = promisify(stream.pipeline);
await pipeline(
got.stream(steps.trigger.event.body.video.url),
fs.createWriteStream(f)
);
// Get file info
const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path;
const exec = promisify(require('child_process').exec);
return await exec(`${ffmpegPath} -i ${f} /tmp/video.avi`);