Episode Assets: Newsletter, Quote Cards & Post Copy
What it does: Turns an episode you have already planned into a newsletter, a set of quote cards and the post copy for three platforms — without reading the episode again and without spending anything you were not told about first.
Antradus AI Studio v2.7.0 · Last updated 2026-08-26
Cannot find this tab? It is part of Studio. On a Publisher licence the Bulk Publishing screen shows it locked rather than hiding it, so you can see what it does before deciding — see Installation & License Activation.
The one thing that makes these different
Every tool in this category makes quote images. All of them work the same way: an AI picks a line it liked out of an AI transcript, and an AI image model paints it onto a picture. Nothing in that chain ever checks whether the person actually said those words in that order.
That failure is not theoretical and it is not small. A quote card is a screenshot with somebody’s name under it, and it outlives the tool that made it.
So here:
- The quotation is re-checked against the recording in the instant before the card is drawn — word for word, through the same checker the articles use, not a private copy of it. Change one character and no card is produced at all, and the run tells you which one and why.
- The letters are drawn from a font file. No image model touches a card. This plugin has twice failed at putting words on an AI-generated picture — dropped words, mangled letters — and that is a failure you cannot ship.
- Every card carries the moment the words were said, so a reader can go and hear it.
- Where the recording cannot say who spoke, the card says so rather than guessing a name.
Where it lives
Antradus AI → Bulk Publishing → 📦 Episode Assets.
It reads whatever episode is on the Podcast to Articles tab — freshly planned, or opened from Saved Plans. If neither, the tab says so and points you at both.
What it costs
Almost nothing, and it says so before you commit.
| Requests | |
|---|---|
| Quote cards | 0 |
| Newsletter | 0 |
| Context lines under a quotation | 1 per card — optional, off by default |
| Post copy for all three platforms | 1 |
The cards and the newsletter are assembled by the plugin from data it already has. There is no transcript pass, no second read, and nothing re-billed.
1. The episode picture, your colours and your type
The episode picture
Two of the four card styles are drawn on a picture, and the colour button reads its palette out of one. Everything else on the screen works without it. So the picture is the first thing in step 1, with the picture itself on screen — where it came from, and how big it is.
It comes from the episode:
- YouTube’s 16:9 still whenever the run has a YouTube address — including a Both-mode run whose words came from Spotify. It is a picture made for this episode, usually with the guest’s face on it.
- Spotify’s cover art otherwise. On a show that commissions artwork per episode that is also the guest; on a show that does not, it is the same square cover every week.
It is downloaded once, kept in your Media Library, and reused by every card, the preview and the colour picker.
When there is no picture, the panel says which of these it is rather than leaving you to guess:
| What it says | What happened |
|---|---|
| This episode has no picture here yet | Nothing has been fetched. Press 🖼️ Fetch it from the episode. |
| The episode picture could not be downloaded | YouTube or Spotify refused this server, or the episode genuinely has no artwork. Try again, or upload your own. |
| This plan carries no episode address | The plan was saved without one. Upload a picture and the cards can still use it. |
A download that fails is not retried by every card in the run — ten slides against four candidate addresses would be a request your host kills long before it answers. It pauses for ten minutes, and the Fetch it from the episode button clears that pause immediately, because an explicit "try again" is exactly the request the pause exists to stop happening by accident.
Or use your own. If your show has artwork neither service carries, upload it here. It is refused if it is not a real JPEG, PNG, GIF or WebP, or if it is under 640px wide — a card is drawn at 1080px, so anything smaller comes out soft, and you find that out at upload rather than after ten cards. Your picture is then the episode’s picture everywhere on this screen. Use the episode’s own picture again puts it back — and leaves your upload in the Media Library, because a file in your library is yours.
While there is no picture, Photo and Split are shown in the style list but cannot be chosen, with the reason written beside them. They are not hidden: a style that vanishes teaches nothing.
Your colours and type
Seven colours — background, quotation, accent, attribution, context lines, and the button’s two — plus how hard the photo styles darken a picture.
Saved per show, keyed to the channel address you already gave the podcast tab, so the next episode of that show opens with them.
- Four presets fill everything in one click: Ink, Paper, Marker, Mono.
- Take colours from the episode picture reads five out of the thumbnail. They are offered as swatches for you to assign — the plugin does not decide which of them is your background, because that is a judgement about your show and not about the picture. Done on your own server: no external service, no API call, no cost.
- Contrast is checked against the accessibility threshold and you are told, not stopped. A show whose identity is grey on grey is allowed to have it.
- Two typefaces ship with the plugin (a serif for quotations, a grotesque for everything else), and you can upload your own. An uploaded font is checked at upload for the quotation marks, apostrophe, em dash and ellipsis a quote card needs — so you find out then, rather than after a card has gone out with empty boxes where the quotation marks should be.
2. The quote cards
Four styles, each with a word ceiling:
| Style | Ceiling | Notes |
|---|---|---|
| Flat | ~40 words | Solid background. The default, and the one with the most room. |
| Photo | ~25 words | The episode picture behind the words, darkened so they stay readable. Needs the picture from step 1. |
| Split | ~30 words | The picture above, the words below. Needs the picture from step 1. |
| Marker | 15 words | Highlighted on paper. Short lines only. |
The ceilings are enforced, not advised — and this is the important part:
When a quotation does not fit a style, the style gives way. The words never do.
A long quotation on the marker style is drawn flat instead, and the run says so. It is not shortened, not re-punctuated, and not shrunk into type nobody can read. If it will not fit any style at a readable size, no card is made and you are told why.
Each quotation shows its word count and which styles it is eligible for before you choose, rather than after a render quietly falls back.
A word about the marker style
It looks like a highlighted book page, and that is a claim about where the words came from. They were spoken, not printed. The plugin says this on screen where you choose it:
This style reads as a printed page. Best for the host’s own lines — a guest’s spoken sentence dressed as a book page is a claim about where it came from.
It is not the default, and it is not hidden either. You decide.
Shapes and limits
- 1080×1350 (4:5) by default, with square and story shapes available. All text sits at least 8% in from every edge, because Instagram’s profile grid crops a 4:5 slide and takes a strip off each side.
- Ten slides maximum. Instagram’s API allows ten where the app allows twenty, and no tool can raise it. The cap is applied here, with the reason, rather than at the last step.
- JPEG only, because that is all Instagram takes. Cards are deliberately not converted to WebP the way other generated images are.
- Right-to-left scripts are refused. The drawing library does no bidirectional reordering and no Arabic shaping, so it would produce letters in the wrong order in their wrong forms — legible-looking nonsense to anyone who cannot read it, and an insult to anyone who can. This is a known limit, stated rather than hidden.
The preview is the real card
It is rendered by the same code that writes the file, at full size, and scaled down in your browser. A JavaScript preview would disagree with the renderer about kerning, about where a line wraps, and about the highlight geometry — which means approving one picture and publishing another.
Cards are drawn one per request. Ten cards inside one page load is how a shared host produces a timeout halfway through a set.
Context lines
Optional, off by default, and the only part of this feature that costs a request.
Two short lines under the attribution saying what was being discussed. The AI is shown ninety seconds before the quotation and forty-five after, and nothing else — never the whole transcript — so it cannot describe something from elsewhere in the episode.
What comes back is then checked in code, and every one of these rejects:
- any quotation mark of any kind
- a figure that is not in that passage word for word
- a person who is not on this episode and not in that passage
- a link
- six or more consecutive words lifted off the recording without being marked as a quotation
- anything over the character budget for the box
A line that fails is thrown away and the card is drawn quote-only, and the run tells you how many. Nothing is ever patched up to pass a check — a line that has been repaired to survive a check is a line nobody checked.
3. The newsletter
Assembled by the plugin, not written by a model. The model may write connective prose — a subject line, an intro — and nothing else. Every quotation, attribution, timestamp and link is placed by the plugin from data that has already been checked.
The issue carries the episode, its verified quotations with the timestamp linked to the moment, your articles, the sponsor block with its disclosure line and rel="sponsored" links, and a subscribe row.
It is real email HTML: tables rather than modern layout, inline styles, 600px, absolute addresses, alt on every image, and a plain-text alternate generated from the HTML itself so the two cannot disagree about what the issue says.
Two shapes, because providers genuinely differ. Some want a whole HTML page; others want body-level HTML and will mangle a whole page. The right one is chosen from the provider you pick. Sending the wrong one produces output that looks perfect in the provider’s own preview and breaks in real inboxes.
What always works
Copy HTML · Download .html · Send a test to me. No account, no connector, no setup. This works with every provider that exists, including the ones not listed below, and it is the fallback whenever a connector fails.
Connectors
All three create a draft. There is no send button in this plugin and no code path that could reach one — you press send in your own provider, having read the issue there.
| Kit | Creates a draft broadcast. Needs a v4 API key; a v3 key will not work and does not say so clearly on its own. A draft can optionally be published as a public web page with its own address, which gives each issue something your articles can link to. |
| Mailchimp | Creates a draft campaign. The datacenter is read out of your key rather than asked for. Mailchimp requires a from-name and a reply-to address, which an episode cannot supply — both are settings on this tab. |
| beehiiv | ⚠ beehiiv restricts creating posts through its API to Enterprise plans. On any other plan this will be refused however correct your key is. The plugin detects that specifically, says so in those words, and points you at Copy HTML. |
If a provider rejects your key, the key is cleared and you are asked to enter a new one. It is never retried — a credential does not become valid on the second attempt, and retrying is how an account gets rate-limited.
Keys are stored the same way your AI provider keys are, are never shown back to you, and are never sent to the browser.
4. The post copy
One request writes Instagram, LinkedIn and X. The AI writes the words around the quotation and never the quotation itself. Hashtags are built from the people and show the episode actually names, rather than invented.
The Instagram version is used as caption.txt in the ZIP.
5. Downloading, and Instagram
Download as a ZIP is the path that always works and needs nothing set up: slides named 01-hook.jpg, 02-quote.jpg and so on so the order survives being dropped into a scheduling tool, plus the caption. Every slide is also in your Media Library, with the quotation as its alt text.
Publishing straight to Instagram is optional and off until you set it up.
Instagram has no drafts. There is no way to put a carousel somewhere you can look at it first. Publishing is immediate and public.
So it asks you to confirm, naming the account and counting the slides, every single time.
Three things bite people, and all three are checked before anything is created on Instagram’s side:
- Instagram downloads every slide from your server. A local site, a staging site, or one behind a password cannot publish this way. The check fetches your own images without logging in and fails loudly if it cannot. It proves the file is there, public and a JPEG — it cannot prove the wider internet can route to your host, and it says so.
- Ten slides, not the twenty the app allows.
- JPEG only.
The daily posting limit is read from your own account rather than hard-coded, because published figures disagree with each other. Access tokens expire in about sixty days; the plugin refreshes yours in the background and warns you a week ahead on every admin screen.
To publish for a client’s account you do not own, add it as an Instagram Tester on a Meta app in development mode. That works in days. App Review — needed only for accounts you neither own nor manage — takes two to four weeks and is usually rejected once.
Hashtags in the first comment are not part of the publish call and are out of scope for now.
What this did not change
Nothing in Podcast to Articles behaves differently. Quotation verification, the trim rules, punctuation, attribution, timestamp mapping, the measured clock offset in Both mode, how quotes are dealt to articles, and every word of the articles themselves are exactly what they were. Episode Assets reads what that pipeline produced; it does not sit inside it.
See also
- Podcast to Articles — planning the episode in the first place
- Saved Plans — opening an episode again months later
- Reporting — what an episode actually cost