πŸš€ 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()

Comments

  1. Hello,

    I 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?

    ReplyDelete

Post a Comment

Popular posts from this blog

πŸš€ Simple Login & Registration System in Python Tkinter πŸ“±

πŸš€ Create a Python Screen Recorder with Audio (Complete Code)

πŸ“‘ Fuzzu Packet Sniffer – Python GUI for Real-Time IP Monitoring | Tkinter + Scapy