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.

How to install iTerm with oh-my-zsh on Mac OSX

The standard OSX terminal is not really the optimal solution when working a lot with the terminal.
Because of that I would recommend to install iTerm2 in combination with oh-my-zsh to have a better user experience.

  1. Download iTerm here and install it
  2. Download oh-my-zsh via curl
    sh -c “$(curl -fsSL”
  3. Open iTerm and access the options via i + CMD
  4. Go to the Color tab and select a Color presets that you like. I prefer Solarized Dark.

    Where to change the colors in iTerm2
    Where to change the colors in iTerm2
  5. Download a Powerline compatible font to work with the oh-my-zsh theme Agnostic. I prefer Meslo LG M DZ Regular for Powerline.
    You can download it here
  6. Go back to the iTerm preferences and to the Text tab.
    Change the Font and the Non-ASCII Font options to your new font.

    Where to change the font in iTerm2
    Where to change the font in iTerm2
  7. Now change the oh-my-zsh theme to Agnostic by editing the file
    ~/.zshrc via nano or vim.
    Or to any oh-my-zsh theme you like.
    You can find a huge collection here.
  8. Restart iTerm and your .zshrc changes should be applied.
    Done. If everything went as expected your iTerm should look like this:

    Agnoster theme for oh-my-zsh
    Agnoster theme for oh-my-zsh