back to top

Her Yeni Takipçide Hayat Bulan Proje: Sosyal Medya Takipçi Sayacını Kendin Yap!

Sosyal medya büyümeni fiziksel olarak gözlemleyebileceğin bir takipçi sayacı yapmaya ne dersin? Yeni takipçiler geldiğinde ses çıkaran, ekran üzerinde gerçek zamanlı sayı güncelleyen ve hatta dilersen Telegram’dan bildirim gönderen bir takipçi sayacı tasarladık. Üstelik bu sayaç, şık bir çerçeve tasarımıyla masanda dekoratif bir obje gibi duruyor.

Kullanılan Malzemeler

Ürün AdıÜrün Kodu
Raspberry Pi 5 – 4GB22561
Raspberry Pi 5 için 27W USB-C Güç Adaptörü23131
SanDisk 64GB microSD Kart Class10 – 98MB/s22709
Raspberry Pi USB Ses Kart Modülü (Mikrofon ve Kulaklık Girişi)19478
WaveShare 4inch HDMI LCD, 800×480, IPS17103

Yukarıdaki donanımlar sayesinde projeniz güçlü, hızlı ve çok yönlü bir hale geliyor. Raspberry Pi 5 ile gelen bağlantı seçenekleri ve performans avantajları, bu ve buna benzer internet tabanlı uygulamalar için harika bir seçenek olarak ön plana çıkıyor.

Takipçi Sayacı Projesi Nasıl Çalışıyor?

Sistem, sosyal medya platformlarından -Biz YouTube, X-Twitter ve Reddit’i kullandık. Siz istediğiniz kadar platform ekleyebilirsiniz.- gerçek zamanlı takipçi sayısını çekiyor. Arka planda çalışan Python betikleri sayesinde:

  • Sayılar ekranda güncelleniyor.
  • Her yeni takipçide ses efekti çalıyor.
  • İstenirse Telegram’dan anlık bildirim gidiyor.

Tüm bu süreç, Raspberry Pi 5 üzerinde çalışan iki ana Python dosyasıyla yürütülüyor:

  • sosyalmedya.py: API’lerden veri çeker
  • uygulama.py: Arayüz, ses ve bildirimleri yönetir.

Her 60 saniyede bir güncelleme yapılır. Eğer bir artış tespit edilirse, sistem otomatik olarak ses efekti çalar ve mesaj yollar. Dilerseniz, süreyi kendi tercihinize göre uzatıp, kısaltabilirsiniz.

Kodlar

Proje, Python ile yazılmış iki temel dosya üzerine kurulmuştur. sosyalmedya.py dosyası YouTube, X-Twitter ve Reddit API’lerinden takipçi sayısını çekmek için yazıldı. uygulama.py ise bu verileri kullanıcı arayüzünde gösterir, ses efektini tetikler ve istenirse Telegram bildirimlerini gönderir.

  • Arayüz: Tkinter kütüphanesiyle oluşturulmuş, ikonlarla zenginleştirilmiş bir panel.
  • Ses: Takipçi sayısı arttığında otomatik olarak ses dosyası çalınır
  • Bildirim: Telegram botu üzerinden kullanıcıya anlık mesaj gönderilir.
  • Güncelleme Döngüsü: Her 60 saniyede bir veriler yeniden çekilir ve kontrol sağlanır. (Süre sizin tercihinize kalmış)

Sistem, API entegrasyonlarını basit ve anlaşılır hale getirirken aynı zamanda yüksek etkileşimli bir masaüstü deneyimi sunar.

sosyalmedya.py

from googleapiclient.discovery import build
import time
import requests
import praw


def youtube_takipci():
    API_KEY = ""
    CHANNEL_ID = ""

    youtube = build("youtube", "v3", developerKey=API_KEY)

    request = youtube.channels().list(
        part="statistics",
        id=CHANNEL_ID
    )
    response = request.execute()

    if "items" in response:
        subs = response["items"][0]["statistics"]["subscriberCount"]
        return subs
    else:
        return 0

