Überblick
Dieser n8n-Workflow ist darauf ausgelegt, die täglichen Top-Podcasts eines gewählten Genres zusammenzufassen. Er holt die Daten von der Taddy API, schneidet Audioausschnitte, transkribiert sie mit OpenAI und sendet sie als E-Mail zusammen mit einer Zusammenfassung an den Benutzer.
Node-Beschreibung
1. Schedule
- Name: Schedule
- Typ: n8n-nodes-base.scheduleTrigger
- Funktion: Dieser Node plant die Ausführung des Workflows zu einem bestimmten Zeitpunkt (hier täglich um 8 Uhr).
- Einstellungen:
{ "rule": { "interval": [ { "triggerAtHour": 8 } ] } }}
2. Genre
- Name: Genre
- Typ: n8n-nodes-base.set
- Funktion: Setzt das Genre für die abgerufenen Podcasts. Hier wird es auf „TECHNOLOGY“ gesetzt.
- Einstellungen:
{ "assignments": [{ "name": "genre", "value": "TECHNOLOGY" }] }
3. TaddyTopDaily
- Name: TaddyTopDaily
- Typ: n8n-nodes-base.httpRequest
- Funktion: Ruft die Top-Charts der Podcasts vom Taddy API basierend auf dem ausgewählten Genre ab.
- Einstellungen:
{ "url": "https://api.taddy.org/", "method": "POST", "bodyParameters": [{ "name": "query", "value": "=query { getTopChartsByGenres( limitPerPage:10, filterByCountry:UNITED_STATES_OF_AMERICA, taddyType:PODCASTEPISODE, genres:PODCASTSERIES_{{ $json.genre }}){ topChartsId podcastEpisodes{ uuid name audioUrl podcastSeries{ uuid name } } } }" }] }
4. Split Out
- Name: Split Out
- Typ: n8n-nodes-base.splitOut
- Funktion: Teilt die Antwort von TaddyTopDaily, um Zugriff auf die Podcast-Episoden zu ermöglichen.
- Einstellungen:
{ "fieldToSplitOut": "data.getTopChartsByGenres.podcastEpisodes" }
5. Download Podcast
- Name: Download Podcast
- Typ: n8n-nodes-base.httpRequest
- Funktion: Lädt die Audiodateien der Podcasts herunter.
- Einstellungen:
{ "url": "={{ $json.audioUrl }}" }
6. Request Audio Crop
- Name: Request Audio Crop
- Typ: n8n-nodes-base.httpRequest
- Funktion: Sendet eine Anfrage an die Aspose API, um das Audio zu schneiden.
- Einstellungen:
{ "url": "https://api.products.aspose.app/audio/cutter/api/cutter", "method": "POST", "bodyParameters": [{ "name": "1", "parameterType": "formBinaryData", "inputDataFieldName": "data" }, { "name": "convertOption", "value": "{"startTime":"00:08:00","endTime":"00:24:00","audioFormat":"mp3"}" }] }
7. Get Download Link
- Name: Get Download Link
- Typ: n8n-nodes-base.httpRequest
- Funktion: Holt den Download-Link für das beschnittene Audio.
- Einstellungen:
{ "url": "=https://api.products.aspose.app/audio/cutter/api/cutter/HandleStatus?fileRequestId={{ $('Request Audio Crop').item.json.Data.FileRequestId }}" }
8. Whisper Transcribe Audio
- Name: Whisper Transcribe Audio
- Typ: n8n-nodes-base.httpRequest
- Funktion: Transkribiert das Audiodaten verwenden die Whisper API von OpenAI.
- Einstellungen:
{ "url": "https://api.openai.com/v1/audio/transcriptions", "method": "POST", "bodyParameters": [{ "name": "model", "value": "whisper-1" }, { "name": "file", "parameterType": "formBinaryData", "inputDataFieldName": "data" }] }
9. Summarize Podcast
- Name: Summarize Podcast
- Typ: n8n-nodes-base.openAi
- Funktion: Zusammenfassung der transkribierten Podcasts mit Hilfe von OpenAI.
- Einstellungen:
{ "model": "gpt-4o-mini", "prompt": { "messages": [{ "content": "=Summarize the major points of the following podcast: {{ $json.text }}." }] }, "options": { "maxTokens": 500 } }
10. Final Data
- Name: Final Data
- Typ: n8n-nodes-base.set
- Funktion: Erstellt die endgültigen JSON-Daten für die E-Mail.
- Einstellungen:
{ "jsonOutput": "={\n\"podcast\": \"{{ $('TaddyTopDaily').item.json.data.getTopChartsByGenres.podcastEpisodes[$itemIndex].podcastSeries.name }}\",\n\"name\": \"{{ $('TaddyTopDaily').item.json.data.getTopChartsByGenres.podcastEpisodes[$itemIndex].name.replace(/\"/g,'\"') }}\",\n \"url\":\"{{ $('TaddyTopDaily').item.json.data.getTopChartsByGenres.podcastEpisodes[$itemIndex].audioUrl.replace(/\"/g,'') }}\",\n\"summary\":\"{{ $json.message.content.replace(/\\/g, '\\\\').replace(/\"/g, '\\"').replace(/\n/g, '
').replace(/\r/g, '\\r').replace(/\t/g, '\\t') }}\"\n \n}\n" }
11. Merge Results
- Name: Merge Results
- Typ: n8n-nodes-base.code
- Funktion: Kombiniert die Ergebnisse der einzelnen Podcast-Zusammenfassungen in einer strukturierten Form.
- Einstellungen:
{ "jsCode": "return [{fields:$input.all().map(x=>x.json)}]" }
12. HTML
- Name: HTML
- Typ: n8n-nodes-base.html
- Funktion: Generiert das HTML für die E-Mail-Vorlage zur Darstellung der Podcast-Zusammenfasungen.
- Einstellungen:
{ "html": "\n\n\n \n\n\n
\n
\n {{ ['Podcast', 'Episode', 'Summary'].map(propname=>' '+propname+'
').join('') }}\n
\n {{ $json.fields.map(ep=>{ return `
${ep.podcast} ${ep.name} ${ep.summary} `} ) }}\n
\n \n\n" }
13. Gmail
- Name: Gmail
- Typ: n8n-nodes-base.gmail
- Funktion: Sendet die E-Mail mit den zusammengestellten Podcast-Zusammenfassungen.
- Einstellungen:
{ "message": "={{ $json.html }}", "subject": "Podcast Review" }
Ergebnis
Der Workflow bietet eine tägliche Zusammenfassung der Top-Podcasts in einem ausgewählten Genre und sendet die Details zusammen mit den Zusammenfassungen per E-Mail. Durch die automatische Anbindung an den Taddy API und OpenAI wird dieser Prozess effizient und zeitsparend gestaltet.