How to Download YouTube Videos With Python? | 1
|

How to Download YouTube Videos With Python?

YouTube has become the go-to source for videos on the internet. While there are many ways to download YouTube videos, using Python is one of the easiest. In this article, we will show you how to use Python to download YouTube videos.

We can use the package Pytube to download YouTube videos in a Python script. It’s a free tool you can install from the PyPI repository. You can also specify the output format (e.g., mp4) and resolution (e.g., 720px) when downloading videos.

If you’re looking for more interesting applications of Python programming, checkout, Automate the Boring Stuff with Python.

Grab your aromatic coffee (or tea) and get ready…!

Downloading YouTube Videos in Python

Here’s a step-by-step approach to downloading YouTube videos in Python.

Step I: Install Pytube using pip

pip install pytube
Bash

Step II: In your script, import the YouTube class from pytube package.

from pytube import YouTube
Python

Step III: Create an object of YouTube bypassing the video URL

yt = YouTube("<Your youtube URL>")
Python

Step IV: Use the filter method to specify the download format of the video

mp4_files = yt.streams.filter(file_extension="mp4")
Python

Step V: Get the video you want by specifying the resolution

mp4_369p_files = mp4_files.get_by_resolution("360p")
Python

Step VI: Save the downloaded video to the local file system

mp4_369p_files.download("<Download folder path>")
Python

Here’s what the completed script will look like. I’ve wrapped it with a function definition that accepts the URL and output path as arguments.

from pytube import YouTube


def download_360p_mp4_videos(url: str, outpath: str = "./"):

    yt = YouTube(url)

    yt.streams.filter(file_extension="mp4").get_by_resolution("360p").download(outpath)


if __name__ == "__main__":

    download_360p_mp4_videos(
        "https://www.youtube.com/watch?v=JfVOs4VSpmA&t=4s&ab_channel=SonyPicturesEntertainment",
        "./trailers",
    )
Python

The above code will download the Spiderman: No way home trailer and save it in a folder called ‘trailers’.

Creating a CLI to download more videos in the command prompt.

With a little trick, we can even make this a CLI. Here’s how to use Typer to convert the function you wrote into a CLI.

from pytube import YouTube
from typer import Typer

app = Typer()


@app.command()
def download_360p_mp4_videos(url: str, outpath: str = "./"):
    yt = YouTube(url)
    yt.streams.filter(file_extension="mp4").get_by_resolution("360p").download(outpath)


if __name__ == "__main__":
    app()
Python

Now we converted our function into a command line interface that accepts a URL parameter and saves the video into the local filesystem. Here’s how to run this.

python get-yt.py "https://www.youtube.com/watch?v=JfVOs4VSpmA&t=4s&ab_channel=SonyPicturesEntertainment"
Bash

Thanks for the read, friend. It seems you and I have lots of common interests. Say Hi to me on LinkedIn, Twitter, and Medium.

Not a Medium member yet? Please use this link to become a member because I earn a commission for referring at no extra cost for you.

Similar Posts