def x_twitter_takipci():

    BEARER_TOKEN = ""
    USERNAME = ""
    url = f"https://api.twitter.com/2/users/by/username/{USERNAME}?user.fields=public_metrics"

    headers = {
        "Authorization": f"Bearer {BEARER_TOKEN}",
        "User-Agent": "v2UserLookupPython"
    }

    # API isteği yap
    response = requests.get(url, headers=headers)

    if response.status_code == 200:
        user_data = response.json()
        followers_count = user_data["data"]["public_metrics"]["followers_count"]
        return followers_count
    else:
        return 0

def reddit_takipci():
    # Reddit API kimlik bilgileri
    CLIENT_ID = ""  # Client ID
    CLIENT_SECRET = ""  # Client Secret
    USER_AGENT = "deneme_script"  # Rastgele bir isim verebilirsin

    # Reddit API'ye bağlan
    reddit = praw.Reddit(
        client_id=CLIENT_ID,
        client_secret=CLIENT_SECRET,
        user_agent=USER_AGENT
    )

    subreddit_name = ""  # Burayı istediğin subreddit ile değiştir

    subreddit = reddit.subreddit(subreddit_name)

    return subreddit.subscribers

if __name__ == "__main__":
    print(x_twitter_takipci())

uygulama.py

import tkinter as tk
from tkinter import font, PhotoImage
import os
import pygame
import requests
import sosyalmedya

# Ses ve bildirim özelliklerini kontrol eden değişkenler
ses_ozellik = True
bildirim_ozellik = True
x = 0

# Pygame ses modülünü başlat
pygame.mixer.init()

def play_sound():
    """Takipçi sayısı arttığında sesi çalar."""
    sound_path = os.path.join("C:/Users/PC/Desktop/icons/", "sound.mp3")
    if os.path.exists(sound_path):
        pygame.mixer.music.load(sound_path)
        pygame.mixer.music.play()

def telegram_mesaj():
    """Telegram'a mesaj gönderir."""
    token=""
    chat_id=0
    url = f"https://api.telegram.org/bot{token}/sendMessage"
    params = {
        'chat_id': chat_id,
        'text': "YENİ TAKİPÇİ!!"
    }
    try:
        response = requests.post(url, params=params)
        if response.status_code == 200:
            print("Mesaj başarıyla gönderildi!")
        else:
            print(f"Mesaj gönderilemedi, hata kodu: {response.status_code}")
    except Exception as e:
        print(f"Telegram mesajı gönderilemedi: {e}")

def toggle_ses():
    global ses_ozellik
    ses_ozellik = not ses_ozellik
    ses_button.config(text=f"Ses: {'Açık' if ses_ozellik else 'Kapalı'}")

def toggle_bildirim():
    global bildirim_ozellik
    bildirim_ozellik = not bildirim_ozellik
    bildirim_button.config(text=f"Bildirim: {'Açık' if bildirim_ozellik else 'Kapalı'}")

def update_data():
    global x, youtube_previous, twitter_previous, reddit_previous
    
    youtube = sosyalmedya.youtube_takipci()
    twitter = sosyalmedya.x_twitter_takipci()
    reddit = sosyalmedya.reddit_takipci()

    if x == 0:
        youtube_previous = youtube
        twitter_previous = twitter
        reddit_previous = reddit
        x += 1

    if ses_ozellik and ((youtube > youtube_previous) or (twitter > twitter_previous) or (reddit > reddit_previous)):
        play_sound()
    
    if bildirim_ozellik and ((youtube > youtube_previous) or (twitter > twitter_previous) or (reddit > reddit_previous)):
        telegram_mesaj()

    youtube_previous = youtube
    twitter_previous = twitter
    reddit_previous = reddit
    
    youtube_label.config(text=f"YouTube: {youtube}")
    twitter_label.config(text=f"Twitter: {twitter}")
    reddit_label.config(text=f"Reddit: {reddit}")

    root.after(60000, update_data)

root = tk.Tk()
root.title("Sosyal Medya Takipçi Sayıları")
root.geometry("400x350")
root.config(bg="white")

font_style = font.Font(family="Helvetica", size=14)

