Youtube canlı yayın mesajlarınızı sesli okutma kodları ücretsiz (apisiz)

wbmasterforum

Kayıtlı Üye
Katılım
18 Mart 2014
Mesajlar
724
Tepkime puanı
12
Puan
18
Konum
Güney Kore
Bu Python scripti, YouTube canlı yayınınızdaki chat mesajlarını anlık olarak yakalar, Microsoft Edge TTS kalitesiyle sesli okur ve aynı zamanda mesajı OBS ekranına yansıtmanız için bir metin dosyasına yazar. YouTube API Key (v3) gerektirmez, kota sınırı yoktur.

1. Gerekli Modüllerin Kurulumu​

Kodu çalıştırmadan önce bilgisayarınızda Python yüklü olmalıdır. Ardından terminali (CMD veya PowerShell) açıp şu komutu yapıştırın:

Python:
pip install pytchat edge-tts playsound==1.2.2

2. Kullanım Talimatı​

  1. Video ID Belirleme: Yayınınızın URL'sindeki v= kısmından sonraki karakterleri (Örn: youtube.com/watch?v=ABC123XYZ ise ABC123XYZ) koddaki VIDEO_ID kısmına yapıştırın.
  2. CMD ile Kodu Çalıştırın: python chat.py komutuyla başlatın.( dosyanın olduğu dizinde çalıştırmanız gerekmektedir. masaüstünde ise "cd desktop" yazarak ilgili dizine gidebilirsiniz masaüstünde bir klasörde ise cd desktop/dosyaadi şeklinde erişim sağlayın klasör adında boşluk bırakmayın hata alabilirsiniz
  3. OBS Ayarı:
    • OBS'i açın ve Kaynaklar panelinden "+" butonuna basıp "Metin (GDI+)" ekleyin.
    • Özellikler penceresinde "Dosyadan oku" (Read from file) kutucuğunu işaretleyin.
    • "Gözat" (Browse) diyerek scriptin bulunduğu klasördeki obs_chat.txt dosyasını seçin.
    • Metin kaynağını oyunun üzerine yerleştirin ve boyutunu ayarlayın.
    • dosyaları tek bir klasörde veya masaüstünde tutun txt ve python dosyası
3. Tam Kod (chat.py)

Python:
import pytchat
import asyncio
import edge_tts
import re
import os
import random
import time
from playsound import playsound

# ================= AYARLAR =================
# Canlı yayın linkindeki v= kısmından sonraki ID'yi yazın
VIDEO_ID = "BURAYA_VIDEO_ID_YAZIN"

# Seslendirme karakteri (tr-TR-AhmetNeural veya tr-TR-EmelNeural)
TTS_VOICE = "tr-TR-AhmetNeural"

# OBS'in okuyacağı dosya adı
OBS_FILE = "obs_chat.txt"
# ===========================================

def temizle(msg):
    """Linkleri ve okunması zor karakterleri temizler."""
    msg = re.sub(r'http\S+', '', msg)
    msg = re.sub(r'[^\w\sçğıöüÇĞİÖÜ]', '', msg)
    return msg.strip()

def obs_dosya_yaz(kullanici, mesaj):
    """Mesajı OBS'in anlık görebileceği txt dosyasına yazar."""
    try:
        with open(OBS_FILE, "w", encoding="utf-8") as f:
            f.write(f"{kullanici}: {mesaj}")
            f.flush()
            os.fsync(f.fileno())
    except Exception as e:
        print(f"Dosya Yazma Hatası: {e}")

async def tts_oku(msg):
    """Gelen mesajı sese çevirir ve çalar."""
    if not msg: return
    temp_file = f"temp_{random.randint(1000,9999)}.mp3"
    try:
        communicate = edge_tts.Communicate(msg, TTS_VOICE)
        await communicate.save(temp_file)
        playsound(temp_file)
    except Exception as e:
        print(f"Seslendirme Hatası: {e}")
    finally:
        if os.path.exists(temp_file):
            try: os.remove(temp_file)
            except: pass

async def main():
    chat = pytchat.create(video_id=VIDEO_ID)
    print(f"--- SİSTEM HAZIR ---")
    print(f"Takip Edilen Yayın ID: {VIDEO_ID}\n")

    while chat.is_alive():
        try:
            for c in chat.get().sync_items():
                kullanici = c.author.name
                mesaj = c.message
                temiz_msg = temizle(mesaj)
                
                print(f"[{time.strftime('%H:%M:%S')}] {kullanici}: {temiz_msg}")

                # Dosyaya yaz ve sesli oku
                obs_dosya_yaz(kullanici, temiz_msg)
                await tts_oku(f"{kullanici} diyor ki {temiz_msg}")
            
            await asyncio.sleep(0.1)
        except Exception as e:
            print(f"Hata: {e}")
            await asyncio.sleep(5)

if __name__ == "__main__":
    try:
        asyncio.run(main())
    except KeyboardInterrupt:
        print("\nKapatıldı.")


seslendirmeyi erkek yerine kadın seslendirme isterseniz


# Seslendirme karakteri (tr-TR-AhmetNeural veya tr-TR-EmelNeural)
TTS_VOICE = "tr-TR-AhmetNeural" kodların içinden bu kısımı düzenleyebilirsiniz

Bilgisayarınızda python kurulu olması gerekmektedir. 3.11.9 sürümü ile test edilmiştir canlı ortamda
 
Kişiselleştirme

Tema editörü

Ayarlar Renkler

  • Mobil kullanıcılar bu fonksiyonları kullanamaz.

    Alternatif header

    Farklı bir görünüm için alternatif header yapısını kolayca seçebilirsiniz.

    Görünüm Modu Seçimi

    Tam ekran ve dar ekran modları arasında geçiş yapın.

    Izgara Görünümü

    Izgara modu ile içerikleri kolayca inceleyin ve düzenli bir görünüm elde edin.

    Resimli Izgara Modu

    Arka plan görselleriyle içeriğinizi düzenli ve görsel olarak zengin bir şekilde görüntüleyin.

    Yan Paneli Kapat

    Yan paneli gizleyerek daha geniş bir çalışma alanı oluşturun.

    Sabit Yan Panel

    Yan paneli sabitleyerek sürekli erişim sağlayın ve içeriğinizi kolayca yönetin.

    Box görünüm

    Temanızın yanlarına box tarzı bir çerçeve ekleyebilir veya mevcut çerçeveyi kaldırabilirsiniz. 1300px üstü çözünürler için geçerlidir.

    Köşe Yuvarlama Kontrolü

    Köşe yuvarlama efektini açıp kapatarak görünümü dilediğiniz gibi özelleştirin.

  • Renginizi seçin

    Tarzınızı yansıtan rengi belirleyin ve estetik uyumu sağlayın.

Geri