How to Build a Facebook Video Downloader using Python
Hello coder, welcome to the codewithrandom blog. In this blog, we will building a Facebook video downloader using Python with Complete Source Code. Facebook is one of the most popular social media platforms with millions of users worldwide. Sometimes you might want to download a Facebook video to watch it offline or share it with someone who does not have an internet connection. In this blog, we will Build a Facebook video downloader using Python.

Here’s a step-by-step guide on how to build a Facebook video downloader using Python:
step 1: open any python code Editor.
step 2: Importing the Required Modules.
For this Facebook video downloader project, we need to install Tkinter Gui. You can install these packages in your terminal.
$ pip insatll tk $ pip3 install -r requirements.txt
step 3: Copy the code for Facebook video downloader using Python, which I provided Below in this article, and save it in a file named “main.py” (or any other name you prefer).
step 4: Run this python file main.py to start the Facebook video downloader

How to Build a YouTube Video Downloader using Python
how to create a web browser Using python
Complete Source Code For the Facebook video downloader (copy the code and run )👇👇👇
# ALL Imports
import time
from tkinter.ttk import *
import tkinter as tk
from requests import get, HTTPError, ConnectionError
from re import findall
from urllib.parse import unquote
from threading import Thread
import queue
from queue import Empty
def Invalid_Url():
""" Sets Status bar label to error message """
Status["text"] = "Invalid URL..."
Status["fg"] = "red"
def get_downloadlink(url):
url = url.replace("www", "mbasic")
try:
r = get(url, timeout=5, allow_redirects=True)
if r.status_code != 200:
raise HTTPError
a = findall("/video_redirect/", r.text)
if len(a) == 0:
print("[!] Video Not Found...")
exit(0)
else:
return unquote(r.text.split("?src=")[1].split('"')[0])
except (HTTPError, ConnectionError):
print("[x] Invalid URL")
exit(1)
def Download_vid():
# Validates Link and download Video
global Url_Val
url=Url_Val.get()
Status["text"]="Downloading"
Status["fg"]="green"
# Validating Input
if not "www.facebook.com" in url:
Invalid_Url()
return
link=get_downloadlink(url)
start_downloading()
download_thread=VideoDownload(link)
download_thread.start()
monitor(download_thread)
def monitor( download_thread):
""" Monitor the download thread """
if download_thread.is_alive():
try:
bar["value"]=queue.get(0)
ld_window.after(10, lambda: monitor(download_thread))
except Empty:
pass
class VideoDownload(Thread):
def __init__(self, url):
super().__init__()
self.url = url
def run(self):
""" download video"""
# save the picture to a file
block_size = 1024 # 1kB
r = get(self.url, stream=True)
total_size = int(r.headers.get("content-length"))
with open('video.mp4', 'wb') as file:
totaldata=0;
for data in r.iter_content(block_size):
totaldata+=len(data)
per_downloaded=totaldata*100/total_size
queue.put(per_downloaded)
bar['value'] = per_downloaded
file.write(data)
time.sleep(0.01)
file.close()
print("Download Finished")
print("Download Complete !!!")
Status["text"] = "Finished!!"
Status["fg"] = "green"
#start download
def start_downloading():
bar["value"]=0;
# GUI
ld_window=tk.Tk()
ld_window.title("Facebook Video Downloader")
ld_window.geometry("400x300")
# Label for URL Input
input_label= tk.Label(ld_window,text="Enter Facebook Video URL:")
input_label.pack()
# Input of URL
Url_Val = tk.StringVar()
Url_Input = tk.Entry(ld_window, textvariable=Url_Val, font=("Calibri", 9))
Url_Input.place( x=25,y=50, width=350)
# Button for Download
Download_button = tk.Button(ld_window, text="Download", font=("Calibri", 9), command=Download_vid)
Download_button.place(x=100, y=100, width=200)
# Progress Bar
bar = Progressbar(ld_window, length=350, style='grey.Horizontal.TProgressbar',mode='determinate')
bar.place(y=200,width=350,x=25)
queue=queue.Queue()
# Text for Status of Downloading
Status = tk.Label(ld_window, text="Hello!! :D", fg="blue", font=("Calibri", 9), bd=1, relief=tk.SUNKEN, anchor=tk.W, padx=3)
Status.pack(side=tk.BOTTOM, fill=tk.X)
ld_window.mainloop()Output👇👇

conclusion
Hurray! You have successfully Build a Facebook Video Downloader project using the Python. developing a Facebook Video Downloader using Python can be a useful tool for those who want to download videos from Facebook for offline viewing or sharing.
Overall, developing a Facebook Video Downloader using Python can be a great learning experience for those interested in web scraping and automation. Hope you enjoyed building with us! Visit our homepage and you get lot’s of projects💝

