224

There are several Q&A threads that explain how to download youtube videos using the terminal.

However, I would also like to learn how to extract the video's soundtracks as MP3 files--also using only the terminal.

Answers briefly explaining how to use youtube-dl or other similar utilities before explaining how to extract the MP3 would be ideal for the sake of having all the information in one place--even though this aspect has been covered in other posts.

  • 1
    It's close but I think the fact that it is specifically looking for an mp3 makes it different enough. – Jacob Tomlinson Aug 22 '12 at 12:58
  • In most cases you can download m4a or webm without conversion. This is an interactive script that will let you choose a specific 'rendition' such as audio-only, video-only, etc: youtube-dl -F "$1" ; read -p "Please enter the desired quality # " FORMAT ; youtube-dl -f $FORMAT "$1" – ccpizza Jun 29 '16 at 13:08
  • I'm voting to reopen this question because the linked question is quite different, doesn't have any answers and goes into a chain of duplicate questions that don't address audio extraction of Youtube videos. – David Foerster Feb 20 '17 at 12:39
  • Note: for MacPorts users who found this, use sudo port install youtube-dl to install youtube-dl. – jvriesem Mar 23 '18 at 22:35
393

You can also download the mp3 directly from youtube without converting using ffmpeg

youtube-dl --extract-audio --audio-format mp3 <video URL>

From the online help:

-x, --extract-audio        convert video files to audio-only files (requires
                           ffmpeg or avconv and ffprobe or avprobe)

Bear in mind as well that youtube-dl defaults to using avconv so you should consider specifying either avconv or FFmpeg at the commandline . From the online help :

--prefer-avconv                  Prefer avconv over ffmpeg for running the
                                 postprocessors (default)
--prefer-ffmpeg                  Prefer ffmpeg over avconv for running the
                                 postprocessors

Further options for keeping the original video, adjusting the bitrate or quality of the audio and a few others can be seen by looking at youtube-dl -h .

  • 7
    if you look at the man pages, this option tells you you still have to download ffmpeg – user1527227 Feb 18 '14 at 3:10
  • 4
    it case of problems like this with youtube-dl: ERROR: Unable to download webpage: <urlopen error [Errno 8] _ssl.c:510: EOF occurred in violation of protocol> this helped me: askubuntu.com/questions/791969/error-while-using-youtube-dl – noisy Sep 17 '16 at 9:53
  • 5
    If you are using zsh or Oh My Zsh instead of Bash, then you might get an error saying "no matches found" - simply put the URL inside of quotes so: youtube-dl --extract-audio --audio-format mp3 "<video URL>" or youtube-dl --extract-audio --audio-format mp3 '<video URL>'. – hazrpg Oct 25 '16 at 14:02
  • 6
    Have better mp3 filename with youtube-dl --output "%(title)s.%(ext)s" --extract-audio --audio-format mp3 --audio-quality 0 – Pablo Bianchi Mar 23 '17 at 20:44
  • 5
    No need to add -f bestaudio. From the documentation: "By default youtube-dl tries to download the best available quality, i.e. if you want the best quality you don't need to pass any special options, youtube-dl will guess it for you by default." – Lu55 Oct 8 '17 at 20:32
47

Downloading from youTube

Install youtube-dl from the official repository in Ubuntu:

sudo apt-get install youtube-dl

To download a video execute the following:

youtube-dl <url>

E.g

youtube-dl http://www.youtube.com/watch?v=_z-hEyVQDRA

You can also specify other options

-b            Best quality
-m            Mobile version
-d            High Definition
-g            Don’t download, just show the url
-c            Resume download of a video which was interrupted before
-w            Don’t overwrite existing file

For complete list of switches execute man youtube-dl in terminal.

Information from http://www.absolutelytech.com/2010/06/26/howto-download-youtube-video-from-command-line-ubuntu/

Converting to mp3

Now install ffmpeg from the official repo.

sudo apt-get install ffmpeg

Next have a look to make sure the flv file has downloaded from youtube by typing

ls *flv

This will list all the flv files you have. What you should see is a flv file with the same name as the 'v' component of the youtube url you downloaded.

E.g if you downloaded http://www.youtube.com/watch?v=_z-hEyVQDRA then you should have a file called _z-hEyVQDRA.flv

Next you need to copy that file name and then put it in an ffmpg command like

ffmpeg -i <file name>.flv -acodec libmp3lame <song name>.mp3

So for this example you would type

ffmpeg -i _z-hEyVQDRA.flv -acodec libmp3lame MasterOfPuppets.mp3

Once this has successfully completed you will now have the mp3 file you were after.

Note For cleanup you may want to type rm _z-hEyVQDRA.flv to get rid of the flv file that you no longer need.

Information from http://ubuntuforums.org/showthread.php?t=855433

  • You may want to add converting to mp3 with ffmpeg or aconv. – NRoach44 Aug 22 '12 at 8:13
  • One more, -acodec liblamemp3 in the ffmpeg command line. – NRoach44 Aug 23 '12 at 1:01
  • 1
    Yes you could force the codec to be sure, I have added this. You could also use -ac 2 -ab 128k to ensure it converts at 128k – Jacob Tomlinson Aug 23 '12 at 10:06
  • 4
    Or just youtube-dl -x "${URL}". – Mathias Bynens Nov 21 '15 at 9:45
  • @NRoach44: it's "libmp3lame", not "liblamemp3" – Dan Dascalescu Jan 26 '16 at 5:28

protected by Community Oct 3 '17 at 12:19

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.