Workflow zur Zusammenfassung von Podcasts

Dieser Workflow fasst die Inhalte der beliebtesten Podcasts des Tages in einem bestimmten Genre zusammen und sendet diese mit Zusammenfassungen per E-Mail.

Workflow zur Zusammenfassung von Podcasts

Die Website nutzt die Wordpress-Infrastruktur.

Server: Unser Server befindet sich in einem Unternehmen mit Sitz in Deutschland. Er hat eine hohe und schnelle Internetverbindung. Es gibt eine Generatorunterstützung für ununterbrochenen Strom.

Ü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=>'

    ').join('') }}\n

    \n {{ $json.fields.map(ep=>{ return `

    `} ) }}\n

    '+propname+'

    ${ep.podcast} ${ep.name} ${ep.summary}

    \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.

Facebook
Twitter
LinkedIn

Andere Projekte