A simple python script and it's used for mp4 type video downloading from youtube.

Overview

Youtube Video Downloader Python Script

Build


Description

This is a simple python script and it's used for mp4 type video downloading from youtube. also, it's used inbuilt python module "pytube". Furthermore, I know we have so many apps and online websites to do the same thing so it's just an experiment to study how to do those things in python.


Feature

  • Easy to download youtube videos
  • You can choose a video format would you like
  • MPEG4 format video

Pre-Requests

  • python 3.x
  • python3-pip

How to Install Python (for windows)

once you have installed git bash then please use your windows command prompt with limited linux commands

Pre-Requests (for RedHat-based-Linux)

yum install -y git
yum install -y python3
yum install -y python3-pip

Pre-Requests (for Debian-based-Linux)

apt install -y git
apt install -y python3
apt install -y python3-pip

Pre-Requests (for Termux-based-Linux)

pkg upgrade
pkg install git
pkg install python3
pkg install pip

using termux who you guys please install requirements use pip install -r requirements.txt don't need to use pip3


Modules Used


How to Get

git clone https://github.com/yousafkhamza/youtube-video-downloader-pyscript.git
cd youtube-video-downloader-pyscript
pip3 install -r requirements.txt

How to execute

python3 youtube_downloader.py

Output be like

dir Downloads Volume in drive C is Windows Directory of C:\Users\yousa\youtube-video-downloader-pyscript\Downloads 01/10/2022 08:49 AM 13,601,616 Thathaka Theithare Video Song Hridayam Pranav Vineeth Prithviraj Hesham Visakh Merryland.mp4 C:\Users\yousa\youtube-video-downloader-pyscript>">
C:\Users\yousaf>git clone https://github.com/yousafkhamza/youtube-video-downloader-pyscript.git
Cloning into 'youtube-video-downloader-pyscript'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 9 (delta 2), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (9/9), done.
Resolving deltas: 100% (2/2), done.

C:\Users\yousaf>cd youtube-video-downloader-pyscript

C:\Users\yousaf\youtube-video-downloader-pyscript>pip3 install -r requirements.txt
Collecting pytube
  Downloading pytube-11.0.2-py3-none-any.whl (56 kB)
     |████████████████████████████████| 56 kB 654 kB/s
Installing collected packages: pytube
Successfully installed pytube-11.0.2

C:\Users\yousaf\youtube-video-downloader-pyscript>python3 youtube_downloader.py
Youtube URL: https://youtu.be/gJB3l7uc4RA                            <------------------- URL pasted here.

Fetching "Thathaka Theithare Video Song | Hridayam | Pranav | Vineeth | Prithviraj | Hesham |Visakh |Merryland"..
Information:
Highest Resolution: 720p
Author: Think Music India
Views: 1,312,619

Available Formats:
['360p', '720p']
Choose one format would you like to download (eg:360p): 720p        <------------------- Choose any resolution when available here.

Information about the video format you had selected:
File size: 13.6 MB
Selected Resolution: 720p

Downloading....
69.38%
100.00%
Download Successful
Please go and watch the same under 'C:\Users\yousaf\youtube-video-downloader-pyscript/Downloads'....

C:\Users\yousaf\youtube-video-downloader-pyscript>dir Downloads
 Volume in drive C is Windows

 Directory of C:\Users\yousa\youtube-video-downloader-pyscript\Downloads

01/10/2022  08:49 AM        13,601,616 Thathaka Theithare Video Song  Hridayam  Pranav  Vineeth  Prithviraj  Hesham Visakh Merryland.mp4

C:\Users\yousa\youtube-video-downloader-pyscript>

ScreenShots

alt_txt alt_txt


Behind the code

import pytube  
from pytube import YouTube  
import os


current_path = os.getcwd()
if not os.path.exists("./Downloads"):
    os.makedirs("./Downloads")

video_url = input("Youtube URL: ")
    
