Hannan
Posted on March 23, 2021
Who doesn't love YouTube downloaders and MP3 conversion sites? They were the backbone of every teen's MP3 player library not too long ago, before Spotify or Apple Music, but have you ever wondered how these sites worked? In this tutorial we will create a python script to create our very own YouTube to MP3 convertor so you too can download your favourite videos and podcasts in audio form
Disclaimer
Technically, it is not illegal to convert a YouTube video to MP3 - but it is illegal to download a copyrighted music video.
YouTube to Audio Converter/Downloader
first of all we will need two prerequisites for this program. We need to pip install the youtube_dl
library and the latest ffmpeg
build for your specific operating system.
pip install youtube_dl
now to import the libraries needed for the program
import youtube_dl
import sys
declare a variable ydl_opts
(in this case) to specify the specifications of the file you want to download. in this case we will select the format
to be the best audio format available, the prefferedcodec
will be mp3 and the rest can be left as default as shown here.
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192',
}],
}
Write an if
statement to download the file and pass the values of the ydl_opts
variable to youtube_dl
if __name__ == "__main__":
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
filenames = sys.argv[1:]
ydl.download(filenames)
Run your command terminal and execute the python program and append the command line with the URL of any YouTube video (make sure to include "https://").
python youtubetomp3.py <URL>
Run the program and if everything goes smoothly you should see the following output:
The MP3 file will appear in the same directory as your program. Since my program is on my desktop you can see the downloaded file here.
Thanks for reading, you can find the code on it's GitHub repo here.
Posted on March 23, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.