@@ -19,7 +19,13 @@ const ffmpeg = createFFmpeg({
19
19
progress : ( ) => { } , // console.log,
20
20
} ) ;
21
21
22
- const downloadVideoToMP3 = ( videoUrl , sendFeedback , sendError , reinit ) => {
22
+ const downloadVideoToMP3 = (
23
+ videoUrl ,
24
+ sendFeedback ,
25
+ sendError ,
26
+ reinit ,
27
+ options
28
+ ) => {
23
29
sendFeedback ( "Downloading…" ) ;
24
30
25
31
let videoName = "YouTube Music - Unknown title" ;
@@ -54,11 +60,18 @@ const downloadVideoToMP3 = (videoUrl, sendFeedback, sendError, reinit) => {
54
60
. on ( "error" , sendError )
55
61
. on ( "end" , ( ) => {
56
62
const buffer = Buffer . concat ( chunks ) ;
57
- toMP3 ( videoName , buffer , sendFeedback , sendError , reinit ) ;
63
+ toMP3 ( videoName , buffer , sendFeedback , sendError , reinit , options ) ;
58
64
} ) ;
59
65
} ;
60
66
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
+ ) => {
62
75
const safeVideoName = randomBytes ( 32 ) . toString ( "hex" ) ;
63
76
64
77
try {
@@ -71,11 +84,17 @@ const toMP3 = async (videoName, buffer, sendFeedback, sendError, reinit) => {
71
84
ffmpeg . FS ( "writeFile" , safeVideoName , buffer ) ;
72
85
73
86
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
+ ) ;
75
93
94
+ const folder = options . downloadFolder || downloadsFolder ( ) ;
76
95
const filename = filenamify ( videoName + ".mp3" , { replacement : "_" } ) ;
77
96
writeFileSync (
78
- join ( downloadsFolder ( ) , filename ) ,
97
+ join ( folder , filename ) ,
79
98
ffmpeg . FS ( "readFile" , safeVideoName + ".mp3" )
80
99
) ;
81
100
0 commit comments