def on_progress(stream, chunk, bytes_remaining):
    total_size = stream.filesize
    bytes_downloaded = total_size - bytes_remaining
    percentage_of_completion = bytes_downloaded / total_size * 100
    formated_percentage = "{:.2f}".format(percentage_of_completion)
    print(formated_percentage+"%")
        
def main():
    chunk_size = 1024
    video = yt.streams.get_highest_resolution()
    title = video.title
    print(f"\nFetching \"{video.title}\"..")
    print(f"Information: \n"
          f"Highest Resolution: {video.resolution}\n"
          f"Author: {yt.author}")
    print("Views: {:,}".format(yt.views))

    print("\nAvailable Formats: ")
    A=[]
    res=yt.streams.filter(progressive=True, file_extension='mp4')
    if res.filter(resolution="360p"):
        A.append("360p")

    if res.filter(resolution="480p"):
        A.append("480p")

    if res.filter(resolution="720p"):
        A.append("720p")

    if res.filter(resolution="1080p"):
        A.append("1080p")

    if res.filter(resolution="1440p"):
        A.append("1440p")
    print(A)
    
    format_res = input("Chosse one format would you like to download (eg:360p): ")
    if format_res.endswith("p"):
        if format_res in A:
            video = yt.streams.filter(res=format_res, file_extension = "mp4").first()
            print(f"\nInformation about the video format you had selected: \n"
                  f"File size: {round(video.filesize * 0.000001, 2)} MB\n"
                  f"Selected Resolution: {video.resolution}\n")
            print("Downloading....")
            yt.register_on_progress_callback(on_progress)
            yt.streams.filter(res=format_res, file_extension = "mp4").first().download("./downloads")
            print("Download Successful")
            print("Please go and watch same under '{}/Downloads'....".format(current_path))
        else:
            print("Choose a valid format from the available list mentioned above")
    else:
        format_res=format_res+"p"
        if format_res in A:
            video = yt.streams.filter(res=format_res, file_extension = 'mp4').first()
            print(f"\nInformation of the current video format: \n"
                  f"File size: {round(video.filesize * 0.000001, 2)} MB\n"
                  f"Selected Resolution: {video.resolution}\n")
            print("Downloading....")
            yt.register_on_progress_callback(on_progress)
            yt.streams.filter(res=format_res, file_extension = 'mp4').first().download("./downloads")
            print("Download Successful")
            print("Please go and watch the same under '{}/Downloads'....".format(current_path))
        else:
            print("Choose a valid format from the available list mentioned above")
            
if video_url.startswith("http"):
    yt=YouTube(video_url)
    main()
else:
    print("Please enter a valid URL.")

Conclusion

This is a simple python script and it's used for mp4 type video downloading from youtube.

⚙️ Connect with Me


Owner
Yousaf K Hamza
DevOps Engineer
Yousaf K Hamza
Neon: an add-on for making it easier to handle component interactions

Neon Neon is an add-on for Lightbulb making it easier to handle component interactions. Installation pip install git+https://github.com/neonjonn/light

Neon Jonn 9 Apr 29, 2022
YouTube Video publisher using youtube-dl & ROS2🐢

YouTube-publisher-ROS2 Publish sensor_msgs/Image by "YouTube" 🤗 🤗 🤗 ! You don't have to use webcamera or your video to check demos. Purpose Quick d

Ar-Ray 5 Dec 04, 2022
Youtube list to mp3 - Youtube list to mp3 downloader

Youtube list to mp3 downloader Tiny script to convert a list of youtube videos t

Papi Diagne 3 Feb 11, 2022
Tool To download Amazon 4k SDR HDR 1080, CDM IS Not Included

WV-AMZN-4K-RIPPER Tool To download Amazon 4k SDR HDR 1080, CDM IS Not Included For CDM You can Mail :- 11 Dec 23, 2021

