Search and download audio-only from youtube

First, install youtube-dl:

sudo apt-get install youtube-dl

Then download and convert the YouTube video

youtube-dl http://www.youtube.com/watch?v=dQw4w9WgXcQ -x

The -x converts it to audio.

Further audio options:

-x, --extract-audio              convert video files to audio-only files (requires ffmpeg or avconv and ffprobe or avprobe)
--audio-format FORMAT            "best", "aac", "vorbis", "mp3", "m4a", "opus", or "wav"; best by default
--audio-quality QUALITY          ffmpeg/avconv audio quality specification, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K (default 5)

Home Page:

  • youtube-dl

You can search and download using youtube-dl. All you need to do is provide the search terms in the link, like so:

 youtube-dl -f bestaudio 'https://www.youtube.com/results?search_sort=video_view_count&filters=video&search_query="SEARCH TERM(S) HERE"'  

Since that brings up all videos with the search term either in the title or the description (or the comments?), you can further restrict downloading to only those videos with the search term (or any other term) in the title, then use --match-title like so:

 youtube-dl -f bestaudio --match-title "<regex or caseless sub-string>" 'https://www.youtube.com/results?search_sort=video_view_count&filters=video&search_query="SEARCH TERM(S) HERE"'  

You can also reject videos using --reject-title in the same way as --match-title, or use both in conjunction.

Incidentally, I just tried those searches and something is buggy in youtube's search facility. If you remove the "search_sort=video_view_count" part of the string, it gives many more results, some of which have none of the terms in them, although the videos were related, so be careful.

UPDATE
The above answer is not really complete. Youtube-dl has a built-in search facility for Google, Youtube, and Yahoo. For those three, you can use the commands 'gvsearchX:TERMS', 'ytsearchX:TERMS', and 'yvsearchX:TERMS' respectively, and replace the 'X' with the number of results you want (and replace the 'TERMS' with your search terms, obviously).


An alternative to youtube-dl has been described here: New Command Line YouTube Player And Downloader With Local Playlists Support: mps-youtube. The article is quite detailed but just to quote what seems relevant to your question:

mps-youtube is a new tool which, besides being able to download YouTube videos (either the whole video or just the audio), can also search and play YouTube videos and create local playlists, all from the command line.
By default, this is basically a YouTube audio player (and downloader), but you can enable (external) video playback from its options.

This program needs the presence of python-pip and mplayer (both of which installable by apt-get). Then, run sudo pip install mps-youtube and you're done.

You can read more about mps-youtube here.

Notes

  • this program downloads just the audio if you so wish and hence you save on bandwidth: instead of downloading a video and then extracting the audio at your end, you download just the audio.
  • if you don't wish to install all the recommends suggested by sudo apt-get install python-pip use sudo apt-get install --no-install-recommends python-pip. That works just as well (for the specific purpose of installing mps-youtube).

Tags:

Flash