π Website Auto Scroller & Recorder | Python Tkinter + Selenium GUI App | Record & Scroll Websites
Demo :
Click Video πππ
πΉ Features:
✅ Auto-scroll any website π
✅ Record scrolling as a video πΉ
✅ Modern Tkinter UI π¨
✅ Uses Selenium & OpenCV π₯️
Code :
import tkinter as tk
import customtkinter as ctk
from selenium import webdriver
import threading
import time
import cv2
import numpy as np
import base64
# Tkinter Window Settings
ctk.set_appearance_mode("dark") # Light/Dark Mode
ctk.set_default_color_theme("blue")
root = ctk.CTk()
root.title("Website Auto Scroller & Recorder")
root.geometry("400x350")
# Video settings
video_filename = "website_scroll.mp4"
fps = 10 # Frames per second
scroll_pause_time = 1 # Scrolling ke beech ka delay
# Function to Start Scrolling and Recording Together
def start_scrolling_recording():
url = url_entry.get()
if not url.startswith("http"):
status_label.configure(text="❌ Invalid URL!", text_color="red")
return
status_label.configure(text="π Launching Browser...", text_color="yellow")
def process():
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized") # Browser fullscreen hoga
driver = webdriver.Chrome(options=options)
driver.get(url)
time.sleep(2) # Website load hone ka wait karega
status_label.configure(text="✅ Scrolling & Recording Started!", text_color="green")
# Browser size fetch karega for video resolution
browser_width = driver.execute_script("return window.innerWidth")
browser_height = driver.execute_script("return window.innerHeight")
# Video Writer initialize karega
video_writer = cv2.VideoWriter(video_filename, cv2.VideoWriter_fourcc(*"mp4v"), fps, (browser_width, browser_height))
start_time = time.time()
scroll_position = 0
while time.time() - start_time < 10: # 10 sec tak scrolling & recording ek saath chalega
# Screenshot lo
screenshot = driver.get_screenshot_as_base64()
image_data = np.frombuffer(base64.b64decode(screenshot), dtype=np.uint8)
frame = cv2.imdecode(image_data, cv2.IMREAD_COLOR)
# Video me frame add karo
video_writer.write(frame)
# Scroll karo
scroll_position += 500
driver.execute_script(f"window.scrollTo(0, {scroll_position});")
time.sleep(1 / fps) # FPS maintain karega
video_writer.release()
driver.quit()
status_label.configure(text="✅ Scrolling & Recording Complete!", text_color="light green")
threading.Thread(target=process, daemon=True).start()
# UI Elements
title_label = ctk.CTkLabel(root, text="π Website Auto Scroller & Recorder", font=("Arial", 18, "bold"))
title_label.pack(pady=10)
url_entry = ctk.CTkEntry(root, width=300, placeholder_text="Enter Website URL")
url_entry.pack(pady=5)
start_button = ctk.CTkButton(root, text="Start", command=start_scrolling_recording)
start_button.pack(pady=10)
status_label = ctk.CTkLabel(root, text="", font=("Arial", 12))
status_label.pack(pady=10)
# Run GUI
root.mainloop()
Hello,
ReplyDeleteI wanted to ask for help from you from a current project I have to do in python using squire/tkinter. I currently have very minimal coding experience and I’ve only been able to make the login/registration lead to the home screen. Would you be able to help me add buttons to the home screen that lead to settings and a planner feature ? If that’s not too much ask?