Instagram Post Scheduler – FuzzuTech π₯ (Auto Reminder Python App)
Demo :
Click Video πππ
✨ Features to Mention:
-
Built with
customtkinter
-
Schedules IG post reminders with image preview
-
Lightweight & open-source
-
Great for creators, marketers, and developers
-
Unique interface & minimal design
-
Works offline!
Code :
import customtkinter as ctk
from tkinter import filedialog, messagebox
from PIL import Image, ImageTk
import threading, datetime, time
import os
# App setup
ctk.set_appearance_mode("dark")
ctk.set_default_color_theme("blue")
app = ctk.CTk()
app.geometry("600x600")
app.title("π Instagram Post Scheduler - FuzzuTech")
# Image placeholder
img_label = ctk.CTkLabel(app, text="No Image Selected")
img_label.pack(pady=10)
# Caption entry
caption_entry = ctk.CTkTextbox(app, height=100)
caption_entry.insert("0.0", "Enter your Instagram caption here...")
caption_entry.pack(pady=10)
# Date-time entry
date_entry = ctk.CTkEntry(app, placeholder_text="YYYY-MM-DD HH:MM (24hr format)")
date_entry.pack(pady=10)
scheduled_image_path = ""
# Image selection
def select_image():
global scheduled_image_path
path = filedialog.askopenfilename(filetypes=[("Image Files", "*.png;*.jpg;*.jpeg")])
if path:
scheduled_image_path = path
img = Image.open(path)
img = img.resize((300, 300))
photo = ImageTk.PhotoImage(img)
img_label.configure(image=photo, text="")
img_label.image = photo
# Show reminder popup
def show_reminder(img_path, caption):
os.startfile(img_path) # Opens image file
messagebox.showinfo("⏰ Post Reminder", f"Time to post on Instagram!\n\nCaption:\n{caption}")
# Schedule the post
def schedule_post():
if not scheduled_image_path:
messagebox.showerror("Error", "Please select an image first.")
return
user_input = date_entry.get().strip() # Strip whitespace and invisible chars
try:
post_time = datetime.datetime.strptime(user_input, "%Y-%m-%d %H:%M")
except ValueError:
messagebox.showerror("Invalid Format", "Use format YYYY-MM-DD HH:MM")
return
caption = caption_entry.get("0.0", "end").strip()
def countdown():
while True:
now = datetime.datetime.now()
if now >= post_time:
show_reminder(scheduled_image_path, caption)
break
time.sleep(30)
threading.Thread(target=countdown, daemon=True).start()
messagebox.showinfo("Scheduled", "Post scheduled successfully!")
# Buttons
select_btn = ctk.CTkButton(app, text="πΌ Select Image", command=select_image)
select_btn.pack(pady=10)
schedule_btn = ctk.CTkButton(app, text="π Schedule Post", command=schedule_post)
schedule_btn.pack(pady=20)
app.mainloop()
Comments
Post a Comment