DEV Community

Cover image for How to Download YT Videos in HD Quality Using Python and Google Colab
Chemical Engineer
Chemical Engineer

Posted on

How to Download YT Videos in HD Quality Using Python and Google Colab

Downloading videos from YouTube can be a useful task for personal use, offline viewing, or data analysis. One of the most efficient ways to download high-definition (HD) videos is by using the Python library yt-dlp. This article walks you through the process of downloading YouTube videos in HD quality using Python and Google Colab.

Download YT Videos in HD Quality Using Python and Google Colab

Prerequisites

To begin, you need to set up a Google Colab environment. Google Colab allows you to run Python code in the cloud without the need for any setup on your local machine. You will also need to install the yt-dlp library, which is an open-source tool used for downloading YouTube videos and other media from various websites.

Step-by-Step Guide

1. Installing yt-dlp

In the first step, we need to install the yt-dlp library, which is an updated fork of the popular youtube-dl library. yt-dlp is faster and provides better features for video downloading.

To install yt-dlp, you can use the following command in your Google Colab notebook:

!pip install yt-dlp
Enter fullscreen mode Exit fullscreen mode

This will install the necessary library for downloading YouTube videos.

2. Importing the Required Libraries

Once yt-dlp is installed, you can import it into your Python environment.

import yt_dlp
Enter fullscreen mode Exit fullscreen mode

3. Writing the Python Function to Download YouTube Videos

Now, let’s write a Python function that will handle the video download. This function will accept the YouTube video URL and the path where you want to save the video.

def download_youtube_video(video_url, save_path="downloads"):
    """
    Downloads a YouTube video in the best available video and audio quality.

    Args:
        video_url (str): URL of the YouTube video.
        save_path (str): Directory to save the downloaded video.
    """
    try:
        # Options for yt-dlp
        ydl_opts = {
            'format': 'bestvideo+bestaudio/best',  # Download best video and audio and merge
            'outtmpl': f'{save_path}/%(title)s.%(ext)s',  # Save file format
            'merge_output_format': 'mp4',  # Merge video and audio into MP4 format
        }

        # Downloading the video
        print("Downloading...")
        with yt_dlp.YoutubeDL(ydl_opts) as ydl:
            ydl.download([video_url])
        print(f"Video downloaded successfully and saved in: {save_path}")

    except Exception as e:
        print(f"An error occurred: {e}")
Enter fullscreen mode Exit fullscreen mode

Explanation of the Code

Let’s break down the code for downloading the video in HD quality:

  1. Function Definition (download_youtube_video): This function takes two arguments:

    • video_url: The URL of the YouTube video you wish to download.
    • save_path: The directory where the downloaded video will be saved (default is "downloads").
  2. Options Dictionary (ydl_opts):

    • 'format': 'bestvideo+bestaudio/best': This option ensures that the best available video and audio are downloaded and merged.
    • 'outtmpl': f'{save_path}/%(title)s.%(ext)s': This specifies the output template where the file will be saved. The video file will be named according to its title and extension (e.g., "my_video.mp4").
    • 'merge_output_format': 'mp4': This tells yt-dlp to merge the video and audio streams into an MP4 format.
  3. Downloading the Video: The yt_dlp.YoutubeDL(ydl_opts) is used to create a downloader object with the specified options. The download([video_url]) method will download the video from the provided URL.

  4. Error Handling: If any errors occur during the download process, an exception is caught, and a message is displayed.

4. Running the Code

To execute the function, we need to provide the video URL and the directory to save the video. The following code allows you to input the video URL and the save path interactively:

if __name__ == "__main__":
    # Input YouTube video URL
    video_url = input("Enter the YouTube video URL: ").strip()

    # Input save directory (default is 'downloads')
    save_path = input("Enter the save path (or press Enter for default 'downloads'): ").strip() or "downloads"

    # Call the function to download the video
    download_youtube_video(video_url, save_path)
Enter fullscreen mode Exit fullscreen mode

How It Works:

  1. User Input: The script prompts the user to enter the YouTube video URL and the save path.
  2. Calling the Function: The download_youtube_video function is called with the provided URL and save path.
  3. Downloading: The video is downloaded in HD quality and saved in the specified directory.

Running the Code in Google Colab

  1. Open a new Google Colab notebook.
  2. Install yt-dlp using the !pip install yt-dlp command.
  3. Copy and paste the Python code into the notebook.
  4. Run the code. When prompted, enter the YouTube video URL and the save directory.

Conclusion

By following the steps above, you can easily download YouTube videos in HD quality using Python and Google Colab. This process uses the yt-dlp library, which is a powerful tool for downloading high-quality video and audio from YouTube and many other websites.

Feel free to modify the code to suit your needs, such as adding additional options or customizing the file-saving path. Happy coding!

Author Credits:

ChemEnggCalc - Learn Chemical Engineers Calculations with Tools & Tech

Learn Chemical Engineers Calculations with Tools & Tech

favicon chemenggcalc.com

For Non-Coders

Fully Tested Code - Copy & Paste to Google Colab - Free

!pip install yt-dlp

import yt_dlp

def download_youtube_video(video_url, save_path="downloads"):
    """
    Downloads a YouTube video in the best available video and audio quality.

    Args:
        video_url (str): URL of the YouTube video.
        save_path (str): Directory to save the downloaded video.
    """
    try:
        # Options for yt-dlp
        ydl_opts = {
            'format': 'bestvideo+bestaudio/best',  # Download best video and audio and merge
            'outtmpl': f'{save_path}/%(title)s.%(ext)s',  # Save file format
            'merge_output_format': 'mp4',  # Merge video and audio into MP4 format
        }

        # Downloading the video
        print("Downloading...")
        with yt_dlp.YoutubeDL(ydl_opts) as ydl:
            ydl.download([video_url])
        print(f"Video downloaded successfully and saved in: {save_path}")

    except Exception as e:
        print(f"An error occurred: {e}")

if __name__ == "__main__":
    # Input YouTube video URL
    video_url = input("Enter the YouTube video URL: ").strip()

    # Input save directory (default is 'downloads')
    save_path = input("Enter the save path (or press Enter for default 'downloads'): ").strip() or "downloads"

    # Call the function to download the video
    download_youtube_video(video_url, save_path) `
Enter fullscreen mode Exit fullscreen mode

Top comments (0)