Skip to content

Commit 7b20b93

Browse files
committed
Download plugin - advanced options (folder, FFmpeg args)
1 parent 4d4a1f0 commit 7b20b93

File tree

2 files changed

+29
-7
lines changed

2 files changed

+29
-7
lines changed

plugins/downloader/front.js

+5-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ let progress = null;
77
const downloadButton = ElementFromFile(
88
templatePath(__dirname, "download.html")
99
);
10+
let pluginOptions = {};
1011

1112
const observer = new MutationObserver((mutations, observer) => {
1213
if (!menu) {
@@ -43,11 +44,13 @@ global.download = () => {
4344
triggerAction(CHANNEL, ACTIONS.ERROR, error);
4445
reinit();
4546
},
46-
reinit
47+
reinit,
48+
pluginOptions
4749
);
4850
};
4951

50-
function observeMenu() {
52+
function observeMenu(options) {
53+
pluginOptions = { ...pluginOptions, ...options };
5154
observer.observe(document, {
5255
childList: true,
5356
subtree: true,

plugins/downloader/youtube-dl.js

+24-5
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,13 @@ const ffmpeg = createFFmpeg({
1919
progress: () => {}, // console.log,
2020
});
2121

22-
const downloadVideoToMP3 = (videoUrl, sendFeedback, sendError, reinit) => {
22+
const downloadVideoToMP3 = (
23+
videoUrl,
24+
sendFeedback,
25+
sendError,
26+
reinit,
27+
options
28+
) => {
2329
sendFeedback("Downloading…");
2430

2531
let videoName = "YouTube Music - Unknown title";
@@ -54,11 +60,18 @@ const downloadVideoToMP3 = (videoUrl, sendFeedback, sendError, reinit) => {
5460
.on("error", sendError)
5561
.on("end", () => {
5662
const buffer = Buffer.concat(chunks);
57-
toMP3(videoName, buffer, sendFeedback, sendError, reinit);
63+
toMP3(videoName, buffer, sendFeedback, sendError, reinit, options);
5864
});
5965
};
6066

61-
const toMP3 = async (videoName, buffer, sendFeedback, sendError, reinit) => {
67+
const toMP3 = async (
68+
videoName,
69+
buffer,
70+
sendFeedback,
71+
sendError,
72+
reinit,
73+
options
74+
) => {
6275
const safeVideoName = randomBytes(32).toString("hex");
6376

6477
try {
@@ -71,11 +84,17 @@ const toMP3 = async (videoName, buffer, sendFeedback, sendError, reinit) => {
7184
ffmpeg.FS("writeFile", safeVideoName, buffer);
7285

7386
sendFeedback("Converting…");
74-
await ffmpeg.run("-i", safeVideoName, safeVideoName + ".mp3");
87+
await ffmpeg.run(
88+
"-i",
89+
safeVideoName,
90+
...options.ffmpegArgs,
91+
safeVideoName + ".mp3"
92+
);
7593

94+
const folder = options.downloadFolder || downloadsFolder();
7695
const filename = filenamify(videoName + ".mp3", { replacement: "_" });
7796
writeFileSync(
78-
join(downloadsFolder(), filename),
97+
join(folder, filename),
7998
ffmpeg.FS("readFile", safeVideoName + ".mp3")
8099
);
81100

0 commit comments

Comments
 (0)