Source code of paper: "HRegNet: A Hierarchical Network for Efficient and Accurate Outdoor LiDAR Point Cloud Registration".

HRegNet: A Hierarchical Network for Efficient and Accurate Outdoor LiDAR Point Cloud Registration Environments The code mainly requires the following

Intelligent Sensing, Perception and Computing Group 3 Oct 06, 2022
Easy automated ebook downloader using openbooks as the backend

Easy automated ebook downloader using openbooks as the backend

27 Nov 06, 2022
ImageScraper is a cross-platform tool for downloading a specified count from xkcd, Astronomy Picture of the Day and Existential Comics

ImageScraper The ImageScraper is a cross-platform tool for downloading a specified count from xkcd, Astronomy Picture of the Day and Existential Comic

1amnobody 1 Jan 25, 2022
Easily download audio described movies and TV shows found on audiovault.net

AudioVault Downloader A convenient downloader for audio described movies and TV shows found on the Audio Vault. get latest binary release for Windows

Carter Temm 5 Feb 10, 2022
A simple Python +3.x script to download videos from Facebook.

Facebook Video Downloader A simple Python +3.x script to download videos from Facebook posts

Kerolos Atef Saber 1 Dec 03, 2021
Python software to download videos from Tiktok without rights

download-video-tiktok Python software to download videos from Tiktok without rights to install pip install requests Follow us telegram : https://t.me

muntazir halim 1 Oct 28, 2021
Download any video from YouTube playlists

youtube-dl Download any videos from YouTube playlists. Requirements Python 3 BeautifulSoup4 PyQt PyQtWebEngine pytube pyyoutube python-decouple Usage

Antonio Fortin 1 Oct 26, 2021
Downloads files and folders

PyDownloader Downloads files and folders at high speed (based on your interent speed). This is very useful to transfer big files from one computer to

ArmenG 4 Feb 24, 2022
Smule Video Downloader

Smule Video Downloader Using Requests,Re & Urllib Installation - apt install git (for vps) or pkg install git (for termux)

Hansen Gianto 4 Aug 31, 2022
A simple Python program which uses youtube-dl for downloading YouTube videos as mp3 files.

yt-mp3 converter This is a simple Python program which uses youtube-dl for downloading YouTube videos as mp3 files. This program is for you if you are

nostalgicnerdpenguin 1 Oct 24, 2021
An automatic beatmapset downloader via txt file, suitable for tourney mappools.

Pooler Pooler is a bulk osu! mapset downloader, perfect for use with osu! Tournament Mappools. Prerequisites Python 3.10 Requests (pip install request

Thomas 0 Feb 11, 2022
YouTube Downloader is extremely simple program for downloading songs or playlists (in audio or video) from YouTube. Created using Python, PyTube and PySimpleGUI.

YouTube Downloader YouTube Downloader is extremely simple program for downloading songs or playlists (in audio or video) from YouTube. Disclaimer It's

Simeon Tsvetanov 3 Dec 14, 2022
The lyrics module of the repository apple-playlist-downloader

This is the lyrics module of the repository apple-playlist-downloader. With this code you can download the .lrc file (time synced lyrics) from yours t

Antoine Bollengier 6 Oct 07, 2022
Noto fonts go universal! Download Noto fonts combined to suit your region

noto-cjk Noto CJK fonts Noto Serif CJK update was released on 25 October 2021. We moved the release history and other notes into both Sans and Serif s

Google Fonts 2k Jan 02, 2023
Python based YouTube video Downloader GUI Application.

Youtube video Downloader Python based Youtube video Downloader GUI Application. Installation Python Dependencies Import pytube pip install pytube Im

Naem Azam 1 Jan 03, 2022
A Python script that allows you to download all of an anime's episodes at once.

BitAnime A Python script that allows you to download all of an anime's episodes at once. · Download executable version · About BitAnime BitAnime is a

sh1nobu 17 Aug 10, 2022