How to download YoutTube videos via command line and convert to mp3 on OSX

If you ever had to download a video from YouTube and convert it to a mp3 file you know that there are a lot of shady looking sites offering that exact service.

But there is a more convenient way, especially, if you are a Mac and OSX user.

A guy called rg3 on GitHub created a repository which provides a neat little command line tool to download videos from several portals with several different options. Description from the repo:

youtube-dl is a command-line program to download videos from and a few more sites. It requires the Python interpreter, version 2.6, 2.7, or 3.2+, and it is not platform specific. It should work on your Unix box, on Windows or on Mac OS X. It is released to the public domain, which means you can modify it, redistribute it or use it however you like.

There are several ways to install the tool. You can choose from curl, wget, pip, mac ports or brew. I chose brew:

brew install youtube-dl

In addition it is necessary to install ffmpeg, an audio converter,which will automatically convert the downloaded videos to mp3. This is also possible via brew:

brew install ffmpeg

Now you are good to go.
There are countless options available for the downloader. Check the GitHub README for a full list.

Now simply access to your desired destination folder via terminal and enter the following command:

youtube-dl -x –audio-format mp3\?v\=abc1DEF2ghi3JKL4

This will first download the video and then convert the file to mp3.

npm package.json basic file structure/example

In case you ever need a basic npm package.json file, here is a basic skeleton you can use:

  "name": "Demo App",
  "version": "1.0.0",
  "description": "Demo app by @jahller",
  "main": "index.html",
  "dependencies": {
    "bootstrap": "3.3.6"
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  "repository": {
    "type": "git",
    "url": "git+"
  "author": "Jan Heller - @jahller",
  "license": "UNLICENSED",
  "bugs": {
    "url": ""
  "homepage": ""

The same can also be achieved by running the command npm init in your project folder.
This will start an interactive prompt with questions that will result in the output of a package.json in your project folder.