Create a Youtube to MP3 Downloader with Python
Tags: python, programming, tutorial, youtube
Published: 2023-01-05 16:47:55

Python is a powerful programming language that can be used for many different purposes. One popular use for Python is creating a YouTube downloader, which allows you to save YouTube videos to your computer for offline viewing.

In this tutorial, we will walk through the steps of creating a YouTube downloader in Python using the youtube_dl library and a virtual environment (venv).

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/78lsms1rhux2ja1rr30k.jpeg)

### Prerequisites
Before we get started, make sure you have the following tools installed on your computer:

Python 3
pip (Python package manager)

## Step 1: Create a Virtual Environment
A virtual environment is a separate Python environment that allows you to install packages and libraries specific to a particular project, without affecting the global Python environment on your computer.

To create a virtual environment in Python, open a terminal and navigate to the directory where you want to store your project. Then, run the following command:

```
python3 -m venv myenv
```

This will create a new directory called myenv in your current directory, which will contain the Python executable and all the necessary libraries for your virtual environment.

### Step 2: Activate the Virtual Environment
To use the virtual environment, you need to activate it first. To do this, run the following command:

```
source myenv/bin/activate
```

You should now see (myenv) at the beginning of your terminal prompt, indicating that the virtual environment is active.

### Step 3: Install the youtube_dl Library

Next, we will install the youtube_dl library, which provides the necessary functions for downloading YouTube videos. Run the following command to install youtube_dl

```
pip install youtube_dl
```

### Step 4: Create the YouTube Downloader Script
Now that we have everything set up, we can create the script to download YouTube videos.

Create a new file called downloader.py and add the following code:

```
import youtube_dl

def download():
    video_url = input("please enter youtube video url:")
    video_info = youtube_dl.YoutubeDL().extract_info(url=video_url,
                                                     download=False)
    filename = f"downloads/{video_info['title']}.mp3"
    options = {
        'format': 'bestaudio/best',
        'keepvideo': False,
        'outtmpl': filename,
    }
    with youtube_dl.YoutubeDL(options) as ydl:
        ydl.download([video_info['webpage_url']])

    print("Download complete... {}".format(filename))

if __name__ == '__main__':
    download()

```
This script uses the youtube_dl library to download a YouTube video at the URL specified by the user. The video is saved in the downloads directory with the title of the video as the file name. The video is also converted to an MP3 file, which allows you to play the audio on any device that supports MP3 playback.

### Step 5: Run the Script
To run the script, open a terminal and navigate to the directory where the script is located. Then, activate the virtual environment by running the following command:

check it on [github](https://github.com/iflis7/yt_downloader)