Youtube-mp3-downloader Npm 〈TRENDING ✰〉
const YouTubeMp3Downloader = require("youtube-mp3-downloader");// Configure downloader const YD = new YouTubeMp3Downloader( ffmpegPath: "/usr/bin/ffmpeg", // Path to ffmpeg outputPath: "./downloads", // Where to save MP3s youtubeVideoQuality: "highestaudio", // highestaudio, lowestaudio queueParallelism: 2, // parallel downloads progressTimeout: 2000 // progress event interval (ms) );
// Download video by ID (extract from YouTube URL) const videoId = "dQw4w9WgXcQ"; // example
YD.download(videoId,
$videoId.mp3);YD.on("finished", (err, data) => console.log(
✅ Downloaded: $data.file); );YD.on("error", (error) => console.error("❌ Error:", error); );
YD.on("progress", (progress) => console.log($progress.progress.percentage% downloaded); );
const videoId = 'VIDEO_ID_HERE'; // e.g., 'dQw4w9WgXcQ'YD.download(videoId,
$videoId.mp3);// Progress events YD.on('progress', (data) => console.log(
$data.progress.percentage% downloaded); );// When finished YD.on('finished', (err, data) => console.log(
Downloaded: $data.file); );
// Handle errors YD.on('error', (error) => console.error('Download error:', error); );
Extract audio clips from YouTube lessons and generate MP3s for spaced repetition.
Install youtube-mp3-downloader via npm:
npm install youtube-mp3-downloader
You may also want to install ytdl-core and ffmpeg-static for additional control: youtube-mp3-downloader npm
npm install ytdl-core ffmpeg-static
Crucially, this package requires FFmpeg to be installed on the host system. It is not a pure JavaScript solution. If FFmpeg is not in the system path, the package will fail to execute.
Create a file download.js:
const YouTubeMp3Downloader = require("youtube-mp3-downloader"); const readline = require("readline");const rl = readline.createInterface( input: process.stdin, output: process.stdout );
rl.question("YouTube URL: ", (url) => const videoId = extractId(url); if (!videoId) console.log("Invalid URL"); process.exit(1);
const downloader = new YouTubeMp3Downloader( ffmpegPath: require("ffmpeg-static")?.path );
downloader.download(videoId,
$videoId.mp3);downloader.on("progress", (p) => process.stdout.write(
\r⏳ $p.progress.percentage.toFixed(1)%); ); const videoId = 'VIDEO_ID_HERE'; // edownloader.on("finished", () => console.log("\n✅ Done!"); process.exit(); );
downloader.on("error", (e) => console.error("\n❌", e); process.exit(1); ); );
function extractId(url) /\d/
Run it:
node download.js
Let’s elevate this from a script to a web service. We’ll create an API endpoint that accepts a YouTube URL and returns the MP3.
downloader.on('error', (err) =>
switch(err.code)
case 'FFMPEG_NOT_FOUND':
console.log('ffmpeg not installed!');
break;
case 'VIDEO_NOT_FOUND':
console.log('Video unavailable or private');
break;
default:
console.log('Unknown error:', err);
);
Pingback: New Music Alert by Prinx Emmanuel – Explicit Music