UNPKG

@kelvdra/scraper

Version:

A simple scraper by kelvdra.

99 lines (94 loc) 1.96 kB
const fs = require("fs"); const path = require("path"); const { spawn } = require("child_process"); function ffmpeg(buffer, args = [], ext = "", ext2 = "") { return new Promise(async (resolve, reject) => { try { let tmp = path.join(__dirname, "../sampah", +new Date() + "." + ext); let out = tmp + "." + ext2; await fs.promises.writeFile(tmp, buffer); spawn("ffmpeg", ["-y", "-i", tmp, ...args, out]) .on("error", reject) .on("close", async (code) => { try { await fs.promises.unlink(tmp); if (code !== 0) return reject(code); resolve({ data: await fs.promises.readFile(out), filename: out }); // await fs.promises.unlink(out) } catch (e) { reject(e); } }); } catch (e) { reject(e); } }); } /** * Convert Audio to Playable WhatsApp Audio * @param {Buffer} buffer Audio Buffer * @param {String} ext File Extension */ function toPTT(buffer, ext) { return ffmpeg( buffer, ["-vn", "-c:a", "libopus", "-b:a", "128k", "-vbr", "on"], ext, "ogg", ); } /** * Convert Audio to Playable WhatsApp PTT * @param {Buffer} buffer Audio Buffer * @param {String} ext File Extension */ function toAudio(buffer, ext) { return ffmpeg( buffer, [ "-vn", "-c:a", "libopus", "-b:a", "128k", "-vbr", "on", "-compression_level", "10", ], ext, "opus", ); } /** * Convert Audio to Playable WhatsApp Video * @param {Buffer} buffer Video Buffer * @param {String} ext File Extension */ function toVideo(buffer, ext) { return ffmpeg( buffer, [ "-c:v", "libx264", "-c:a", "aac", "-ab", "128k", "-ar", "44100", "-crf", "32", "-preset", "slow", ], ext, "mp4", ); } module.exports = { toAudio, toPTT, toVideo, ffmpeg };