icon_path = "C:/Users/PC/Desktop/icons/"
youtube_icon = PhotoImage(file=os.path.join(icon_path, "youtube.png")).subsample(13, 13)
twitter_icon = PhotoImage(file=os.path.join(icon_path, "twitter.png")).subsample(5, 5)
reddit_icon = PhotoImage(file=os.path.join(icon_path, "reddit.png")).subsample(6, 6)

root.grid_rowconfigure(list(range(7)), weight=1)
root.grid_columnconfigure((0, 1), weight=1)

youtube_label = tk.Label(root, text="YouTube: Yükleniyor...", font=font_style, bg="white", image=youtube_icon, compound="left", padx=10)
youtube_label.grid(row=0, column=0, columnspan=2, pady=5, sticky="nsew")


twitter_label = tk.Label(root, text="Twitter: Yükleniyor...", font=font_style, bg="white", image=twitter_icon, compound="left", padx=10)
twitter_label.grid(row=3, column=0, columnspan=2, pady=5, sticky="nsew")

reddit_label = tk.Label(root, text="Reddit: Yükleniyor...", font=font_style, bg="white", image=reddit_icon, compound="left", padx=10)
reddit_label.grid(row=4, column=0, columnspan=2, pady=5, sticky="nsew")

ses_button = tk.Button(root, text=f"Ses: {'Açık' if ses_ozellik else 'Kapalı'}", font=font_style, bg="lightgray", command=toggle_ses)
ses_button.grid(row=5, column=0, columnspan=2, pady=5, sticky="nsew")

bildirim_button = tk.Button(root, text=f"Bildirim: {'Açık' if bildirim_ozellik else 'Kapalı'}", font=font_style, bg="lightgray", command=toggle_bildirim)
bildirim_button.grid(row=6, column=0, columnspan=2, pady=5, sticky="nsew")

update_data()
root.mainloop()

İhtiyacınız olacak sosyal medya platformlarının ikonlarını da sizinle paylaşıyoruz.

3D Baskı Tasarımı

Sosyal medya takipçi sayacı projesi, sadece elektronik değil, görsel olarak da oldukça tatmin edici bir şekilde tasarlandı. 3D yazıcıyla üretilen bu özel tasarım sayesinde cihaz, sıradan bir çerçeve gibi görünüyor. Ama içinde Raspberry Pi 5, HDMI ekran, güç ve ses bağlantıları gizli!

Parçalar:

PLA ile yazdırılmış bu model, estetik ve fonksiyonelliği aynı yapıda buluşturuyor. Tasarım, ekranı tam ortalayacak şekilde optimize edilmiştir.

Devre Şeması

Bu projede doğrudan GPIO pin bağlantısı yapılmamıştır. Tüm işlemler USB ve HDMI üzerinden yürütülmektedir. Bu da kurulumu son derece kolay hale getiriyor.

  • HDMI ekran → Raspberry Pi 5 HDMI portu
  • Ses kartı → USB port
  • Güç → USB-C

Ekstra lehim veya breadboard kullanmadan tamamlanan bu sistem, özellikle yazılım odaklı maker’lar için ideal bir proje haline geliyor.

Sonuç ve İlham

Sosyal medya takipçi sayacı projesi, yazılım ile donanımın buluştuğu en eğlenceli noktalardan biri olarak ön plana çıkıyor. Kendi sayacınızı yapmak; hem sosyal medya motivasyonunuzu artırır hem de teknik becerilerinizi geliştirmenizi sağlar.

YouTube kanalınız mı var? Yeni bir TikTok hesabı mı açtınız? Ya da Reddit topluluğunuzun büyümesini mi izlemek istiyorsunuz? Bu sayaç sizi anbean bilgilendiriyor.

Siz de takipçi sayacınızı yapın, sosyal medyadaki büyümenizi gerçek zamanlı izleyin!

📥 Detaylar için Youtube videomuzu izleyebilirsiniz!

Hadi ne duruyorsun. Projeyi indir, kur ve takipçilerinle birlikte büyümeye başla!

Son Çıkan Yazılar

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz