🚀 Automatisieren Sie Ihre YouTube-Interaktionen
Vom Video-Finder zum intelligenten Kommentar-Bot – lokal, datenschutzkonform, KI-gestützt
📊 Projektübersicht
Dieser YouTube-Bot automatisiert den kompletten Workflow: Video-Suche über Selenium/Firefox, Live-Audio-Transkription des Video-Tons via OpenAI Whisper (lokal), und Generierung kontextrelevanter Kommentare durch ein lokales LLM (Ollama). Alles läuft lokal – keine Cloud-Abhängigkeit, maximaler Datenschutz.
⚙️ Funktionsweise
Video-Suche
Selenium öffnet YouTube, sucht nach Keyword und klickt das erste Video-Ergebnis.
Audio-Aufnahme
soundcard erfasst System-Audio in Echtzeit, 16kHz Sample-Rate, mono.
Whisper-Transkription
5-Sekunden-Chunks werden via Whisper medium-Modell (deutsch) transkribiert.
KI-Kommentar
Ollama LLM generiert relevante Frage, Selenium posted sie als YouTube-Kommentar.
💻 Quellcode
Channel-Scraper: Video-Liste via BeautifulSoup
import requests
from bs4 import BeautifulSoup
import csv
BASE_URL = 'https://www.youtube.com'
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
def get_video_links(channel_url):
headers = {'User-Agent': USER_AGENT}
response = requests.get(channel_url + '/videos', headers=headers)
soup = BeautifulSoup(response.content, 'html.parser')
videos = []
for video in soup.find_all('a',
class_='yt-simple-endpoint focus-on-expand '
'style-scope ytd-rich-grid-slim-media'):
title = video.get('title')
link = BASE_URL + video.get('href')
videos.append({'title': title, 'url': link})
return videos
def write_to_csv(videos, filename="videos.csv"):
with open(filename, 'w', newline='', encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=['title','url'])
writer.writeheader()
for v in videos: writer.writerow(v)
WebDriver & Audio-Setup
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options
from webdriver_manager.firefox import GeckoDriverManager
import whisper, soundcard as sc
class YouTubeBot:
def __init__(self):
self.setup_driver()
self.ollama_url = 'http://localhost:11434/api/generate'
self.model = whisper.load_model("medium")
def setup_driver(self):
opts = Options()
service = Service(GeckoDriverManager().install())
self.driver = webdriver.Firefox(service=service, options=opts)
Live-Audio-Transkription mit Whisper
def audio_callback(self, indata, frames, time, status):
self.audio_queue.put(indata.copy())
def process_audio(self):
buffer, buffer_duration = [], 5
buffer_size = int(self.sample_rate * buffer_duration)
while self.is_recording:
data = self.audio_queue.get(timeout=1)
buffer.extend(data.flatten())
if len(buffer) >= buffer_size:
audio = np.array(buffer[:buffer_size], dtype=np.float32)
audio = (audio * 32767).astype(np.int16)
with tempfile.NamedTemporaryFile(suffix='.wav',
delete=False) as tf:
with wave.open(tf.name, 'wb') as wf:
wf.setnchannels(1); wf.setsampwidth(2)
wf.setframerate(16000)
wf.writeframes(audio.tobytes())
result = self.model.transcribe(tf.name, language="de")
if result["text"].strip():
self.transcript_buffer.append(result["text"])
Interesse an KI-gestützter Automatisierung?
Ob YouTube-Bot, Audio-Transkription oder individuelle Automatisierungslösung – ich entwickle maßgeschneiderte Tools für Ihre Anforderungen.