Das Problem
Wir alle kennen diese Momente: Jemand teilt ein 45-minütiges YouTube-Video, und man möchte wissen, ob es die Zeit wert ist. Ich wollte eine schnelle Möglichkeit, Zusammenfassungen von YouTube-Videos zu erhalten, ohne sie manuell anzusehen oder URLs in verschiedene Tools zu kopieren.
Die Lösung? Ein persönlicher Telegram-Bot, der sofort jedes YouTube-Video zusammenfasst, das ich ihm sende.
Was ich gebaut habe
Ich habe einen n8n-Workflow erstellt, der:
- YouTube-Links über einen Telegram-Bot empfängt
- Video-Transkripte mit einer benutzerdefinierten Flask-API extrahiert
- Das Transkript zur Zusammenfassung an Azure OpenAI (GPT-4o-mini) sendet
- Eine prägnante Zusammenfassung mit 3-5 Punkten an Telegram zurücksendet
Wichtig: Ich habe eine Authentifizierung hinzugefügt, um sicherzustellen, dass nur ich den Bot verwenden kann – dies ist ein persönliches Lernprojekt, kein öffentlicher Dienst, und ich wollte unerwartete API-Kosten vermeiden.
Die Architektur
Komponenten
Telegram-Bot: Die Benutzeroberfläche. Hier sende ich YouTube-Links und erhalte Zusammenfassungen.
n8n-Workflow: Die Orchestrierungsschicht, die alle Dienste verbindet.
Benutzerdefinierte YouTube-Transkript-API: Eine Flask-API, die yt-dlp verwendet, um Video-Transkripte zu extrahieren und in Docker läuft.
Azure OpenAI: GPT-4o-mini-Modell zur Generierung intelligenter Zusammenfassungen.
Der Workflow-Ablauf
So funktioniert der Workflow:
- Webhook-Trigger: Empfängt POST-Anfragen von Telegram, wenn ich eine Nachricht sende
- Authentifizierungsprüfung: Validiert, dass die Nachricht von meiner Telegram-Chat-ID stammt
- Video-ID-Extraktion: JavaScript-Code extrahiert die YouTube-Video-ID aus verschiedenen URL-Formaten
- Transkript-Abruf: HTTP-Anfrage an meine lokale Transkript-API unter
http://youtube-transcript-api:5000/transcript - KI-Zusammenfassung: Azure OpenAI verarbeitet das Transkript und generiert 3-5 Kernpunkte
- Telegram-Antwort: Sendet die formatierte Zusammenfassung an mich zurück
- Webhook-Antwort: Bestätigt den Empfang an Telegram
Wichtige Implementierungsdetails
Authentifizierung
Der kritischste Teil war die Beschränkung des Zugriffs auf mich allein. Ich habe einen n8n-"If"-Knoten verwendet, der zwei Bedingungen prüft:
- Nachrichtentext existiert (es ist kein Bild oder Sticker)
- Chat-ID entspricht meiner persönlichen Telegram-ID
// Bedingungen in n8n$json.body.message.text (existiert)$json.body.message.chat.id (gleich YOUR_CHAT_ID)
Wenn eine der Bedingungen fehlschlägt, stoppt der Workflow – kein Transkript wird abgerufen, keine API-Aufrufe werden gemacht, keine Kosten entstehen.
Umgang mit YouTube-URLs
YouTube-URLs gibt es in vielen Formaten: youtube.com/watch?v=, youtu.be/, Embeds usw. Ich habe einen JavaScript-Code-Knoten geschrieben, um Video-IDs zuverlässig zu extrahieren:
const url = $input.first().json.body.message.text;const videoIdMatch = url.match(/(?:youtu\.be\/|youtube\.com\/watch\?v=|youtube\.com\/embed\/|youtube\.com\/v\/)([a-zA-Z0-9_-]{11})/);const videoId = videoIdMatch ? videoIdMatch[1] : null;
Die Transkript-API
Ich habe eine einfache Flask-API erstellt, die yt-dlp zur Transkriptextraktion umschließt. Sie läuft in Docker und verbindet sich mit n8n über ein gemeinsames Docker-Netzwerk:
networks:n8n_n8n-network:external: true
Dies ermöglicht es n8n, sie unter http://youtube-transcript-api:5000 aufzurufen, ohne Ports extern freizugeben.
Profi-Tipp: YouTube zeigt gelegentlich "Melden Sie sich an, um zu bestätigen, dass Sie kein Bot sind"-Fehler. Die Lösung? Exportieren Sie Ihre Browser-Cookies mit einer Browser-Erweiterung und mounten Sie sie in den Docker-Container.
Azure OpenAI-Integration
Ich habe den Azure OpenAI Chat Model-Knoten von n8n mit GPT-4o-mini verwendet. Der Prompt ist einfach:
System: Du bist ein hilfreicher Assistent, der YouTube-Videos zusammenfasst.Benutzer: Fasse dieses YouTube-Transkript in 3-5 Kernpunkten zusammen. Transkript:{{ $json.full_text }}
Das Modell antwortet mit einer sauberen, formatierten Zusammenfassung, die direkt an Telegram gesendet wird.
Was ich gelernt habe
n8n ist mächtig, erfordert aber Aufmerksamkeit für Details
- Das Referenzieren von Daten zwischen Knoten mit Ausdrücken wie
={{ $('Webhook Trigger').item.json.body.message.chat.id }}erfordert Übung - Der visuelle Workflow macht das Debugging viel einfacher als reine Code-Lösungen
Docker-Netzwerke sind wichtig
Die Kommunikation zwischen der Transkript-API und n8n erforderte das Verständnis von Docker-Netzwerken. Sobald ich sie zum gleichen Netzwerk hinzugefügt hatte, funktionierte alles.
Authentifizierung ist essenziell
Selbst für persönliche Projekte verhindert eine einfache Chat-ID-Prüfung versehentliche Nutzung und unkontrollierte Kosten.
KI-Modelle sind überraschend gut bei Zusammenfassungen
GPT-4o-mini produziert durchweg hochwertige Zusammenfassungen, die die Essenz von Videos erfassen, ohne Inhalte zu halluzinieren.
Laufende Kosten
Dies ist für meine Nutzung praktisch kostenlos:
- n8n: Selbst gehostet, keine Kosten
- Azure OpenAI: Pay-per-Token
- Telegram: Kostenlos
- Docker: Lokale Ressourcen
Mit der Authentifizierung habe ich die volle Kontrolle darüber, wann die KI aufgerufen wird.
Zukünftige Verbesserungen
Einige Ideen, die ich in Betracht ziehe:
- Unterstützung für Videos ohne Transkripte mit Whisper hinzufügen
- Zusammenfassungen in einer Datenbank für zukünftige Referenz speichern
- Befehle wie
/summaryvs./detailedfür verschiedene Zusammenfassungslängen hinzufügen - Unterstützung für Playlist-Zusammenfassungen
Probieren Sie es selbst aus
Der vollständige Code ist auf GitHub verfügbar. Sie benötigen:
- n8n-Instanz (Docker empfohlen)
- Telegram-Bot-Token
- Azure OpenAI-API-Schlüssel
- Docker für die Transkript-API
Importieren Sie die Workflow-JSON, richten Sie Ihre Anmeldedaten ein, aktualisieren Sie die Chat-ID auf Ihre eigene, und schon kann es losgehen!
Möchten Sie eine kurze Übersicht über dieses Projekt? Schauen Sie es sich in meinem Portfolio an →
Fazit
Dieses Projekt war eine hervorragende Möglichkeit, tiefer in die Fähigkeiten von n8n einzutauchen und mehr über die Integration verschiedener APIs und KI-Modelle zu lernen. Der echte Gewinn war, etwas wirklich Nützliches für meinen täglichen Workflow zu bauen – ich benutze diesen Bot jetzt mehrmals pro Woche.
Wenn Sie n8n lernen oder KI-Integrationen erkunden, empfehle ich Ihnen dringend, etwas Ähnliches zu bauen. Die praktische Erfahrung beim Verbinden echter Dienste ist unbezahlbar.
Dies ist ein Demo-Projekt, das zu Lernzwecken erstellt wurde. Die Authentifizierung stellt sicher, dass es ein persönliches Tool und kein öffentlicher Dienst bleibt.



