Hi everyone,
I’m trying to automate podcast episode uploads using n8n, Podlove Podcast Publisher on WordPress, and Cloudflare R2 public URLs for hosting the audio files.
Here’s what I have so far:
-
The R2 public URLs for audio files load and play fine when accessed directly in a browser.
-
In n8n, I’m using an HTTP Request node to POST to https://podcasts.seo-caboverde.com/wp-json/podlove/v2/episodes, which successfully creates the episode post with the audio URL included in the payload.
-
The episode appears in WordPress (as a draft), but it doesn’t integrate properly with Podlove—the media file isn’t detected, verified, or playable in the Podlove player, and no file details show up.
What I’ve tried:
-
Sending a JSON payload with title, summary, content (including a manual
-
Configured Podlove settings: Set Media File Base URL to empty and the episode asset URL template to %episode_slug%.%format_extension%.
-
After creation, chained additional API calls in n8n: GET /podlove/v2/episodes/{id}/media to list assets, then PUT to enable the asset, and POST/PUT to verify it. Verification sometimes passes but the media still doesn’t link properly in Podlove.
-
Manually publishing the draft post in WordPress, but Podlove metadata doesn’t fully connect to the external R2 URL.
The post gets created, but Podlove episode metadata doesn’t seem to recognize the public R2 audio URL reliably.
Question: Is there a recommended way to make Podlove recognize externally hosted audio files (like R2 public URLs) when creating episodes via the API? For example, should the slug always be the full external URL without extension, or do I need to register the media file via a separate endpoint like /media or /assets? Any tips on handling drafts vs. published posts, or ensuring verification works with external hosts?
Any advice, example API payloads, or n8n workflow snippets would be super helpful.
Thanks in advance!