Generate YouTube Shorts Videos using Python

Brief overview of YouTube Shorts

YouTube Shorts is a relatively new feature introduced by YouTube in 2020, designed to cater to the growing demand for short, engaging, and mobile-friendly video content. These short videos, typically up to 60 seconds in length, provide content creators with a new way to express their creativity, reach new audiences, and take advantage of the increasing popularity of short-form video content.

Inspired by the success of platforms like TikTok and Instagram Reels, YouTube Shorts allows users to create and share brief, entertaining videos that can be easily consumed on-the-go. The vertical video format is tailored for mobile devices, making it easy for viewers to watch and navigate through these short videos with just a few taps on their screens.

In this tutorial, we will use Python to create programmatically YouTube Shorts videos by combining multiple images. This technique can be used to create wide range of informative videos.

Why should we consider generating YouTube Shorts using Python?

Creating YouTube Shorts or vertical videos using Python offers several advantages for content creators, especially those who wish to automate the video creation process or need to generate multiple videos at scale. Here are some reasons to consider using Python for generating YouTube Shorts:

  1. Time-saving: Python allows you to automate the process of creating videos from images, saving you time and effort. Instead of manually editing and combining the images using video editing software, Python can help you quickly generate videos with minimal input.
  2. Batch processing: If you have a large number of images and you want to create multiple videos, using Python can streamline the process. With a few lines of code, you can generate multiple videos with different images and settings, making it easier to produce content at scale.
  3. Customization: With Python, you have complete control over how out videos are created. You can easily apply custom transitions, effects, text overlays, animations, and background music to your videos, tailoring them to your specific needs and preferences.
  4. Cost-effective: Python is an open-source programming language, which means you don’t need to invest in expensive video editing software to create Shorts. Additionally, the libraries used for video processing, such as OpenCV and moviepy, are also open-source and free to use. This makes creating YouTube Shorts with Python a cost-effective solution for content creators on a budget.
  5. Consistency: Using Python to generate your YouTube Shorts ensures that your videos maintain a consistent style, format, and quality. By defining your preferred settings and styles in your Python script, you can maintain uniformity across all your Shorts, enhancing your brand image and making your content more recognizable to viewers.
  6. Flexibility: Python is a versatile programming language that can be easily integrated with other tools and platforms. This means that you can use Python to not only create videos but also to automate other tasks related to video production, such as fetching images from a database, resizing images, or even analyzing video performance data.
  7. Learning opportunity: If you’re new to Python, creating YouTube Shorts can be a great opportunity to learn and apply programming skills. Python is known for its simplicity and readability, making it an excellent language for beginners to start with. By working on a practical project like generating YouTube Shorts, you can enhance your Python skills and gain valuable experience in video processing and automation.

Creating input images for Shorts video

We will create a vertical video using a set of images. The images would have colorful backgrounds with some text like quotes on top.

There are many free online tools that we can use to edit the images. We can use Canva, MS Powerpoint, Google Slides to edit and enhance these images and these tools can also help us in inserting quotes or any other kind of text.

Tha base images can be found on stock footage web portals or we can also use Generative AI models such as Stable Diffusion to generate graphics or entirely new images as per our requirements.

In case you do not want to use simply images and text, then you can create infographics and use them in the video.

For this demo I have created the following three images with motivational quotes. I will use these images to create a video with the help of Python.

Python code to create YouTube Shorts video

Before we get started, put all the input images in a folder or a directory. I have put the images in a folder called “images” in my current working directory.

Then import the required libraries.

import cv2
import os

Next, we will define a function that will do most of the heavy lifting. It will load the images from a directory and then combine them to create an MP4 video.

The user would be able to control the frames per second and the duration of the video as well.

def create_video_from_images(images_folder, output_video, fps=10, duration=6):
    images = sorted(os.listdir(images_folder))

    # create path to the input images
    img_path = os.path.join(images_folder, images[0])
    # load image
    frame = cv2.imread(img_path)
    # extract dimensions of the image
    height, width, channels = frame.shape

    video_writer = cv2.VideoWriter(output_video, 
                                   (width, height))

    # total number of frames for the video
    frames_per_image = fps * duration

    for image in images:
        img_path = os.path.join(images_folder, image)
        frame = cv2.imread(img_path)
        for _ in range(frames_per_image):

    print(f"Video {output_video} created successfully")

This function takes four arguments:

  • images_folder – Path to the directory where we have kept the input images
  • output_video – Filename of the output MP4 video along with its full path
  • fps – Frames per second for the video
  • duration – Duration in seconds for each image in the video

So, with the help of duration parameter, we can alter the length of the video. The function finally returns an MP4 video that can be uploaded to YouTube as a shorts video.

To call this function run the below Python code.

# generate video
create_video_from_images("/images", "out.mp4")

You can even add visual effects in your vertical videos such as panning, scrolling, or zoom-in & zoom-out.

Python Code Download

If you also want to add audio or music to your video, then download the Python code from this link.


To sum it up, generating YouTube Shorts using Python offers a powerful and efficient way for content creators to create engaging short-form videos across various content types. With Python’s versatility and the availability of numerous libraries, you can automate and customize your video creation process to suit your specific needs and preferences.

Use the power of Python for your YouTube video creation process and unlock new opportunities to showcase your creativity and connect with your viewers in a unique and personalized way.

Leave a Reply

Your email address will not be published. Required fields are marked *