New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

youtube-mp3-downloader

Package Overview
Dependencies
Maintainers
1
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

youtube-mp3-downloader - npm Package Compare versions

Comparing version 0.3.6 to 0.4.0

94

lib/YoutubeMp3Downloader.js

@@ -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 @@ },

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc