youtube-mp3-downloader
Advanced tools
Comparing version 0.3.6 to 0.4.0
@@ -82,53 +82,57 @@ "use strict"; | ||
//Stream setup | ||
var stream = ytdl(videoUrl, { | ||
quality: self.youtubeVideoQuality | ||
}); | ||
ytdl.getInfo(videoUrl, { quality: self.youtubeVideoQuality }, function(err, info) { | ||
stream.on("info", function(info, format) { | ||
//Stream setup | ||
var stream = ytdl.downloadFromInfo(info, { | ||
quality: self.youtubeVideoQuality | ||
}); | ||
var resultObj = {}; | ||
stream.on("response", function(httpResponse) { | ||
//Setup of progress module | ||
var str = progress({ | ||
length: format.size, | ||
time: self.progressTimeout | ||
}); | ||
var resultObj = {}; | ||
//Add progress event listener | ||
str.on('progress', function(progress) { | ||
if (progress.percentage === 100) { | ||
resultObj.stats= { | ||
transferredBytes: progress.transferred, | ||
runtime: progress.runtime, | ||
averageSpeed: parseFloat(progress.speed.toFixed(2)) | ||
//Setup of progress module | ||
var str = progress({ | ||
length: parseInt(httpResponse.headers['content-length']), | ||
time: self.progressTimeout | ||
}); | ||
//Add progress event listener | ||
str.on('progress', function(progress) { | ||
if (progress.percentage === 100) { | ||
resultObj.stats= { | ||
transferredBytes: progress.transferred, | ||
runtime: progress.runtime, | ||
averageSpeed: parseFloat(progress.speed.toFixed(2)) | ||
} | ||
} | ||
} | ||
self.emit("progress", {videoId: task.videoId, progress: progress}) | ||
self.emit("progress", {videoId: task.videoId, progress: progress}) | ||
}); | ||
//Start encoding | ||
var proc = new ffmpeg({ | ||
source: stream.pipe(str) | ||
}) | ||
.audioBitrate(info.formats[0].audioBitrate) | ||
.withAudioCodec('libmp3lame') | ||
.toFormat('mp3') | ||
.outputOptions('-id3v2_version', '4') | ||
.outputOptions('-metadata', 'title=' + title) | ||
.outputOptions('-metadata', 'artist=' + artist) | ||
.on('error', function(err) { | ||
cb(err.message, null); | ||
}) | ||
.on('end', function() { | ||
resultObj.file = fileName; | ||
resultObj.videoId = task.videoId; | ||
resultObj.youtubeUrl = videoUrl; | ||
resultObj.videoTitle = videoTitle; | ||
resultObj.artist = artist; | ||
resultObj.title = title; | ||
cb(null, resultObj); | ||
}) | ||
.saveToFile(fileName); | ||
}); | ||
//Start encoding | ||
var proc = new ffmpeg({ | ||
source: stream.pipe(str) | ||
}) | ||
.audioBitrate(info.formats[0].audioBitrate) | ||
.withAudioCodec('libmp3lame') | ||
.toFormat('mp3') | ||
.outputOptions('-id3v2_version', '4') | ||
.outputOptions('-metadata', 'title=' + title) | ||
.outputOptions('-metadata', 'artist=' + artist) | ||
.on('error', function(err) { | ||
cb(err.message, null); | ||
}) | ||
.on('end', function() { | ||
resultObj.file = fileName; | ||
resultObj.videoId = task.videoId; | ||
resultObj.youtubeUrl = videoUrl; | ||
resultObj.videoTitle = videoTitle; | ||
resultObj.artist = artist; | ||
resultObj.title = title; | ||
cb(null, resultObj); | ||
}) | ||
.saveToFile(fileName); | ||
}); | ||
@@ -138,4 +142,4 @@ | ||
} | ||
}; | ||
module.exports = YoutubeMp3Downloader; |
{ | ||
"name": "youtube-mp3-downloader", | ||
"version": "0.3.6", | ||
"version": "0.4.0", | ||
"description": "Downloads Youtube videos (in parallel, as streams), encodes the audio data as mp3 and stores them in a defineable location", | ||
@@ -23,3 +23,3 @@ "keywords": [ | ||
"fluent-ffmpeg": "2.0.1", | ||
"progress-stream": "^1.1.1", | ||
"progress-stream": "^1.2.0", | ||
"ytdl-core": "^0.7.8" | ||
@@ -26,0 +26,0 @@ }, |
10480
111
Updatedprogress-stream@^1.2.0