# Agent guide (/docs/api/agents) Use the current schemas as the source of truth: * HTTP: `https://api.jellypod.com/v1` with `Authorization: Bearer YOUR_API_KEY` * OpenAPI: `https://api.jellypod.com/openapi.json` * MCP: `https://mcp.jellypod.com/mcp` with OAuth or a bearer API key Create API keys in [Developers](https://studio.jellypod.com/developers/api-keys). Keep each returned content ID with its kind. ## Choose an output [#choose-an-output] | Goal | Kind | HTTP | MCP | | ------------------------------------- | --------- | ------------------------- | -------------------------------- | | Podcast episode from a prompt | Episode | `POST /episodes/generate` | `generate_episode` with `prompt` | | Podcast episode from supplied text | Episode | `POST /episodes/import` | `generate_episode` with `script` | | Narrated video with generated visuals | Video | `POST /videos` | `generate_video` | | Short narrated video | Short | `POST /shorts` | `generate_short` | | Narration over documents or images | Voiceover | `POST /voiceovers` | Studio or HTTP only | ## Find IDs [#find-ids] For MCP, use `list_content` for podcasts, episodes, videos, shorts, and existing Voiceovers. Use `list_characters` for saved characters, `list_voices` when creating a character, and `list_video_styles` before creating a video or short. `get_content` needs only a content ID because Jellypod resolves its kind. Voice IDs create characters. Character IDs select narrators for prompt-based generation. A finished script resolves bracketed speaker labels to saved Characters. For HTTP, use `GET /videos/options`, `GET /shorts/options`, or `GET /voiceovers/options`. Use `GET /hosts` for character IDs. ## Generate from a prompt or script [#generate-from-a-prompt-or-script] `generate_episode`, `generate_video`, and `generate_short` accept either a `prompt` or a finished `script`. * Episode prompt mode always writes a new script from the prompt and sources, even when that material is a finished script. To preserve narration, use `POST /episodes/import` over HTTP or `generate_episode` with `script` over MCP. * Prompt mode accepts optional sources and the character fields declared by the tool. * Script mode uses a `[Character Name]` line before each turn. * Match each label to a saved Character, or supply `speaker_characters` as `[{"label": "Narrator", "character_id": "..."}]`. Explicit assignments override name matching and must use active Characters in the current library. * Text imports remove clearly unspoken titles and production directions while preserving speech and delivery tags. Uncertain lines stay; a failed judgement keeps the text as written, so production notes may be narrated. * Script mode does not accept the prompt cast fields or sources. * Video and short generation always require a `style_id` from `list_video_styles`. Episodes start as drafts. Set `auto_publish: true` only when the creator explicitly asks to publish after a successful render. Use `set_episode_publication` to publish, schedule, reschedule, or unpublish an existing episode. ## Supply Sources [#supply-sources] MCP prompt generation accepts accessible webpage or YouTube URLs and plain text already held by the client. Jellypod saves this material as ordinary sources, but MCP does not expose source IDs or a separate source lifecycle. MCP does not accept file handles, local paths, bytes, base64, private URLs, or saved source IDs. If the client can read a file, it can pass extracted plain text. Use Studio or HTTP when the original file matters. HTTP creation remains broader and accepts saved source IDs. Voiceovers remain a Studio or HTTP workflow. For the HTTP upload flow and supported files, see [Videos, shorts, and Voiceovers](/docs/api/products#upload-a-file-for-voiceover). ## Prevent duplicate actions [#prevent-duplicate-actions] Generation and metadata write tools accept an optional `idempotency_key`. Without one, every call starts a new action. For HTTP, send the `Idempotency-Key` header. A key protects a request for 24 hours. Save the key before the request. Reuse it only with identical input after a lost or uncertain response. Once work starts, use a new key for a different request or a deliberate new generation. A proven rejection before work starts releases its claim, so fix the input or account issue and retry with the same key. If claim cleanup fails, the error instead asks for a new key. Older stored rejections also require a new key until their 24-hour expiry. ## Follow progress [#follow-progress] HTTP generation endpoints return `202`, a content item in `data`, and a `Location` header. Every MCP generation tool returns `id`, `kind`, `studio_url`, and `progress`. `generate_episode` also returns `publication_state`, always `draft` at creation. Video and short results also return the settings Jellypod applied. For MCP, call `get_content` with the `id`. When `progress.poll_after_seconds` is greater than zero, wait that long and poll again. An output may still be preparing after generation completes. A polling timeout does not mean generation failed. Reads and output checks do not start paid work. A failed generation stays failed in MCP. After disclosing the new Credit-bearing action, create new content with a new idempotency key. The HTTP API retains its broader retry operations. ## Read results [#read-results] Check MCP `isError` before reading a result. Tools return structured content and concise text. Errors include `error.recovery.action`; input errors also identify affected fields. Resolve `check_account` in Studio, correct fields for `correct_input`, and use `list_characters` for `choose_characters`. Follow `recovery.idempotency_key` when present. After a proven pre-execution rejection, `reuse` means the claim was released and the corrected request can reuse its key; `new` means use another key. For an accepted or uncertain operation, reuse the key only with identical input. For `check_result`, check the saved content before repeating a write. If publication returns `render_not_ready` or `generation_not_ready`, poll `get_content` after `recovery.poll_after_seconds`. Publish only once the content is ready, using a new key if the refusal specifies `idempotency_key: "new"`. A missing render instead requires completing production in Studio. See [MCP setup](/docs/help/mcp) and the [MCP tool reference](/docs/api/mcp-tools). # API Reference (/docs/api) The Jellypod API creates and manages hosts, sources, podcast episodes, videos, shorts, and voiceovers. A host in the API is a saved Character in Studio. Start with the [Video, short, and Voiceover guide](/docs/api/products) for creation, file uploads, progress, retries, and downloads. ## Connect [#connect] API requests require the Creator plan or higher. Create an organization API key in [Developers](https://studio.jellypod.com/developers/api-keys). The API Keys tab is visible to admins and to members with permission to manage keys. Send requests to `https://api.jellypod.com/v1` with this header: ``` Authorization: Bearer YOUR_API_KEY ``` ## Credits and usage [#credits-and-usage] The API uses the same product credit rates and plan limits as Studio. Generation costs depend on the product and its settings. Check `GET /account` for your plan and available balance. Podcast rendering and publishing are free; status checks and downloads do not start new generation. See [Understanding Credits](/docs/help/getting-started/understanding-credits) for details. ## Podcast generation and retries [#podcast-generation-and-retries] For `POST /episodes/generate`, send an optional `Idempotency-Key` header. Reuse the key only with the same request. For 24 hours, Jellypod then returns the original episode and workflow IDs without starting another generation. Reusing the key with different input returns `409`. Without a key, every request starts a generation. If acceptance is uncertain, check the episode ID in the error before creating another episode. Video, short, and voiceover [create and retry endpoints](/docs/api/products) accept the same optional key. ## Rendering [#rendering] `POST /episodes/generate` and `POST /episodes/import` render audio and video as soon as generation completes, so a finished episode is ready to publish or download. Send `"render": false` to skip that step and leave a draft instead. The draft costs the same generation credits, and you can review, edit, and render it in the studio before publishing. `POST /episodes/{episode_id}/publish` needs a completed render. While generation or rendering is still running, it returns a 422 with `type: "unprocessable_entity"` and `recovery.poll_after_seconds`; poll `GET /episodes/{episode_id}` and retry publish once it completes. A draft that was never rendered also returns a plain `unprocessable_entity`, without `recovery.poll_after_seconds`; render it in Studio first. ## Import script text [#import-script-text] `POST /episodes/import` accepts script or transcript text. It maps bracketed speaker labels to hosts that already exist in your organization, or assigns Host IDs to labels explicitly with `speaker_characters`, and queues a new episode. A label matching no host, with no explicit assignment, is refused, rather than creating a Host for it: a `422` with `reason: "unresolved_speakers"` and a `speakers` array naming the unmatched labels. Create any host you plan to name first, with `POST /hosts` or in Studio, then use its exact name as the label or its ID in `speaker_characters`. ```json { "podcast_id": "podcast_id", "script": "[Host One]\nWelcome to the show. Today we're talking about how small daily habits can make a big difference.\n\n[Host Two]\nI love that topic. Let's start with the easiest habit someone can try this week." } ``` Text import removes clearly unspoken titles, production rules, and visual or duration directions while preserving narration and inline delivery tags. Uncertain lines stay; if classification fails, text is imported as written and production notes may be narrated. Structured scripts keep the supplied text. Imported text can contain up to 75,000 characters. Content rejected by the speech provider also returns `422` and creates nothing. The episode stays editable without rendering by default. Set `render: true` when you want a downloadable output. Poll `GET /episodes/{episode_id}` for progress and download URLs. An unknown `podcast_id`, a speaker label matching no existing host, or text with no usable segments also return an error and create nothing. Sent with an `Idempotency-Key`, these input errors are rejected immediately, so fix the input and retry with the same key when `recovery.idempotency_key` is `reuse`. If cleanup failed or the rejection was stored under the older policy, recovery instead specifies `new`. ## Generate from a prompt [#generate-from-a-prompt] Send `prompt` to `POST /episodes/generate`. You can include a duration in the prompt. Without one, the target is about 7 minutes. You can also set the duration directly in `options` instead of relying on the prompt: ```json { "podcast_id": "podcast_id", "prompt": "An episode about the history of beekeeping.", "options": { "episode_length_minutes": 15 } } ``` `episode_length_minutes` accepts an integer from 1 to 75. It takes precedence over `episode_length`, which accepts `extra_short`, `short`, `medium`, `long`, or `extra_long`. Episode prompt mode always writes a new script from the prompt and attached sources, even when they contain finished narration. To preserve raw script text, use `POST /episodes/import` with optional `speaker_characters` assignments. ## Generate from a script [#generate-from-a-script] Send a structured `script` to `POST /episodes/generate` to use your own chapters and segments. Use `GET /hosts` to fetch the `host_id` values available to your organization. Every segment must reference one of those hosts. Imported script text is capped at 75,000 total characters across all segments. ```json { "podcast_id": "podcast_id", "script": { "chapters": [ { "title": "Introduction", "segments": [ { "host_id": "host_id_1", "text": "Welcome to the show. Today we're talking about how small daily habits can make a big difference." }, { "host_id": "host_id_2", "text": "I love that topic. Let's start with the easiest habit someone can try this week." } ] } ] } } ``` Rules for script generation: * Send either `prompt` or `script`, not both. * `source_ids` are only supported for prompt-based generation. * Script mode does not use `web_search`, `episode_length`, or `episode_length_minutes`. * Scripts can include up to 50 chapters, 200 segments per chapter, and 600 segments total. Each segment can contain up to 5,000 characters. * Long scripts require enough available credits before generation starts. The final charge is based on the narration audio generated, whether or not the episode is rendered. * Script generation creates a new episode. # MCP tool reference (/docs/api/mcp-tools) Connect to `https://mcp.jellypod.com/mcp`. Call `tools/list` for the current input and output schemas. ## Tools [#tools] | Tool | Purpose | | ------------------------- | ----------------------------------------------------------------------- | | `list_content` | Browse podcasts, episodes, videos, shorts, and voiceovers together. | | `get_content` | Get one content item, its progress, outputs, and Studio link by ID. | | `list_characters` | Find a saved character and its voice details. | | `list_voices` | Find a built-in voice. | | `list_video_styles` | Find a built-in video style and preview it. | | `generate_episode` | Create a podcast episode from a prompt or script. | | `generate_video` | Create a video from a prompt, research sources, or finished script. | | `generate_short` | Create a short from a prompt, research sources, or finished script. | | `save_podcast` | Create or update a podcast. | | `save_character` | Create or update a character. | | `update_content` | Update descriptive metadata for an episode, video, short, or voiceover. | | `set_episode_publication` | Publish, schedule, reschedule, or unpublish an episode. | | `submit_feedback` | Report an MCP error or confusing workflow. | ## Read content [#read-content] Content kinds are `podcast`, `episode`, `video`, `short`, and `voiceover`. `list_content` returns all content kinds by default, newest first. It can filter by kind, title, generation state, episode publication state, or parent podcast. Pass `nextCursor` as `cursor` for the next page. `list_characters` returns each character's profile and voice details. `list_voices` returns built-in voice IDs. `list_video_styles` returns built-in style IDs, descriptions, and preview URLs. `get_content` accepts an ID and resolves the content kind. It returns progress, the Studio URL, and the state of share, playback, stream, download, transcript, and caption outputs. `outputs.audio_stream` and `outputs.video_stream` are direct URLs for playback, separate from the `audio_download` and `video_download` links. When `progress.poll_after_seconds` is greater than zero, wait that long and poll again. Reading content never starts generation or rendering. A client that supports MCP Apps renders `get_content` results in a native audio or video player, using `audio_stream` for episodes and `video_stream` for videos, shorts, and voiceovers by default, with a control to switch when both are available. A client without MCP Apps support should offer the available stream as a Listen or Watch link instead. For an episode, a render started after generation completes can still delay its output. `get_content` keeps `progress.status` at `generating` until that render attaches or fails, then reports `failed` with an explanation if it fails; an older published output stays available in `outputs` throughout. ## Create and update [#create-and-update] `save_podcast` and `save_character` create without `id` and update with `id`. Creating a podcast requires `title` and `character_ids`, since a podcast cannot exist without a cast; find character IDs with `list_characters`. Character Voice changes and archiving require Studio. `update_content` resolves an episode, video, short, or voiceover from its ID and changes descriptive metadata only. Production edits such as scripts, narration, cast, sources, visuals, timeline, and presentation require Studio. `generate_episode`, `generate_video`, and `generate_short` accept either `prompt` or `script`. Script speaker labels match saved Characters, or use `speaker_characters: [{"label": "Narrator", "character_id": "..."}]` to assign active Characters from `list_characters`. Create missing Characters with `save_character` first. Script mode does not accept prompt cast fields or sources. Video and short generation require `style_id` in both modes. For Episodes, `prompt` always writes a new script from the supplied material. Use `script` to preserve finished narration, with `speaker_characters` when its labels differ from saved Character names. Episode generation remains a draft unless `auto_publish` is true. Set it only when the creator explicitly asks to publish after a successful render. Every generation tool returns `id`, `kind`, `studio_url`, and `progress`. `generate_episode` also returns `publication_state`, always `draft` at creation. Video and short results also return the settings Jellypod applied. `generate_episode`'s `studio_url` is the draft editing workspace. `get_content` returns the stable `/episodes/` address for the same episode. Episodes, videos, and shorts accept public webpage or YouTube URLs and plain text held by the client. MCP does not accept file uploads or saved source IDs. When a creator provides a file, the client can extract its text and pass that text inline. File-backed sources and voiceover creation remain in Studio. Generation and metadata write tools accept an optional `idempotency_key`. Without one, each call starts a new operation. Save a key before the call when a resend must not run twice, reuse it with the same input after a lost response, and use a new key for a different request once work has started. A rejection before work starts can release its claim; follow `recovery.idempotency_key` to reuse that key with corrected input. ## Publish [#publish] `set_episode_publication` accepts `mode: "publish"`, `"schedule"`, or `"unpublish"`. Scheduling also requires `scheduled_time`; scheduling an already scheduled episode reschedules it. Publishing an episode does not make a private podcast public. A publish or schedule receipt also carries `episode_url` and `rss_feed_url`, the public episode page and the parent podcast's RSS feed. Both are `null` while the podcast is private. Neither field is present after `unpublish`. `set_episode_publication` refuses while the episode's newest render is still producing or attaching its output, and names `get_content` as the way to wait for it. A newest render that fails does not block publishing an already attached, working output. ## Results and errors [#results-and-errors] Every tool returns structured or text output. Jellypod domain and cross-field errors contain `code`, `message`, `retry_with_same_input`, `recovery` (next action and any key policy), and, when useful, `field`, `studio_url`, or `speakers`. A script naming a speaker with no matching character returns `code: "unresolved_speakers"` and the unmatched labels in `speakers`. Invalid tool arguments return the standard MCP `InvalidParams` error. See the [agent guide](/docs/api/agents) for complete request sequences. # Videos, shorts, and Voiceovers (/docs/api/products) Use `https://api.jellypod.com/v1` as the base URL. Authenticate each API request with `Authorization: Bearer YOUR_API_KEY`. Create a key in [Developers](https://studio.jellypod.com/developers/api-keys). Videos, shorts, and voiceovers have separate collections, matching Studio. A short appears under `/shorts`; a voiceover appears under `/voiceovers`. ## Discover settings before creating [#discover-settings-before-creating] Call `GET /videos/options`, `GET /shorts/options`, or `GET /voiceovers/options` for each product's supported settings and default values. These are fixed product fallbacks, not anything saved for your organization; voiceover has no style selection. Use these shared endpoints alongside product options: | Endpoint | Use | | -------------- | ---------------------------------------------------------- | | `GET /account` | Check your organization, plan, and `data.credits.balance`. | | `GET /hosts` | Find a narrator owned by your organization. | | `GET /sources` | Find existing research or uploaded visual sources. | Prompt and voiceover creation require a narrator: call `GET /hosts` to find one, then send its ID in `host_id`, or up to four in `host_ids` for a video or Voiceover. Finished scripts resolve their bracketed speaker labels instead. ## Create and retrieve media [#create-and-retrieve-media] | Action | Video | Short | Voiceover | | -------- | --------------------------- | --------------------------- | ------------------------------- | | Create | `POST /videos` | `POST /shorts` | `POST /voiceovers` | | List | `GET /videos` | `GET /shorts` | `GET /voiceovers` | | Retrieve | `GET /videos/{id}` | `GET /shorts/{id}` | `GET /voiceovers/{id}` | | Progress | `GET /videos/{id}/status` | `GET /shorts/{id}/status` | `GET /voiceovers/{id}/status` | | Retry | `POST /videos/{id}/retry` | `POST /shorts/{id}/retry` | `POST /voiceovers/{id}/retry` | | Download | `GET /videos/{id}/download` | `GET /shorts/{id}/download` | `GET /voiceovers/{id}/download` | Generation uses the same [product credit rates as Studio](/docs/help/getting-started/understanding-credits). Status checks and downloads do not generate new content. Open the returned `studio_url` to edit narration or individual scenes. ### Idempotency keys [#idempotency-keys] Create and retry requests accept an optional `Idempotency-Key` header: 1 to 255 printable ASCII characters, without spaces. Without it, every request starts a new generation, including an automatic retry of a request whose response was lost. With it, resending the same request within 24 hours returns the original resource instead of generating again. Reusing a key with different inputs returns `409`. A deliberate retry of a failed generation uses the retry endpoint and a new key. The header applies to the product endpoints above and to `POST /episodes/generate`. Other writes do not gain idempotency protection from it. ### Create a Video [#create-a-video] Send this JSON to `POST /videos`: ```json { "prompt": "Explain how bees communicate, for a curious beginner.", "host_ids": ["host_id_1", "host_id_2"], "target_duration_seconds": 300, "language": "en", "orientation": "LANDSCAPE" } ``` Video durations are `300`, `420`, `600`, `900`, or `1200` seconds; omit `target_duration_seconds` to default to `300` seconds. `host_ids` accepts one to four unique host IDs in cast order. A video may send one `host_id` instead, but a request cannot include both fields, and a narrator is required. ### Create a short [#create-a-short] ```json { "prompt": "Explain how bees communicate, for a curious beginner.", "target_duration_seconds": 30, "background_music": true } ``` Shorts support `30` or `60` seconds and default to `30`. `background_music` is optional and defaults to on. ### Create from a finished script [#create-from-a-finished-script] Videos and shorts accept `script` instead of `prompt`: ```json { "script": "[Alex]\nWelcome to the show.\n\n[Sam]\nToday we are explaining how bees communicate.", "style_id": "your_style_id" } ``` Put `[Character Name]` on its own line before each turn. Each label matches an active character returned by `GET /hosts`, or assign Host IDs to labels explicitly with `speaker_characters`: ```json { "speaker_characters": [{ "label": "Alex", "character_id": "host_id_1" }] } ``` Explicit assignments override name matching and must use active hosts; unmapped labels still match by name. Script mode does not accept `host_id`, `host_ids`, or `source_ids`. Video and short scripts support at most four speakers. `style_id` is required. Jellypod validates and resolves the complete script before starting Credit-bearing generation. ### Create a Voiceover [#create-a-voiceover] First upload a supported document or image. Send this JSON to `POST /voiceovers`, replacing the example UUID with your source ID: ```json { "source_ids": ["00000000-0000-4000-8000-000000000001"], "direction": "Walk through the slides in order for new team members.", "captions_enabled": true, "visual_motion": "auto" } ``` `source_ids` contains 1 to 10 unique uploaded-file source IDs in presentation order. The combined input can contain at most 50 visuals. Generation waits for Source processing and prepares missing visuals. Omit `target_duration_seconds` for automatic duration based on the content. Explicit durations are `180`, `300`, `420`, `600`, `900`, `1200`, `1800`, `2700`, or `3600` seconds, subject to your plan's voiceover limit. `direction` accepts up to 4,000 characters. `captions_enabled` defaults to `false`. `visual_motion` defaults to `auto`, which zooms photos and holds document pages still. Send `dynamic` to zoom every visual or `static` to zoom none. ### Optional settings [#optional-settings] All three products accept `language` and `orientation`. In prompt mode, shorts accept one narrator in `host_id`; videos accept one to four narrators in `host_ids` and retain `host_id` as a one-narrator compatibility input. Voiceovers use the same narrator fields. `language` defaults to `en` when omitted, and `orientation` defaults to `AUTO`. Orientation accepts `AUTO`, `LANDSCAPE`, `PORTRAIT`, or `SQUARE`. Omitting orientation, or sending `AUTO` explicitly, means portrait for shorts and landscape for videos and voiceovers. Portrait and square are also supported for voiceovers. Videos and shorts require exactly one of a nonblank `prompt` or `script`. Prompts accept up to 20,000 characters and scripts up to 75,000. Prompt mode also accepts `style_id` from product options and up to 100 unique `source_ids` for research. Style defaults to the product's default style when omitted, but script mode requires it. Processing sources can be attached immediately: the generation workflow waits before reading them. Missing, failed, or stalled sources are rejected. Complete the upload before attaching a newly reserved source. `background_music` belongs to shorts. `captions_enabled`, `direction`, and `visual_motion` belong to voiceovers, which do not accept `prompt` or `style_id`. ## Follow progress and download [#follow-progress-and-download] Creation returns HTTP `202` with the resource in `data`, a `Location` header pointing to its status endpoint, and `Retry-After: 10`. Save `data.id` immediately. The resource also includes `object`, `title`, `status`, `phase`, `error`, `generation_id`, `studio_url`, `host_id`, `host_ids`, `language`, `orientation`, `background_music`, `style_id`, `target_duration_seconds`, `created_at`, and `updated_at`. Poll the status endpoint. `status` is `idle`, `generating`, `completed`, or `failed`. Use `phase` for progress detail and `error` for a failure reason. Respect `poll_after_seconds`; generation can continue after your script stops. Once generation completes, request `/download`. Its `data` contains `id`, `object`, and `delivery`: * `{"kind":"available","url":"https://example.com/output.mp4","origin":"mux"}` contains the download URL. The origin may also be `storage`. * `{"kind":"preparing","reason":"rendition"}` means the delivery file is still being prepared. The reason may also be `ingest`. Wait and check again. * `{"kind":"unavailable"}` means no downloadable output is available. Open the resource in Studio. List endpoints accept `limit` (1 to 100, default 20) and an opaque `cursor`. They return `{"data": [...]}` with the newest items first. Follow the response's `Link` header with `rel="next"` for the next page; no next link means the end. Pagination metadata is in the HTTP header, not in the JSON body. ## Upload a file for Voiceover [#upload-a-file-for-voiceover] Request an upload slot with `POST /sources/uploads`, upload the bytes to `data.upload.url` with its method and headers, then call `POST /sources/{id}/complete-upload`. Use the actual byte size and MIME type. Upload slots expire at `data.upload.expires_at`. Send the API key only to Jellypod API endpoints, not the signed upload URL. Files must be nonempty and no larger than 100 MiB (104,857,600 bytes). `file_name` must be a filename without directories, at most 255 characters; its extension must match `mime_type`. Optional `title` accepts 1 to 500 characters. Completion verifies the declared size, stored MIME type, and supported file signatures. Voiceover supports these source types: | File | MIME type | | ---------------------- | --------------------------------------------------------------------------- | | PDF | `application/pdf` | | PowerPoint `.pptx` | `application/vnd.openxmlformats-officedocument.presentationml.presentation` | | PNG | `image/png` | | JPEG `.jpg` or `.jpeg` | `image/jpeg` | | WebP | `image/webp` | Other presentation formats (`.ppt`, `.pptm`, Keynote, OpenDocument) are not accepted for Voiceover; export to PDF or `.pptx` first. A voiceover supports 50 pages or images combined across all its sources. Splitting a presentation into multiple files does not raise this total. Other supported upload types can be used as research sources. API uploads do not accept `video/*`; use extracted audio instead. Use `POST /sources` for a URL, YouTube link, or inline text. A source moves from `awaiting_upload` through `processing` to `completed` or `error`. Check `GET /sources/{id}`. Request a new slot if it expires or processing fails. ## Handle errors and retries [#handle-errors-and-retries] Read the error before retrying. Correct invalid input, add credits when needed, and respect `Retry-After` for rate limits. A failed HTTP response does not prove that generation failed. Errors can include a `recovery` object: an `action` such as `correct_input`, `check_account`, or `retry`, and, on a pre-execution rejection, an `idempotency_key` of `reuse` or `new`. This field is present even when the request sent no `Idempotency-Key`; follow it only when you sent one. A rejection proven to happen before generation started releases its key, so fix the input or account issue and resend with the same key when `idempotency_key` is `reuse`; `new` means start over with a different key. If an idempotency conflict says acceptance is unresolved, check the resource ID in the error. Do not create again with a new key because the original request may be running. Completed requests replay their accepted response. A resource with `status: "failed"` or an unstarted `status: "idle"` can be retried with `POST /{collection}/{id}/retry`. Send a new `Idempotency-Key` if the retry itself might be resent. The retry keeps the resource ID and starts a new generation attempt. Review the error and credits first. # Automations: auto-generate episodes, shorts, videos (/docs/help/automations) An automation generates new content on its own: on a repeating cadence, or whenever an email reaches its private address. Each run works like creating that content by hand. This page is for generating new content; to publish an existing episode later, see [Scheduling episodes](/docs/help/publishing-and-distribution/scheduling-episodes#content-calendar). Active scheduled automations also show their upcoming runs on the Content Calendar. ## Choose an output and a trigger [#choose-an-output-and-a-trigger] Both choices are fixed when you create the automation. To change either, create a new automation. * **Output:** **Episode** (a new episode for one of your podcasts), **Short** (vertical video), or **Video** (horizontal video). A video automation can switch its **Format** between Short and Video when you edit it. Voiceovers are not supported. * **Trigger:** **Schedule** (days of the week at a set time) or **Inbound Email** (each email sent to the automation's address is the source for a run). One automation cannot use both. Start from **Automations** in the sidebar, or from **Create Automation** in the episode composer on a podcast's page, which pre-selects Episode for that podcast. ## Create an episode automation [#create-an-episode-automation] 1. Open **Automations**, then **New Automation**. 2. Choose **Episode**, then **Continue**. Choose **Schedule** or **Inbound Email**, then **Continue**. 3. Fill in the settings: * **Title:** required, names the automation in your list. * **Podcast:** where each episode posts. Hosts and voices come from that podcast. Archived podcasts do not appear in the picker for a new automation. * **Duration:** target length, from 3 to 60 minutes (default 7). Presets above your plan's episode limit are locked. * **Prompt:** what every episode should cover. Required for Schedule. Optional for Inbound Email, where you can leave it blank or add standing guidance. * **Run on**, **Time**, **Timezone** (Schedule only): a preview lists upcoming runs. * **Auto-Publish:** on, each run publishes to your feed; off, each run saves as a draft to review, edit and publish. * **Include show notes:** adds source links to each episode's description. See [show notes](/docs/help/podcasts-and-episodes/editing-episode-details#show-notes). 4. Click **Create Automation**. If the automation is currently disabled when you save changes later, Jellypod asks whether to **Save only** or **Save & Enable**. ## Create a video or short automation [#create-a-video-or-short-automation] Follow the same steps, choosing **Short** or **Video**. Only these fields differ: * **Host** and **Language:** the character who narrates and the narration language. A host tuned for a different dominant language shows a notice, but generation follows the language you choose. * **Video settings:** duration (Short: 30 seconds or 1 minute; Video: 3 to 25 minutes, up to your plan's cap), orientation, brand kit and watermark or logo. See [video creation settings](/docs/help/video-creation-settings). Shorts also let you keep or remove generated background music. * **Visual style:** the generated look, from the full style catalog. There is no Auto-Publish for video or short automations. Every run creates a private result in your video library. ## Inbound email automations [#inbound-email-automations] Creating an Inbound Email automation generates a unique private address. Copy it from **Email address**. Anyone who can email it can start a generation, so keep it private. Send or forward an email to the address to trigger a run, and Jellypod uses the email as the [source](/docs/help/sources/what-are-sources). Episode automations use the email as research material for a newly written script. To preserve an Episode script word for word, use Upload Script in Studio or the [API import endpoint](/docs/api/agents#generate-from-a-prompt-or-script). * **Connect a newsletter:** subscribe with the address directly (Substack, Ghost, beehiiv and others), or set a forwarding rule in your inbox. Each new issue triggers a run. * **Confirmation emails:** newsletters usually send a confirmation before delivering issues. Jellypod forwards it to your own inbox instead of making a run. Click the link there. Confirmations do not count toward the daily limit or use credits. If it never arrives, check spam, then subscribe again. * **Regenerate the address:** if the address is shared or gets unwanted mail, click **Regenerate** next to it. The old address stops triggering runs immediately, so update every subscription and forwarding rule. * **Daily limit:** 10 runs per day per automation. Extra emails that day are ignored. ## What happens on each run [#what-happens-on-each-run] Jellypod generates in the background and emails you when an episode draft is ready (or live, with Auto-Publish on) or when a video or short is ready to review. Runs spend [credits](/docs/help/getting-started/understanding-credits) like manual creation. If a run fails, Jellypod emails you the reason and the automation tries again on its next run. Three consecutive failures pause it with an **Auto-Paused** status. Review the latest failure before resuming. An automation paused for invalid saved settings or lost access shows **Needs Attention**. A manually disabled one shows **Disabled**. ### Out of credits [#out-of-credits] When credits run out, automations pause with **Needs Credits**, and the Automations page and each automation's detail page show an **Out of credits** banner with **Add credits**, which opens billing. After you add credits, the badge changes to **Paused** and the banner offers **Resume all** and **Dismiss**. You can also use **Resume** on one automation. Scheduled automations wait for their next time, and inbound ones wait for the next email. Resuming never creates a run or replays anything missed. **Dismiss** only hides the reminder. ## Manage automations [#manage-automations] The **Automations** page lists every automation in your organization, with status, next run and recent runs. From each row's menu you can **Edit**, **Run now** (inbound automations show their address instead), **Disable** or **Enable**, and delete. A podcast's episode automations also appear in an **Automations** section on its podcast page once it has at least one. Video and short automations are managed only from the **Automations** page. ## Plan limits [#plan-limits] Automations included are 2 on Starter and Educator, 10 on Creator, and no plan cap on Business and Enterprise. See [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits). The limit counts active and paused automations of every output together, across all podcasts. At the limit, creating a new one prompts an upgrade. Editing or running existing ones is never blocked. ## Automation did not run [#automation-did-not-run] Check these in order: 1. **Status:** an automation that is not active does not run. Look for **Auto-Paused**, **Needs Credits**, **Needs Attention** or **Disabled** in the list, then see [What happens on each run](#what-happens-on-each-run). 2. **Timezone:** scheduled times use the automation's **Timezone**. Check it and the upcoming-runs preview. 3. **Daily inbound limit:** more than 10 emails in a day are ignored, see [Inbound email automations](#inbound-email-automations). An old address stops working after **Regenerate**. 4. **Credits:** see [Out of credits](#out-of-credits). Resuming does not replay missed runs. 5. **Plan limit:** this only blocks creating new automations, see [Plan limits](#plan-limits). Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Brand kits: save colors and logos and apply them (/docs/help/brand-kits) ## What a brand kit holds [#what-a-brand-kit-holds] A brand kit is a reusable set of colors and logos owned by your organization, not by one podcast. It has a name, an optional source website, five color roles (Primary, Secondary, Accent, Background and Text) and optional logos for light and dark backgrounds. Your organization can save several kits and mark one as the default. Only Primary is required. Your plan sets how many kits you can save, see [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits). On a plan without brand kits, the **Brand Kits** page says so and no brand choices appear in the composers. ## Create a brand kit [#create-a-brand-kit] Open **Brand Kits** in the **Personalize** section of the Studio sidebar and click **New Brand Kit**. Then choose one of two starts: * **Create from website:** enter your website URL. Jellypod looks for a brand name, logos and colors, then opens the editor pre-filled. Nothing is saved until you review and confirm the values. * **Set up manually:** open the same editor with empty fields. In the editor, enter a **Brand name** (required, and unique within your organization), pick each color with the color wheel or a hex value, and upload **Logo for light backgrounds** and **Logo for dark backgrounds** if you have them. Logos accept PNG, JPG or WebP files up to 3 MB, and a transparent background works best. ## Set an organization default [#set-an-organization-default] Open a kit’s menu on the **Brand Kits** page and choose **Set as default**. The current default shows a **Default** badge instead. New shorts and videos start from the default kit, and a podcast with no brand choice of its own follows it. ## Use a brand kit [#use-a-brand-kit] ### On a podcast [#on-a-podcast] Your podcast's website accent color follows its brand kit, and the kit is resolved live, so editing the kit's colors updates the live website. To choose a kit for a podcast, use the **Brand** card in [Edit Podcast](/docs/help/podcasts-and-episodes/editing-podcast-details#brand): pick **Organization default**, another kit, or a **Custom Primary override** for that podcast only. The website editor shows the result as a read-only **Brand accent** swatch. See [your podcast website](/docs/help/publishing-and-distribution/your-podcast-website) for the rest of the site. ### On a short or video [#on-a-short-or-video] When your organization has at least one kit, the composer shows a **Brand** control that starts on your default kit (or the first kit if none is default). Use **Change** to pick another kit or **No Brand Kit** for that creation. See [creation settings](/docs/help/video-creation-settings) for the other composer options. Every video style declares how much of a kit it uses, shown as **Full** (the whole palette), **Accent** (accent color only) or **None** (the style keeps its own colors). A compatible style applies your colors, and its captions where relevant, but the style still controls its own art direction and caption layout. The [visual styles](/docs/help/video-visual-styles) page shows the level for each style. Video snapshots the kit when it is generated. Editing a kit's colors or logos later does not recolor a short or video you already made. To pick up the change, generate it again. ## Edit or delete a brand kit [#edit-or-delete-a-brand-kit] Click a kit to open its editor, or use its menu and choose **Delete Brand Kit**. Deleting a kit detaches it from every podcast that used it, including podcasts that followed it as the default. Each of those podcasts keeps the kit's colors and logos as its own custom identity, so nothing changes visually. Video you already generated is unaffected. If you delete the default kit and other kits remain, you must first choose a replacement default. Deleting your only kit needs no replacement. ## Troubleshooting [#troubleshooting] * **No Brand control in the composer:** you have no brand kits yet, or your plan does not include them. * **New Brand Kit** opens an upgrade prompt: you have reached your plan's kit limit (the page notes "Your plan's Brand Kit limit is reached"). Delete a kit, or check your plan limits. * **A logo will not upload:** use a PNG, JPG or WebP under 3 MB. * **A kit name is rejected:** another kit in your organization already uses it. * **A video ignored my colors:** its style is likely **None**, or **Accent** so only the accent color applies. Check the styles table. Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Magic Video vs Shorts vs Voiceovers: which to use (/docs/help/choosing-a-video-product) Magic Video, Shorts and Voiceovers are three separate Products that share the same **Videos** collection in Studio. The difference is where the visuals come from: Jellypod generates them for Magic Video and Shorts, and Voiceovers use the files you supply. ## Which should I use? [#which-should-i-use] * **[Magic Video](/docs/help/magic-video):** a longer video with generated visuals, landscape by default. * **[Shorts](/docs/help/shorts):** a 30 or 60 second portrait video with generated visuals. * **[Voiceovers](/docs/help/voiceovers):** you already have documents and images, and want Jellypod to write and time narration around them. * **[Episode video](/docs/help/podcasts-and-episodes/video-templates):** you want a video version of a podcast episode, not a new Product. ## Product differences [#product-differences] | | Shorts | Magic Video | Voiceovers | | ------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | | Visuals | Generated for you | Generated for you | The files you upload | | You provide | A prompt, source, or finished script | A prompt, source, or finished script | Sources and optional direction (no **Upload Script**) | | Length | See [Duration](/docs/help/video-creation-settings#duration) | See [Duration](/docs/help/video-creation-settings#duration) | See [Duration](/docs/help/video-creation-settings#duration) | | Default orientation | Portrait | Landscape | Landscape | | Visual style | Your choice | Your choice | Not applicable | | Hosts | Up to four, assigned per paragraph | Up to four, assigned per paragraph | Up to four, assigned per paragraph | | Background music | Generated with the Short, on by default; replace or remove it afterward | Add it in the editor after generation | Add it in the editor after generation | | Brand kit | Chosen at creation | Chosen at creation | Not supported | | Watermark | Added at creation | Added at creation | Added in the editor afterward | | Captions | Follow the visual style's default | Follow the visual style's default | Chosen at creation, off by default | For Magic Video and Shorts, the visual style and orientation cannot be changed after generation begins. Generated scripts assign hosts for you: reassign paragraphs in the [editor](/docs/help/video-editor) to change who speaks them. Custom watermarks and logos are available on Creator, Business, and Enterprise. ### Plan limits [#plan-limits] Length caps for Shorts, Magic Video and Voiceovers vary by plan; see [Plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits). ## Episode video is different [#episode-video-is-different] An episode can also be rendered as video, but that is not one of these Products. It uses one of six fixed [Podcast Templates](/docs/help/podcasts-and-episodes/video-templates), and nothing is generated. No episode carries generated visuals: an episode that once used Magic Video now has that video in your Videos library instead, titled after the episode. To get a real Magic Video Product from an episode's narration, with generated visuals, [create a Magic Video from the episode](/docs/help/podcasts-and-episodes/video-templates#create-a-magic-video-from-an-episode) instead. It reuses the episode's narration and music without resynthesizing audio, and the two stay independently editable. You can also go the other way and [copy a Video into a Podcast](/docs/help/video-editor#copy-a-video-to-a-podcast). ## Shared video articles [#shared-video-articles] These pages apply across the Products: * [Video visual styles](/docs/help/video-visual-styles): the styles for Magic Video and Shorts. Voiceovers do not use visual styles. * [Creation settings](/docs/help/video-creation-settings): duration, orientation, language, watermark and brand control. * [Edit narration and visuals](/docs/help/video-editor): revise narration, regenerate audio and change individual visuals. * [Manage and share videos](/docs/help/video-library-and-sharing): the library, sharing and downloads. * [When a video fails](/docs/help/video-generation-failures): what to do when a generation does not finish, and what is charged. # Jellypod Help Center (/docs/help) ## Start Here [#start-here] See what each Product makes and how the parts fit together. Tour the Studio, then create your first podcast and episode. ## Products [#products] Not sure which video Product to use? [Choose a video Product](/docs/help/choosing-a-video-product) compares them. Create, edit, publish and measure podcasts and episodes. Longer narrated videos from a prompt, source or finished script. Short-form narrated videos for social platforms. Narrated videos from documents and images, keeping your visuals. ## Personalize, create and edit [#personalize-create-and-edit] Create characters, browse voices, clone a voice. Save colors and logos and apply them across your work. Turn a prompt into a researched, scripted and voiced episode. Reuse documents, links, text, audio, video and images as context. Generate episodes, shorts or videos on a schedule. ## Publish, workspace and developers [#publish-workspace-and-developers] Publish episodes, distribute to podcast apps, and review analytics. Plans, credits, billing, security and account settings. Invite teammates, assign roles and set up SSO. Connect an AI assistant, or use the [API reference](/docs/api) and [developer resources](/developers). ## Get help and support [#get-help-and-support] Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). New releases are listed under **Product Updates** in the Studio sidebar and on the [product updates page](/product-updates). For the affiliate program, choose **Affiliate Program** in your avatar menu; see the [referral program](/docs/help/account-and-billing/referral-program). # Connect Claude, ChatGPT and other AI assistants (MCP) (/docs/help/mcp) The Jellypod MCP server lets an AI assistant create and manage content in your library. Your plan limits and [credit rates](/docs/help/getting-started/understanding-credits) still apply. ## Connect [#connect] Add this remote server to your client: ``` URL: https://mcp.jellypod.com/mcp Transport: Streamable HTTP Auth: OAuth ``` Sign in to Jellypod when the client asks. The connection uses your current library and permissions. Clients that cannot complete OAuth send a Jellypod API key as an `Authorization: Bearer YOUR_API_KEY` header. * OAuth sign-in: MCP Connector feature on Starter, Educator, Creator, Business and Enterprise * API-key bearer authentication: API access (Creator, Business and Enterprise) | Client | Setup | | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Claude (web and desktop) | Open **Settings**, then **Connectors**, click **Add custom connector**, paste the URL, then click **Connect** and approve access. | | ChatGPT (web) | Turn on **Developer mode** under Advanced settings in Apps & Connectors, add a new app with the URL and **OAuth** authentication, then approve access. | | Claude Code | Run `claude mcp add --transport http jellypod https://mcp.jellypod.com/mcp`, then run `/mcp`, select Jellypod and sign in. | | Codex CLI | Run `codex mcp add jellypod --url https://mcp.jellypod.com/mcp`. A browser window opens to sign in. | | Zapier | Add the MCP Client by Zapier with the URL, transport Streamable HTTP, OAuth off, and your API key as the bearer token. | | n8n | Add an **MCP Client** node with the URL, transport HTTP Streamable and **Bearer Auth**, using your API key as the credential. | | Grok Bot | In Marketplace, add a custom remote MCP plugin with the URL, then sign in with OAuth or use an API key as the bearer token. See the [Grok Bot guide](/blog/grok-bot-create-ai-podcast) for a full walkthrough. | | Other clients | Add the URL as a remote Streamable HTTP server. Use OAuth if the client supports it, otherwise a bearer API key. | ## Developers area in Studio [#developers-area-in-studio] Open **Developers** in the Studio sidebar for the **Overview**, **API Keys** and **Integrations** tabs. **Integrations** has copy-and-paste setup steps for each client. **API Keys** is visible only to administrators and members with permission to manage API keys. ## What it can do [#what-it-can-do] The assistant can: * List and read podcasts, episodes, videos, shorts and existing voiceovers * Find saved characters, built-in voices and built-in video styles * Create and update podcasts and characters * Generate episodes, videos and shorts from a prompt or a finished script * Update descriptive metadata on episodes, videos, shorts and voiceovers * Publish, schedule, reschedule and unpublish episodes * Send feedback about the connector to Jellypod See the [tool reference](/docs/api/mcp-tools) for names and arguments, and the [agent guide](/docs/api/agents) for idempotency, polling and retries. A client that supports MCP Apps plays content inline. Other clients get a **Listen** or **Watch** link. ## What it cannot do [#what-it-cannot-do] * **Accept files.** Research material is limited to public webpage or YouTube URLs and plain text the client already holds. It does not take file uploads, local paths, private URLs or saved source IDs. If the client can read a file, it can pass the extracted text. To give Jellypod the original file, use Studio or the [Jellypod API](/docs/api). * **Delete content.** Use Studio. * **Create voiceovers, edit production, or manage the account.** Voiceover creation, production editing, analytics, voice cloning, billing, team management and account settings are in Studio or, where documented, the API. ## Defaults to know [#defaults-to-know] * New podcasts are private, and publishing an episode does not make its podcast public. * Episodes stay drafts unless `auto_publish` is true, which the assistant should use only when you ask it to publish. * A failed generation cannot be retried in place through MCP. The assistant creates new content, which is a new Credit-bearing action. To retry in Studio instead, see [what a failed generation costs](/docs/help/video-generation-failures). # Creation settings for videos, shorts and voiceovers (/docs/help/video-creation-settings) These settings sit in the composer for [Magic Video](/docs/help/magic-video), [Shorts](/docs/help/shorts) and [Voiceovers](/docs/help/voiceovers). Not every Product offers every setting. To pick a Product first, see [choosing a video Product](/docs/help/choosing-a-video-product). Visual style choices are covered in [video visual styles](/docs/help/video-visual-styles). | Setting | Short | Magic Video | Voiceover | | ---------------------------- | ------------------ | ----------- | --------------------- | | Visual style | Yes | Yes | No | | Orientation | Yes | Yes | No (always landscape) | | Watermark or logo | Yes | Yes | No | | Brand kit | Yes | Yes | No | | Background music at creation | Yes, on by default | No | No | ## Writing your prompt [#writing-your-prompt] The Video and Short prompt area grows as you write and scrolls for longer briefs or uploaded scripts. Attached sources appear in their own row above the prompt, with generation controls below it. Visual styles stay visible in a gray, horizontally scrollable tray beneath the composer. The home composer uses the same layout for Videos and Shorts. ## Duration [#duration] | Product | Presets | Default | | ----------- | -------------------------------------------- | ------- | | Short | 30 s, 1 min | 30 s | | Magic Video | 3, 5, 7, 10, 15, 20, 25 min | 5 min | | Voiceover | Auto, or 3, 5, 7, 10, 15, 20, 30, 45, 60 min | Auto | * The page or composer mode you start from decides whether the result is a short or a video, not the duration you pick. * Presets above your plan's cap are locked and show an upgrade badge when you pick them. See [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits) for the caps. * With **Upload Script** on a short or Magic Video, duration switches to **Auto** and cannot be changed, because Jellypod derives it from the script. * A short's final render may vary slightly to match the narration. * For a voiceover, **Auto** lets the narration follow your uploaded files and never exceeds three quarters of your plan's voiceover cap. Its credit cost is estimated up front and settles to the narration actually produced. ## Orientation [#orientation] * **Portrait** (9:16): Shorts start here. Best for TikTok, Instagram Reels and YouTube Shorts. * **Landscape** (16:9): Magic Videos start here. Best for YouTube and desktop viewing. * **Square** (1:1): never chosen for you. Pick it yourself. Change it before you generate, because orientation cannot be changed afterward. To try another, create a new short or video. On desktop, use the aspect ratio button beside the duration control. On mobile, tap the settings icon and choose **Orientation**. Voiceovers are always landscape. Podcast episode video sets its orientation separately, in [video templates](/docs/help/podcasts-and-episodes/video-templates#aspect-ratio). ## Narration language [#narration-language] The searchable language picker beside the character picker sets the language the narration is written and performed in. It applies to shorts, Magic Videos and voiceovers. The picker starts from the Dominant language of your selected voices (for several hosts, the language more than half of them share). If none applies, it falls back to your browser language, then your region, then English. Changing the character updates this automatic choice until you pick a language yourself. See [dominant language](/docs/help/characters-and-voices/using-accents-and-languages#dominant-language-and-host-warnings) for how voices are matched. If your prompt explicitly asks for a different language than the one selected, the prompt wins and the narration is written in the language it names. ## Watermark or logo [#watermark-or-logo] On shorts and Magic Videos, click the settings icon and choose **Add Watermark/Logo** (it reads **Edit Logo** once one is set). Upload a PNG, JPG or WebP image up to 5 MB, pick a corner (**Top left**, **Top right**, **Bottom left** or **Bottom right**), then click **Save watermark**. The logo appears on the preview and the final video. Custom watermarks and logos are available on Creator, Business, and Enterprise. They are not included on Starter or Educator, where adding one prompts an upgrade. To change the watermark, captions or music on a finished video, see [the video editor](/docs/help/video-editor#captions-music-and-watermark). ## Brand control [#brand-control] If your organization has at least one [brand kit](/docs/help/brand-kits), a brand picker appears in the composer, preset to your organization's default kit (or the first kit if none is marked default). Open it to choose another kit or **No Brand Kit** for this video. Not every visual style uses the full kit palette. The choice is not remembered between creations. ## Starting values [#starting-values] There is no defaults screen. On the Shorts and Videos pages, a new short or video is pre-filled from what you last generated in that mode, in this browser: hosts, style, duration, orientation, background music and watermark. A language you picked yourself is remembered too. Otherwise language starts from the voice as described above. * Shorts and Magic Videos are remembered separately. * A remembered host or style that has since been removed falls back to that mode's default, as does a remembered duration the mode does not offer. * On those pages, an unfinished creation's prompt, sources and selections reload in this browser after a refresh, until you generate it or start a new one. The Home composer keeps only the prompt text of an unfinished creation. * Starting values and unfinished creations stay in your browser. They are not shared with teammates or synced across devices. # Video editor: narration, visuals, captions and music (/docs/help/video-editor) Magic Video, Shorts and Voiceovers share one editor, which keeps narration, audio, visuals and timing in sync. To see which Product fits, or what differs between them, read [Choosing a video product](/docs/help/choosing-a-video-product#product-differences). The preview sits beside the narration editor, split by a draggable divider. On narrower windows the preview moves above the narration. Changes save automatically, and the preview updates without rendering an export. Generating or regenerating narration and visuals does not start a render. To share or download the result, see [Video library and sharing](/docs/help/video-library-and-sharing). ## Original prompt [#original-prompt] Choose **Prompt** beside the video title to read the original brief, then **Copy prompt** to copy it. Videos and Shorts also offer **Use again**, which opens the brief in the creation page. Choose **Use prompt** to replace your current draft's text and sources, or **Keep current draft** to leave it alone. Your selected creation settings stay in place, and generation starts only when you choose **Generate**. Videos made from an uploaded script do not show a prompt. Voiceovers show a prompt only when you supplied narration guidance. ## Edit Narration [#edit-narration] The narration editor holds the whole script in paragraphs that match the audio segments. Text edits save on their own but never silently replace finished audio. * **Split or delete:** Press Enter partway through a paragraph to split it, or delete a paragraph's text. Neither marks anything stale: the paragraphs keep their audio and the visuals over them. Deleting a paragraph removes its audio and closes the gap in the timeline. Undo brings it back. * **Reword:** Rewording a paragraph marks only that paragraph stale. Use its **Regenerate Audio** button to update it. Each stale paragraph regenerates on its own. * **Change the Character:** Every paragraph shows its Host, the Character speaking it. Choosing a different one changes that paragraph alone, and it stays stale until you regenerate it in the new Voice. * **Pronunciation:** Use the pronunciation control in the narration editor to fix how a word is spoken, as described in the [pronunciation guide](/docs/help/characters-and-voices/pronunciation-guide). When you render, download or share with stale narration, Jellypod asks whether to export the current audio. To update it first, cancel and generate audio in the editor. The dialog is described in [Choose which audio to render](/docs/help/podcasts-and-episodes/downloading-video-and-audio#choose-which-audio-to-render). A paragraph with spoken text but no audio, including one the voice provider refused, shows a highlighted **Regenerate Audio** button (**Generate Audio** if it has never been voiced); hovering it names the reason when one is known. If the provider refuses the wording again, edit it or switch the Host before retrying. Empty paragraphs can stay in your draft and do not need audio. You can keep editing visuals meanwhile. You can generate the missing audio in the editor or choose to export with the audio already on your timeline. Rendering with existing audio leaves the missing lines unvoiced. A previously rendered version stays downloadable. If audio is already generating, wait for it to finish and try again: Jellypod does not queue the request. You can type [audio tags](/docs/help/podcasts-and-episodes/audio-tags) such as `[pauses]` or `[laughs]` in square brackets, the same way as in the episode script editor. In Magic Video and Shorts, Jellypod also writes tags for you, but only when every Host's Voice performs them. If you change a paragraph's Host to a Voice that does not support tags, leftover tags turn into warning-colored chips. Click one to open **Audio Tags Unsupported**, where you can edit the Character's Voice or clear the tags from that block. ## Edit Visuals [#edit-visuals] The Visuals lane, the first lane in the timeline, shows each shot as a strip of thumbnails. Click a visual to select it and seek to that moment. Seeking never starts or stops playback. Hover over the edge between two visuals to reveal a resize handle. Drag it, or focus it and press Left or Right (Shift moves one second), to shift time between neighbors. The first visual's start is fixed. Every other boundary moves, including the end of the last visual: drag it past the end of the narration to hold that shot longer, which lengthens the Video. Dragging back stops at the end of the narration, so the closing words always have a visual. Right-click a visual, or select it and choose **Edit visual**, to open one dialog: * **Regenerate:** Choose **Regenerate** to open the prompt the visual was drawn from. Edit it or write a new description, then confirm. The button shows the cost, and how credits are charged is covered in [Understanding credits](/docs/help/getting-started/understanding-credits#how-credits-are-consumed). The text you submit becomes the visual's prompt, the new visual saves itself when it arrives, and undo restores the previous one. A visual you uploaded opens an empty prompt. A visual with no generated shot behind it has no **Regenerate** and can only be replaced. * **Replace:** Drop an image or video onto the visual in the dialog, or click it or **Choose file**. The file previews in place, and **Save image** or **Save video** saves it. The button stays disabled until a file is staged. If the image model declines a shot for its content, Jellypod says so instead of retrying. Edit the description, then regenerate. ### Drag and drop on the lane [#drag-and-drop-on-the-lane] Dragging an image or video over the Visuals lane previews the result before you release. Over the middle of a visual, it is outlined and marked **Replace**. Near either end, a vertical line snaps to the nearest boundary and dropping there inserts a new visual. The new visual takes its time from the neighbor on that side, so the rest of the lane stays put and the Video keeps its length. An image splits that neighbor in half (a 6 second visual becomes two of 3 seconds). A video keeps its own length, trimmed only when the neighbor cannot spare that much. Neither side drops below one second, so a visual shorter than two seconds offers no boundary to drop on. A visual inserted between two that dissolve into each other picks up the same transition. Dropping onto an empty lane adds the first visual. A GIF works like an image. A browser that cannot decode a long GIF one frame at a time (Safari) shows a no-preview notice or a warning when you add one, and rejects a GIF too large to open. Use Chrome or Firefox, or upload an MP4. Rendering and exports are not affected. ### Reframe and delete [#reframe-and-delete] Select an image and choose **Reframe** to open a larger editor. Drag the image beneath the fixed frame, adjust zoom, fill the frame, or fit the whole image without stretching. Voiceover visuals can also return to Jellypod's automatic framing. Saving changes only that image's appearance, even if another visual uses the same source. Reframe and effects are not available for the [styles that draw each visual on their own canvas](/docs/help/video-visual-styles). Right-click a visual and choose **Delete visual**. A confirmation appears first, the neighboring visual extends to fill the gap, and undo restores it. Regenerating, replacing or deleting a visual leaves narration and timing unchanged. While one visual regenerates you can keep editing, but rendering waits until it lands. ### Transitions [#transitions] Click **+** between two visual cards to add a transition, then choose its style and duration. An existing transition shows an icon there. Styles are Fade, Push cut, Slide, Wipe, Flip, Clock wipe and Iris. Magic Video and Shorts add some transitions during generation, matched to the visual style, and every Voiceover visual after the first starts with one. Edit, replace or remove any of them the same way. A transition belongs to the incoming visual on its right and moves with it when you reorder. Moving a visual to the first position removes its transition. Transitions never shift narration, visual timing or total duration. ### Visual effects [#visual-effects] A selected generated visual shows a pill at its bottom left naming its effect: **Zoom in**, **Zoom out** or **No effect**. Click the pill, or right-click and choose **Edit effect**, to pick one and set **Strength**, how far the zoom travels, from 25% to 300% in 25% steps. Strength is disabled with No effect. An effect overrides the automatic alternating zoom for that one visual. It survives regenerating the rest of the Video and clears only if you replace that visual. Effects are not available on animated shots or on the five drawn styles above. ## Timeline [#timeline] Narration and music sit in their own lanes beneath the Visuals lane, on the [track-based timeline shared with podcasts](/docs/help/podcasts-and-episodes/using-the-timeline-editor): drag, trim, delete, adjust volume and fades, and zoom in or out. Music segments can also be cut, copied and duplicated. A generated narration segment cannot, because each paragraph has one take, so its menu offers only Regenerate Audio, Edit Audio and Delete. Visual timing reflows automatically when narration audio changes, so visuals stay lined up with the words. Reflowing does not redraw pictures. If the narration under a visual changes enough that it likely no longer fits, the visual gets a **Needs regenerating** badge. It keeps playing and exporting until you regenerate it. ## Captions, music and watermark [#captions-music-and-watermark] Controls for these sit in the workspace beside the preview and timeline. * **Captions:** Click **Captions** to preview the caption styles, pick one, or choose **No Captions**. The change applies to the preview and the final render. New Shorts and Magic Videos start with the caption style linked to their Visual Style. * **Music:** Use the music control (**Add Music**) to set, swap or remove the background music. Shorts can start with a generated instrumental score. Magic Video and Voiceovers start without music, so add your own here. Music then edits like any other timeline clip, as described above. * **Watermark:** Click **Add logo** to place a logo in a corner of the preview and final video. Plan availability, image format, size and corner options are in [Video creation settings](/docs/help/video-creation-settings#watermark-or-logo). ## Unfilled visual slots [#unfilled-visual-slots] If generation could not produce a visual for a shot, for example when the image model declined the prompt, the rest of the Video is still committed. The empty shot shows a dashed **Missing visual** placeholder. Click it to open the dialog above and regenerate or replace it. A banner above the preview counts missing shots and offers **Review visual** (or **Review visuals**), which jumps to the first one. Rendering waits until every shot has a visual, and a previously rendered version stays downloadable. If the whole generation failed rather than one shot, see [Video generation failures](/docs/help/video-generation-failures). ## Missing files [#missing-files] If a clip's stored file has been removed from your media library (image, video, GIF or music), the timeline badges it **File missing** and names the file. The Video keeps playing and skips that clip, but rendering, downloading or sharing fails and names the same file rather than publishing without it. Replace the file to clear the badge. Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). ## Copy a Video to a Podcast [#copy-a-video-to-a-podcast] 1. Open the Video and click the **•••** menu in the top bar, beside Share and Download. This menu also contains **Import script** and **Export script**, which work as described in [Use your own script](/docs/help/podcasts-and-episodes/use-your-own-script). 2. Choose **Copy to Podcast**, then select the destination Podcast. 3. Click **Copy to Podcast** to create a separate, editable Episode. The Episode keeps the Video's script, saved narration, speech timing and music. Copying does not regenerate audio or charge generation credits. Changes to either copy do not change the other. To go the other way, [create a Magic Video from an Episode](/docs/help/podcasts-and-episodes/video-templates#create-a-magic-video-from-an-episode). # Video, short or voiceover failed: retry and credits (/docs/help/video-generation-failures) This page covers Magic Video, Shorts and Voiceovers, which fail the same way. To choose between them, see [choosing a video product](/docs/help/choosing-a-video-product). For podcast episodes, see [episode generation failed](/docs/help/podcasts-and-episodes/episode-generation-failed). ## Why does my card say Needs attention? [#why-does-my-card-say-needs-attention] A generation that fails shows a red status on its card in the **Videos** library, with a short line saying what went wrong. [Status labels and card actions](/docs/help/video-library-and-sharing#libraries-and-card-actions) are listed with the library. * **Needs attention**: another attempt could succeed. The card offers **Retry generation**. Most causes are temporary: a provider timed out, a step stopped before it finished, or another generation was already working on the visuals. * **Needs attention** with a fix link: something has to change first. **Add credits** appears when the generation needs more credits than you have, **Review sources** when a source could not be processed, and **Choose a voice** or **Create a character** when a character has no usable voice or a script names a speaker that is not a saved character. Make the change, then use **Retry generation**. * **Cannot be finished**: there is no **Retry generation**, because the same request would fail again. This covers refused wording, an unimportable script and lines that could not be voiced. * **Needs visuals**: production finished but the visuals did not, and the draft is saved. **Retry generation** finishes the visuals. A render failure keeps the video editable. To fix refused wording, open the item if it opens and follow [Edit narration](/docs/help/video-editor#edit-narration): edit the lines or switch the character, then regenerate. ## Can I retry? [#can-i-retry] Click **Retry generation** when the card offers it. A retry continues from where the generation stopped: * If it failed while rendering and the composition was already built, the retry only renders again. * If a script already exists, the retry uses the saved script instead of writing a new one. * If it failed before there was a script, the retry starts from your original prompt, sources and settings. * A voiceover retry reuses the files you already uploaded, so you do not upload them again. ## Was I charged for a failed generation? [#was-i-charged-for-a-failed-generation] Credits are held when generation starts. If the generation fails before the narration and visuals are finished, the hold is released and nothing is charged. Once narration and visuals are finished, generation is charged and the editable draft is ready. Rendering happens when you download or share. A later render failure keeps the generation charge, and retrying the render costs nothing. If some visuals or lines could not be produced, you are charged only for the narration and visuals that were generated, and the draft opens for you to finish. A retry is charged only for what it generates. Narration is charged on a video's first voicing, so a retry does not pay for it twice. See [understanding credits](/docs/help/getting-started/understanding-credits) for reservation and rates. ## Do not delete to fix a failure [#do-not-delete-to-fix-a-failure] Deleting a failed item and creating a new one repairs nothing. The replacement is a new generation, charged in full, and it runs the same pipeline with the same settings, so whatever stopped the first one is likely to stop it again. A retry pays only for what it still has to produce. Delete and start over when you want a different result, such as a new prompt, orientation or Visual Style. ## Voiceover file errors [#voiceover-file-errors] A voiceover can fail because one of your uploaded files could not be processed. **Generate** does not wait for uploads to finish, so you see the error when the voiceover fails, not when you add the file. Retry from the card first. If it fails again, the file itself is probably the problem: export it again and create a new voiceover from the new file. [Voiceovers](/docs/help/voiceovers#supported-files) lists supported formats. ## If retry keeps failing [#if-retry-keeps-failing] If **Retry generation** fails twice, stop retrying and contact support. The same applies to a **Cannot be finished** card where the fix it suggests does not help. The card shows the short version, not the technical error, so include the link to the failed item and roughly when you first tried to generate it. Support can then find the run and its error. Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). See [get help and support](/docs/help#get-help-and-support). # Manage and share Magic Videos, Shorts and Voiceovers (/docs/help/video-library-and-sharing) Videos, Shorts and Voiceovers all share the **Videos** library in the sidebar. To pick a Product, see [Choosing a video product](/docs/help/choosing-a-video-product); the Products have their own creation guides: [Magic Video](/docs/help/magic-video), [Shorts](/docs/help/shorts) and [Voiceovers](/docs/help/voiceovers). ## Libraries and card actions [#libraries-and-card-actions] The **Videos** library shows your Series above **All Videos**. All Videos includes videos, Shorts and Voiceovers, including items assigned to a Series. Use the search box to find a title, choose a format to show only Videos, Shorts or Voiceovers, and switch between grid and list views. Sorting defaults to most recently updated, newest first. You can also sort alphabetically or by creation date and reverse the order. Grid cards show the format beside the edited date. List view gives the format its own column. A badge beside the title identifies the item's Series. Libraries show 10 items per page. Use **Previous** and **Next** to see the rest. ### Organize videos into Series [#organize-videos-into-series] Click **New Series** to create a named group. Click a Series to see its videos. Series contain videos, Shorts and Voiceovers, and cannot contain other Series. Each item belongs to at most one Series. Use an item's ••• menu to **Move to Series** or **Remove from Series**. Removing membership leaves it in All Videos. A Series's ••• menu lets you rename it or delete it. Deleting a Series keeps all its items and makes them ungrouped. Click **Create Video** to choose **Short**, **Video** or **Voiceover**, which opens Home with that mode selected. Creating inside a Series adds the new item to that Series automatically. Creating from All Videos leaves it ungrouped. Series group your items without changing their characters, voices, or styles. A card shows a status label until the item is ready: * **Generating**: narration and visuals are being produced, or a background job such as a visual regeneration is still running. * **Preparing**: the script, visuals and music are done and a render is in progress. * **Regenerating audio...**: narration is being regenerated in the background. The card opens in the meantime. * **Needs visuals**: the visuals did not finish and the draft is saved, with narration kept. Click **Retry generation** to finish the visuals. * **Needs attention**: generation failed and can be retried. Click **Retry generation**: it continues from where generation stopped. * **Cannot be finished**: another attempt would fail the same way, so there is no retry button. The card says what to change. If it does not, open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). Some failed cards also show a button for the fix, such as **Add credits** or **Review sources**. See [When a Video, Short, or Voiceover Fails](/docs/help/video-generation-failures) for what each failure means and what it costs. A card opens in the editor once there is something to edit. While a generation is still running, or if it failed before anything was built, the card does not open and **Edit** is disabled. Magic Videos run longer than Shorts, so expect more paragraphs and shots to review. To change narration, visuals, music or captions, see [Edit narration and visuals](/docs/help/video-editor). Every card has a **Download** button and a ••• menu: * **Download** renders your latest edits and downloads them without opening the editor. The button reads **Preparing...**, **Regenerating audio...** or **Rendering...**, then **Downloading...**. If the saved render already matches your edits, it downloads that file directly. If a render is already running, Download waits for it. It stays disabled while generation or regeneration prevents a render from starting. Missing narration lets you export with the audio already on the timeline. To include those lines, generate their audio in the editor first. Missing visuals still need attention before rendering. * **Edit** opens the editor. * **Rename** changes the title, up to 255 characters. * **Delete** permanently removes the item, its renders and its AI-generated media, at any stage. This cannot be undone. There is no full regeneration for a finished item, and no delete inside the editor. For a wholly different result, delete it from the library and create a new one, which is charged in full. ## Share, render and download [#share-render-and-download] Creating or editing a Video, Short or Voiceover saves an editable draft without rendering an export. **Download** creates a render when your saved edits need one. Unchanged narration and visuals are reused. In the editor, **Share** on an item with no shareable render starts a render, then opens the dialog when it finishes. Once a shareable render exists, **Share** opens the dialog straight away with the public share link and embed code, plus a **Re-render Latest Version** button (or **Retry Render** after a failed render). Re-rendering updates the same link and embed. **Download** in the editor works as it does on the card. If the saved audio does not match your latest narration or Voice choices, rendering or downloading first asks which audio to use. See [Choose which audio to render](/docs/help/podcasts-and-episodes/downloading-video-and-audio#choose-which-audio-to-render). Right after a render finishes, the file can take a few minutes to package. Downloading in that window shows a **Still preparing** notice: try again shortly. If a render fails or takes too long, Download shows an error toast, and clicking it again starts a new render. Rendering and re-rendering are free. Credits are charged when narration or visuals are generated (see [Understanding credits](/docs/help/getting-started/understanding-credits)). ### The public share page [#the-public-share-page] The share page shows a "Made with Jellypod" mark. Viewers can tap to pause and resume, toggle sound and drag the scrubber. ## Embed a video [#embed-a-video] Open **Share** and copy the embed code below the share link. It is an iframe sized to the item's orientation: 640x360 Landscape, 360x640 Portrait, 480x480 Square. Those are starting widths: the frame keeps its aspect ratio, so change the width in the snippet to fit your layout. Paste it into any platform that accepts HTML iframes. The player keeps its native controls and supports fullscreen and picture-in-picture. Orientation is fixed when generation starts: create a new item to change it. # Video visual styles for Magic Video and Shorts (/docs/help/video-visual-styles) A visual style sets how a [Magic Video](/docs/help/magic-video) or a [short](/docs/help/shorts) looks. You pick one in the composer before you generate. To decide between Products first, see [Choose a Video Product](/docs/help/choosing-a-video-product). [Voiceovers](/docs/help/voiceovers) do not use visual styles: they keep the documents and images you supply. ## Choose a style [#choose-a-style] Pick a card in the style rail below the prompt (use the arrow buttons to scroll it). Hover a card to see its short description. * Jellypod chooses the art direction (palette, composition, treatment) from your topic and tone, so you cannot customize a style further or write image prompts. * A style cannot be changed after generation starts. Create a new Magic Video or short to try another. * The composer starts on **Whiteboard Explainer** until you generate something. After that it starts on whichever style you used last, on Home, Shorts, or Videos alike. See [Starting values](/docs/help/video-creation-settings#starting-values). ## Style catalog [#style-catalog] The **Brand kit** column is the style's compatibility with a [brand kit](/docs/help/brand-kits): **Full** uses the whole palette, **Accent** uses only the accent color, and **None** keeps the style's own colors. | Style | Look | Brand kit | | -------------------- | ------------------------------------------------------------------------------------------------------------------------ | --------- | | Almanac | Hand-drawn paper cutouts on aged parchment with documentary warmth. | Accent | | Atomic Age | Flat mid-century gouache scenes with jet-age optimism and bold geometry. | Accent | | Blueprint | Technical line drawings on a blue grid. | None | | Chalkboard | White chalk drawings on a dark canvas. | None | | Claymation | Handcrafted plasticine puppets in warm miniature practical sets. | Accent | | Crayon | Deliberately clumsy child-drawn crayon pictures on pure white. | Accent | | Flat | Warm flat picture-book scenes built from bold rounded geometry. | None | | Gouache | Soft painted scenes with chunky brushwork, cool blues, and warm light. | Accent | | Paper Mache | Animated paper-craft scenes: layered cut-paper shapes, printed textures, hand-made detail, and one focal point per shot. | Full | | Pixel Art | Bright 2.5D pixel adventures with playful sprites and tiled worlds. | Accent | | Retro Comics | Punchy 1980s newsstand panels with bold ink and halftone color. | None | | Sketch | Fine pen-and-pencil story sketches with restrained, muted color. | Accent | | Stickman | Deadpan stickman cartoons with bold ink and muted color. | Full | | Toy Bricks | Cinematic toy-brick dioramas with polished stop-motion energy. | Accent | | Watercolor | Hand-drawn ink illustrations with loose watercolor fills. | Full | | Whiteboard Explainer | Dry-erase marker drawings on a clean white whiteboard. | None | ## Styles that draw their visuals [#styles-that-draw-their-visuals] Whiteboard Explainer, Blueprint, Chalkboard, Crayon, and Sketch draw each visual on their own canvas. In the [video editor](/docs/help/video-editor#edit-visuals), those visuals have no **Reframe** option and no zoom effect control. # Cancel your subscription and what happens next (/docs/help/account-and-billing/canceling-your-subscription) Cancellation is self-serve in Jellypod, with no Stripe billing portal step. Only organization admins (or members with billing permission) can open the billing page. For other billing topics, see [Account and Billing](/docs/help/account-and-billing). ## How to cancel [#how-to-cancel] 1. Go to **Settings > Usage & Billing**. 2. At the bottom of the page, in the **Cancel my subscription** card, click **Cancel Subscription**. 3. Choose a reason and click **Continue to Cancel**. Some reasons show a discount offer first: choose **Apply discount and stay** to keep your plan, or **No thanks, continue cancelling**. 4. Tick the acknowledgement checkbox and click **Confirm Cancellation**. If you only want a lower price or fewer credits, [downgrade instead](/docs/help/account-and-billing/managing-your-subscription). If a failed charge sent you to a Payment Issue screen, cancel or restart from [Payment Issues](/docs/help/account-and-billing/payment-issues), where canceling takes effect immediately. ## What happens after you cancel [#what-happens-after-you-cancel] * Access to your plan’s features continues until the end of your current billing period. A note on the subscription card shows the end date. * When the period ends, your organization returns to Free unless another active plan applies. You can browse Studio and listen to existing content, but generating, saving, editing, publishing, and exporting require an active plan, even if you hold purchased credits. See [Free exploration](/docs/help/account-and-billing/plans-and-pricing#free-exploration). * Unused plan credits from this subscription expire. Purchased top-up credits are not lost and are kept for if you resubscribe. An active Educator credit grant is unaffected and keeps renewing on its own schedule. See [Free Educator plan](/docs/help/account-and-billing/educator-plan#upgrading-during-your-educator-offer). * Your podcasts are removed from third-party platforms such as Spotify. * Automations are paused. * Your podcasts and episodes are not deleted. See [content ownership and rights](/docs/help/account-and-billing/content-ownership-and-rights). To end a scheduled cancellation immediately, click **Cancel Now** in the card, which then reads **Cancel my subscription now**. You lose access to paid creation features right away and forfeit the rest of the paid period. Free Studio exploration remains available. This cannot be undone. Canceling does not delete your account. To remove your team and data, see [Deleting Your Account](/docs/help/account-and-billing/deleting-your-account). ## Canceling during the free trial [#canceling-during-the-free-trial] During a trial the card reads **Cancel my trial** with a **Cancel Trial** button. Your trial then ends on its scheduled date and you are not charged. Click **Resume Trial** before that date to undo it. Trial length, caps and eligibility are covered in [Free trial](/docs/help/account-and-billing/plans-and-pricing#free-trial). ## Resubscribing [#resubscribing] **Before the period ends:** click **Update Subscription** on the Usage & Billing page and choose a plan. **After the period ends:** you can still sign in and explore Studio for free. Open **Settings > Usage & Billing**, click **Update Subscription**, and choose a plan to resume creating. You can pick any tier, not only your previous one. If Stripe cancelled the subscription after a failed payment, follow the Restart subscription steps in Payment Issues instead. ## Invoices after canceling [#invoices-after-canceling] Past invoices stay available, as described in [Viewing Invoices](/docs/help/account-and-billing/viewing-invoices). ## Can't find the cancel button [#cant-find-the-cancel-button] The **Cancel my subscription** card appears only while a subscription or trial can still be canceled, and only on the billing page for users with billing permission. If you don't see it, check that you have the Admin role. If you think you were charged in error, open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Content ownership, commercial use and AI disclosure (/docs/help/account-and-billing/content-ownership-and-rights) You own the rights to your output: episodes, scripts, audio, and video. Jellypod does not train AI models on your inputs, and you don't need to credit Jellypod when you publish. Output can be the same or similar to what other users get, and you own only your own. For the billing side of your account, see [Account and Billing](/docs/help/account-and-billing). You are responsible for having the rights to anything you upload, including a third party's voice. ## Commercial use [#commercial-use] If you use Jellypod through a paid subscription, you may use output commercially: monetize, distribute, or sell it. If you use it free of charge, including a free plan or free trial, use is non-commercial only. Details are in the [Terms of Service](/terms). ## After you cancel [#after-you-cancel] Your podcasts and episodes are not deleted when you [cancel your subscription](/docs/help/account-and-billing/canceling-your-subscription), though distribution to Spotify and other platforms stops. [Download your audio and video](/docs/help/podcasts-and-episodes/downloading-video-and-audio) before you cancel. [Deleting your account](/docs/help/account-and-billing/deleting-your-account) removes the team and all its content. ## AI disclosure [#ai-disclosure] Jellypod output is AI-generated, including synthetic voices, AI-generated hosts or personas, and AI-generated video. Platforms you distribute to and applicable law may require you to disclose this. [Apple Podcasts](/docs/help/publishing-and-distribution/distributing-to-podcast-apps#apple-podcasts) requires disclosure in both the content and the metadata of each show and episode. You are responsible for making and maintaining every required disclosure. Platforms may label, restrict, or remove content and may suspend accounts, including accounts Jellypod holds on your behalf. If Jellypod adds a disclosure to your content, feed, or metadata, you may not remove or disable it, and it does not replace your own obligations. # Delete your account (team): steps and what is deleted (/docs/help/account-and-billing/deleting-your-account) Deleting your account deletes the whole team (organization), not just you. It cannot be undone. For other account topics, see [Account and Billing](/docs/help/account-and-billing). To stop paying but keep your content, [cancel your subscription](/docs/help/account-and-billing/canceling-your-subscription) instead. ## Before you delete [#before-you-delete] * Download your episodes, audio, video and transcripts: see [Downloading video and audio](/docs/help/podcasts-and-episodes/downloading-video-and-audio). * Export your credit usage from **Settings > Usage & Billing**: see [Viewing invoices](/docs/help/account-and-billing/viewing-invoices). * A new free trial is not guaranteed after deleting: see [trial eligibility](/docs/help/account-and-billing/plans-and-pricing#free-trial). ## Deleting your team and what gets deleted [#deleting-your-team-and-what-gets-deleted] Only the **Admin** role can delete the team (see [Roles and permissions](/docs/help/teams-and-collaboration/roles-and-permissions)). 1. Go to **Settings > General**. The red **Delete Account** alert appears for admins only. 2. Click **Go to Team Settings**, which opens **Settings > Team**. 3. In the **Delete Team** alert, click **Delete Team**. 4. Type `DELETE` to confirm, then click **Delete Account**. Deleting the team removes: * Every user in the organization, and all their active sessions on every device. * All podcasts, episodes, characters, sources and media, along with your credits and credit history. * Your subscription, which is cancelled immediately with no refund for any unused portion. * Your RSS feed. Jellypod stops serving it, so directories such as Spotify and Apple Podcasts will eventually drop the listing. You are signed out and sent to the Jellypod website. If a step fails partway, you are told to sign in and try again, and the deletion resumes. ## Members [#members] Members cannot delete the organization. Ask an Admin to remove you with **Remove from team** in the members list at **Settings > Team**. Your teammates and content stay. For sessions and other security settings, see [Profile and security](/docs/help/account-and-billing/profile-and-security). # Free Educator plan: who qualifies and how to get it (/docs/help/account-and-billing/educator-plan) Teachers and faculty get six free months of the Educator plan, with 3,000 credits each month. This page covers eligibility and how the plan is granted. For other plans, see [Account and Billing](/docs/help/account-and-billing). ## How to get it [#how-to-get-it] Pick **Educator / Faculty** as your role during sign-up. With an eligible school email, click **Activate free education plan** and the plan starts immediately, with no credit card. The plan is not offered on the pricing page or in subscription settings, and it is a one-time offer per organization. ## Who qualifies [#who-qualifies] | Qualifies | Does not qualify | | ------------------------------------------------------------------------------ | -------------------------------------------------------------- | | School or university addresses such as `.edu` or `.ac.uk` | Any address ending in `.com`, including school domains | | Other institutional domains that are not `.com` and pass screening (see below) | Government domains (`.gov`, `.gov.uk`, `.govt.nz` and similar) | | | Personal or consumer email and disposable addresses | | | An organization that has already used the plan | If you do not qualify, choose **Skip and continue** to explore Studio for free. When ready to create, choose a plan or start the 7-day free trial if you are trial-eligible (see [free trial](/docs/help/account-and-billing/plans-and-pricing#free-trial)). ## What screening does [#what-screening-does] Institutional domains that are not obviously academic are screened automatically: * **Declined immediately:** a clear business, a for-profit company that sells education (test prep, tutoring, bootcamps, ed-tech vendors), or a public body that is not a school (a health authority or hospital, a council, a ministry or agency, police, a public library or museum). No manual review follows. * **Held for review:** a domain that cannot be identified either way. You can explore Studio for free while you wait, or start an eligible trial or subscription to create right away. Once support confirms your school, your organization is switched to the Educator plan. Reviews have no promised reply time. Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). ## What is included [#what-is-included] Educator has the Starter plan's limits but with 3,000 monthly credits instead of 5,000. Credit top-ups are available. [How credits work](/docs/help/getting-started/understanding-credits). Educator does not include: * [Distribution to Spotify, Apple Podcasts and YouTube](/docs/help/publishing-and-distribution/distributing-to-podcast-apps), which is available on Starter, Creator, Business and Enterprise. * API access and API keys. * Custom watermarks and logos. * Removal of Jellypod branding. * Custom domains. ## Upgrading during your Educator offer [#upgrading-during-your-educator-offer] Upgrade to a paid plan at any time and keep your 3,000 free Educator credits each month alongside the paid plan's credits for the rest of your Educator offer. For example, Starter includes 5,000 monthly credits, so you receive 8,000 credits per month while both are active. Upgrading does not extend the Educator offer or change when its credits renew. Once the offer ends, you continue receiving your paid plan's credits. ## When the six months end [#when-the-six-months-end] The plan expires six months after activation. If you have already upgraded, your paid plan continues. Otherwise, to keep creating and publishing, the organization then needs a subscription: see [managing your subscription](/docs/help/account-and-billing/managing-your-subscription). Organizations that activated under the earlier term keep the expiry date they were given. # Account, plans and billing: where everything is (/docs/help/account-and-billing) Open **Settings** from your avatar menu at the bottom-left of the sidebar. Tabs you lack permission for are hidden. ## Settings tabs [#settings-tabs] | Tab | What it holds | | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **General** | Your **Profile** and security, **Devices & Sessions**, **Privacy preferences**, and **Import PVC from ElevenLabs**. Admins also see a **Delete Account** alert that links to **Settings > Team**. See [Profile and security](/docs/help/account-and-billing/profile-and-security). | | **Team** | Members, roles, team name and **Delete Team**. See [team settings](/docs/help/teams-and-collaboration). | | **Usage & Billing** | Credit balance, **Purchase Credits**, **Invoice History** and cancellation. Shown to admins and members with billing permission. | | **Exports** | Your render history. See [Exports tab](/docs/help/podcasts-and-episodes/downloading-video-and-audio#exports-tab). | | **Notifications** | **Email Notifications**. | The **Developers** page (sidebar footer) has **Overview**, **API Keys** and **Integrations** tabs. **API Keys** appears only for admins and members allowed to manage keys. ## Plans and credits [#plans-and-credits] * [Plans and pricing](/docs/help/account-and-billing/plans-and-pricing): what each plan includes, its limits and the free trial. * [Free Educator plan](/docs/help/account-and-billing/educator-plan): who qualifies and how to get it. * [Understanding credits](/docs/help/getting-started/understanding-credits): what actions cost. * [Credit top-ups](/docs/help/account-and-billing/purchasing-credit-top-ups): buy more credits mid-cycle. ## Subscription [#subscription] * [Managing your subscription](/docs/help/account-and-billing/managing-your-subscription): change plan. * [Canceling your subscription](/docs/help/account-and-billing/canceling-your-subscription): what happens to access and credits. * [Payment issues](/docs/help/account-and-billing/payment-issues): failed or declined payments. * [Viewing invoices](/docs/help/account-and-billing/viewing-invoices): download past invoices. ## Account [#account] * [Notification preferences](/docs/help/account-and-billing/notification-preferences): choose which emails you get. * [Content ownership and rights](/docs/help/account-and-billing/content-ownership-and-rights): who owns what you create. * [Affiliate Program](/docs/help/account-and-billing/referral-program): earn by referring others. * [Deleting your account](/docs/help/account-and-billing/deleting-your-account): remove your team and its data. Still stuck? Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Change your plan or switch between monthly and annual (/docs/help/account-and-billing/managing-your-subscription) Plan changes live in **Settings > Usage & Billing**, part of [Account and Billing](/docs/help/account-and-billing). You can also open it from your avatar menu (**Billing & Usage**). Only members with billing permission (typically the **Admin** role) see the tab. Everyone else sees "You do not have permission to manage billing". ## View your subscription [#view-your-subscription] The **Subscription Details** card shows: * **Plan name**, price and next renewal date (**Renews**, or **Access until** if a cancellation is scheduled, or **Trial ends** during a trial). * **Credits Balance**, with an info button explaining how credits work. See [Understanding credits](/docs/help/getting-started/understanding-credits) for balance and expiry. * **Current Period**: start and end dates, and whether billing is monthly or yearly. If a cancellation is scheduled, the card says when the subscription ends and what you lose. To stop that instead, see [Canceling your subscription](/docs/help/account-and-billing/canceling-your-subscription). ## Upgrade or downgrade [#upgrade-or-downgrade] Click **Update Subscription** on the card, pick a plan, and confirm. The billing portal shows the charge before you confirm. To compare plans and limits first, see [plan comparison](/docs/help/account-and-billing/plans-and-pricing#plan-comparison). If you only need more credits, [buy a top-up](/docs/help/account-and-billing/purchasing-credit-top-ups) instead of changing plan. Tip: compare the **Credit Usage** chart lower on the page with what each plan includes before you upgrade. ## Switch between monthly and annual [#switch-between-monthly-and-annual] The plan picker has a **Monthly / Annual** toggle. Your options depend on your current billing interval. | You are on | You want | How | | ---------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Monthly | Annual, same plan | Toggle **Annual** in **Update Subscription** and confirm. | | Annual | Monthly, higher plan | Choose the higher plan on the **Monthly** toggle in **Update Subscription**. | | Annual | Monthly, same plan | Click **Edit Billing** to open the billing portal and confirm there. The prorated charge is shown first. | | Annual | Any lower plan, monthly or annual | Not self-service, and the change fails with an error (moving to monthly shows "Contact billing support to change this plan"). Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). | ### The annual banner [#the-annual-banner] Eligible monthly subscribers (billing permission, no cancellation scheduled) see a banner at the top of Studio with the yearly saving. It is hidden on the Usage & Billing page, which has a **Switch to Annual** card instead. * **Switch to annual** opens a dialog with the amount due today and your new renewal date. The switch completes there, with no billing portal. * **Keep monthly** or the close button hides the banner for 90 days for your whole team. The **Switch to Annual** card stays available. ## Change plans during a free trial [#change-plans-during-a-free-trial] Selecting any plan during a trial, including the one you are trialing, ends the trial and charges your card on file. A **Confirm your updates** dialog shows the price first. Trial limits lift right away, so this is also how you convert early. The plans page lists the trial limits. You keep your unused trial credits when you subscribe. Your paid plan's monthly credits are added on top of the remaining trial balance. Trial credits keep their original expiry date, one month after your originally scheduled trial end date, even if you subscribe early. To see what you were charged, open [Viewing invoices](/docs/help/account-and-billing/viewing-invoices). # Email notification preferences and unsubscribing (/docs/help/account-and-billing/notification-preferences) Go to **Settings** > **Notifications** to manage your email preferences. This page is part of [Account and Billing](/docs/help/account-and-billing). ## Email categories [#email-categories] Four categories can each be turned on or off: * **Getting Started:** onboarding tips. * **Product Updates:** new features and improvements. * **Tips & Tutorials:** guides and best practices, plus the activity emails below. * **Offers & Promotions:** discounts and special offers. ### Activity emails [#activity-emails] Jellypod sends at most one activity email per day, picked from: * A celebration when your podcast crosses an audience milestone. * A nudge to finish a draft episode that has sat for about two days. * A monthly recap of your plays and published episodes. * A re-engagement email after 30 days without a completed render or published episode. The draft nudge needs an active or trialing subscription. The monthly recap and re-engagement emails need an active paid subscription. Turning off **Tips & Tutorials** stops all of them. Jellypod also sends a separate, one-time email asking you to review Jellypod on G2, outside the daily cap above, once you've created 10 or more episodes or videos as a paid subscriber for at least 30 days. It's part of **Tips & Tutorials** too. ## Unsubscribe from all marketing [#unsubscribe-from-all-marketing] Marketing emails include a link to a preferences page with an **Unsubscribe from all** button. It stops every marketing category at once, and you can turn categories back on there or in **Settings** > **Notifications** at any time. ## Transactional emails [#transactional-emails] Account, billing, and security emails are required and cannot be turned off. They include password resets, team invitations, and billing receipts (see [Viewing Invoices](/docs/help/account-and-billing/viewing-invoices) and [Profile and Security](/docs/help/account-and-billing/profile-and-security)). Unsubscribing from marketing never stops them. ## New episode emails [#new-episode-emails] The **New episode emails** toggle controls whether you personally get the "episode is now live" and "episode scheduled" emails. Turn it off to stop both across all your Podcasts. To stop them for one Podcast and its team, open the Podcast's editor, click **Advanced**, turn off **New episode emails**, then click **Save Changes**. See [Advanced settings](/docs/help/podcasts-and-episodes/editing-podcast-details#advanced). While your personal toggle is off, the per-Podcast toggle is disabled unless it is already on. # Payment failed: fix your card and restore access (/docs/help/account-and-billing/payment-issues) When a subscription charge fails, your organization keeps Free, browse-only access to Studio (see [Free exploration](/docs/help/account-and-billing/plans-and-pricing#free-exploration)), with a warning banner at the top of every page. The banner and the payment-failed email open Stripe's payment flow directly; the credits button in the Studio header switches to **Update payment method** and opens the **Payment Issue** screen instead. Which options you see there depends on whether the subscription is paused or already cancelled. For other billing topics, see [Account and Billing](/docs/help/account-and-billing). ## Why did my payment fail? [#why-did-my-payment-fail] Stripe could not charge the card on file. Common causes are a declined or expired card, insufficient funds, or a bank that requires extra authentication (3D Secure). Your bank can tell you the exact reason. There are two states: * **Paused.** A renewal payment failed. The subscription is not cancelled, and Stripe keeps retrying on its own schedule. Fix the payment method (below) to restore access. * **Cancelled.** Either a free trial's first paid charge failed, or a renewal stayed unpaid until Stripe's retries were exhausted. Stripe cancels the subscription, and you restart it (see [Restart subscription](#restart-subscription)). The retry schedule is set in Stripe, so no timeline is published here. Payment emails go to the team's admins. If you are not an admin, ask one to fix the payment method. Open invoices and receipts are in [Viewing Invoices](/docs/help/account-and-billing/viewing-invoices). ## Update payment method [#update-payment-method] Click **Update payment** in the warning banner at the top of any Studio page, or **Update Payment Method** in the payment-failed email. Both open Stripe directly. You can also go through the **Payment Issue** screen (heading **Your payment didn't go through**), reached from the credits button in the Studio header once it switches to **Update payment method** while the subscription is paused, or by navigating to it directly. 1. On the Payment Issue screen, click **Update payment method**. 2. Stripe opens the unpaid invoice if there is one, or a card-update form if not. 3. Pay the invoice or add a new card. You return to the Studio and full access resumes right away. Once the subscription is cancelled, the banner no longer appears. Click **Restart My Subscription** in the subscription-ended email to open the Payment Issue screen. After access is back, you can [change your plan](/docs/help/account-and-billing/managing-your-subscription) if the old one no longer fits. ## Restart subscription [#restart-subscription] When Stripe has cancelled the subscription, the Payment Issue screen shows **Your subscription was cancelled** with a **Restart subscription** button. The "Your subscription has ended" email has a **Restart My Subscription** button that goes to the same screen. 1. Click **Restart subscription**. This opens a new checkout on the plan you were last on. If that plan is no longer sold, you go to the plan picker instead. To pick a different plan, click **Choose a different plan**. 2. Checkout charges your card immediately. Restarting does not start a new free trial if you have already used one. 3. When checkout completes, you return to the Studio. Your podcasts, episodes and settings are preserved, but a cancelled subscription has consequences that a paused one does not: RSS feeds are disabled and unused plan credits expire. Credits you bought as top-ups are not lost. See [Understanding Credits](/docs/help/getting-started/understanding-credits). If you cancelled on purpose and want to come back, see [resubscribing](/docs/help/account-and-billing/canceling-your-subscription#resubscribing). ## Will I lose my podcasts? [#will-i-lose-my-podcasts] Not while the subscription is paused. Your podcasts and episodes stay online, and unused plan credits are held until the payment issue is resolved. If the subscription is cancelled, your content is kept but feeds are disabled until you restart (see above). ## Can I cancel from the Payment Issue screen? [#can-i-cancel-from-the-payment-issue-screen] Yes, while the subscription is paused. Click **Cancel subscription instead**. A **Keep your subscription?** dialog offers **Update payment method** as an alternative, next to a **Cancel subscription** button. The option is not shown once Stripe has already cancelled the subscription. Canceling here takes effect **immediately**, unlike a normal cancellation that runs to the end of the billing period. Access to paid creation features ends now. Free Studio exploration remains available, but unused plan credits expire and podcasts are removed from third-party platforms like Spotify. Purchased top-up credits are not lost. To cancel with access until the period ends, use the normal cancellation steps. ## Still stuck? [#still-stuck] Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Jellypod plans, limits and free trial (/docs/help/account-and-billing/plans-and-pricing) This page lists what each plan includes. For prices, see the [Pricing page](/pricing). To change plan or billing interval, see [Managing Your Subscription](/docs/help/account-and-billing/managing-your-subscription). For the rest of billing, see [Account and Billing](/docs/help/account-and-billing). Annual billing shows 2 months free in the plan picker. ## Free exploration [#free-exploration] Sign up and explore Studio for free without a payment method. Choose **Skip and continue** during onboarding to explore before choosing a plan. You can browse voices and characters, upload, process and manage [Sources](/docs/help/sources/what-are-sources), prepare drafts, explore creation settings, and view and play existing content. Generating or saving new content, editing existing content, publishing, and exporting require an eligible [7-day trial](#free-trial) or a plan that includes those features. Free exploration does not include generation credits. Account and billing tasks, including **Update Subscription**, stay available. Free exploration also remains available after a subscription ends through [cancellation](/docs/help/account-and-billing/canceling-your-subscription) or a [payment failure](/docs/help/account-and-billing/payment-issues). ## Plan comparison [#plan-comparison] | | Starter | Creator | Business | Enterprise | | --------------- | ------- | ------- | ----------- | --------------- | | Monthly credits | 5,000 | 11,000 | 30,000 | Set by contract | | Seats | 1 | 2 | 5 | No plan cap | | Voice clones | 2 | 8 | 20 | 100 | | Automations | 2 | 10 | No plan cap | No plan cap | Credits are granted monthly. See [Understanding Credits](/docs/help/getting-started/understanding-credits) for what they cost, how they roll over and when they expire. Top-ups are covered in [Purchasing Credit Top-Ups](/docs/help/account-and-billing/purchasing-credit-top-ups). Features by plan: * Platform distribution: Starter, Creator, Business and Enterprise. * Scheduled publishing: Starter, Creator, Business and Enterprise. * MCP connector: Starter, Creator, Business and Enterprise. * API access: Creator, Business and Enterprise. * Credit top-ups: Starter, Creator, Business, and Enterprise. * Custom watermark and logo: Creator, Business, and Enterprise. * Jellypod branding removed (podcast website, RSS feed and embed player): Creator, Business, and Enterprise. It stays on Starter. * Custom domains: Business and Enterprise. * SSO: Enterprise. ## Plan limits [#plan-limits] | Plan | Monthly credits | Podcast episodes | Voiceovers | Shorts and Videos | AI characters | Brand kits | | ---------- | --------------- | ---------------- | ----------- | ----------------- | ------------- | ----------- | | Starter | 5,000 | 60 min | 20 min | 15 min | 10 | 1 | | Creator | 11,000 | 60 min | 30 min | 20 min | No plan cap | No plan cap | | Business | 30,000 | 60 min | 60 min | 25 min | No plan cap | No plan cap | | Enterprise | Set by contract | No plan cap | No plan cap | 25 min | No plan cap | No plan cap | Choosing a Short, Video or Voiceover length above your plan's cap opens an upgrade dialog instead of selecting it. Duration presets and defaults are covered in [Video Creation Settings](/docs/help/video-creation-settings#duration). ### How long can my episodes and voiceovers be? [#how-long-can-my-episodes-and-voiceovers-be] Podcast episodes can run up to 60 minutes on Starter, Creator, and Business. Enterprise has no plan cap on episode length. No episode can exceed 75 minutes on any plan. Voiceover length is capped at 20 minutes on Starter, 30 on Creator, and 60 on Business. Enterprise has no plan cap. See [Voiceovers](/docs/help/voiceovers) for durations and the Auto option. Shorts and Videos use their own cap, separate from episode length. Podcast episodes do not use it. ### How many characters can I create? [#how-many-characters-can-i-create] Starter organizations can keep up to 10 AI characters. Creator, Business, and Enterprise have no plan cap. The limit only blocks creating new characters. Characters you already have stay usable if a downgrade leaves you over the cap. See [Characters and Voices](/docs/help/characters-and-voices). ### How many brand kits can I create? [#how-many-brand-kits-can-i-create] Starter has 1 [brand kit](/docs/help/brand-kits), and Creator, Business, and Enterprise have no plan cap. Creating another kit at your limit opens an upgrade dialog. ## Free trial [#free-trial] New subscriptions start with a 7-day free trial when you are eligible. You need a payment method to start the trial, and the trial converts to the plan you selected after 7 days unless you cancel. To cancel during a trial, see [Canceling Your Subscription](/docs/help/account-and-billing/canceling-your-subscription). Trials are capped at 5 episodes and 10 Shorts, Videos and Voiceovers combined across your organization, separate from your trial credits. If you reach either cap, Jellypod opens a subscription dialog with your selected plan so you can subscribe and keep creating. The caps lift once you subscribe. Selecting any plan during a trial ends it and charges the card on file. To convert early, use **Update Subscription** on the billing card. ### Do unused trial credits carry over when I subscribe? [#do-unused-trial-credits-carry-over-when-i-subscribe] Yes. You keep your unused trial credits, and your paid plan's monthly credits are added on top of the remaining trial balance. Trial credits keep their original expiry date, one month after your originally scheduled trial end date, even if you subscribe early. ### Why was I not offered a free trial? [#why-was-i-not-offered-a-free-trial] Common reasons: * You selected the **Student** role during sign-up. Students pay up front. * Your email address already started a trial in the last 90 days. Eligibility follows the address, not the organization, so deleting your account and signing up again does not give a second trial. Plus-aliases (such as `name+test@example.com`) and dotted variants on Gmail addresses count as the same address. * Your organization has had a subscription before. * Trials may not be available in every country or region, or with every email address (disposable addresses do not qualify). You can still explore Studio for free or subscribe directly to a plan without a trial. Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Profile and security: password, 2FA and active sessions (/docs/help/account-and-billing/profile-and-security) Personal login settings live in **Settings** > **General**, under **Profile** and **Devices & Sessions**. They belong to your own login, not the team. For team-wide settings, see [Account and Billing](/docs/help/account-and-billing). To reach Settings from the sidebar, see the [account menu](/docs/help/getting-started/navigating-the-studio#account-menu). ## Update your profile, password and two-factor authentication [#update-your-profile-password-and-two-factor-authentication] The **Profile** card shows your account information and security settings: your name, email address, password and two-factor authentication. Which of these you can edit can depend on how you sign in, including through [single sign-on](/docs/help/teams-and-collaboration/sso-setup). Email notifications are set separately in [Notification preferences](/docs/help/account-and-billing/notification-preferences). ## Log out devices you don't recognize [#log-out-devices-you-dont-recognize] The **Devices & Sessions** card lists devices currently logged into your account. Revoke any session you don't recognize to log that device out. Review your sessions regularly, especially if you use Jellypod on shared or public computers. ## Delete your account [#delete-your-account] Account deletion is handled from Team settings, and only Admins see it on the General page. See [Deleting your account](/docs/help/account-and-billing/deleting-your-account). ## Troubleshooting [#troubleshooting] * **Can't change your email or password, forgot your password, or lost your two-factor device:** Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Buy extra credits: top-ups, price and minimum (/docs/help/account-and-billing/purchasing-credit-top-ups) Top-ups add credits to your balance without changing your plan or renewal. They cost $10 per 1,000 credits, with a minimum of 1,000. See [How credits are consumed](/docs/help/getting-started/understanding-credits#how-credits-are-consumed) for what generations cost. ## Who can buy [#who-can-buy] You need billing permission (typically the **Admin** role). Top-ups are available on Starter, Educator, Creator, Business and Enterprise (including during a trial). Without an active subscription, the **Purchase Credits** button is disabled and the card says "Subscribe to a plan to purchase credits." Other members see "You do not have permission to manage billing" in Usage & Billing (part of [Account and Billing](/docs/help/account-and-billing)). ## Buy credits [#buy-credits] 1. Go to **Settings > Usage & Billing** and find the **Purchase Credits** card. 2. Under **Choose quantity**, pick **1,000**, **2,000**, **5,000**, **10,000** or **20,000**, or pick **Other** and type an amount. 3. Check **Current balance**, **New credits**, **New balance** and **Total**. 4. Click **Purchase Credits**. Custom amounts must be multiples of 1,000, and other values round up to the next 1,000. If you have a card on file, it is charged right away and the credits appear in your balance. If there is no saved card, or the card is declined or needs extra authentication, you finish through Stripe checkout instead. If the payment is still processing, the credits arrive when it settles. Your receipt is in [Viewing Invoices](/docs/help/account-and-billing/viewing-invoices). ## How top-up credits behave [#how-top-up-credits-behave] * Top-ups are one-time purchases and never expire. * They are spent after your plan's monthly credits. * They stay in your account if your subscription ends, for if you resubscribe. If you top up often, [a higher plan](/docs/help/account-and-billing/managing-your-subscription) includes more monthly credits. # Jellypod affiliate program: commission and payouts (/docs/help/account-and-billing/referral-program) The affiliate program (see [Account and Billing](/docs/help/account-and-billing) for other billing topics) pays you **30% of what each person you refer actually pays**, on every invoice, for up to **12 months**. Discounts and proration are already reflected because the commission is calculated on the amount paid. Sign-ups alone earn nothing: commission starts when a referral subscribes and pays. See [plans and pricing](/docs/help/account-and-billing/plans-and-pricing) for plan details. ## How to join [#how-to-join] Applications are reviewed, so you earn only after approval. Either: * Open the account menu in the Studio sidebar and click **Affiliate Program** (see [the account menu](/docs/help/getting-started/navigating-the-studio#account-menu)). * Or go to [partners.dub.co/jellypod](https://partners.dub.co/jellypod). Once approved, you get a unique partner link. Only sign-ups through your link qualify, so share that link. ## How you get paid [#how-you-get-paid] Referrals, earnings, and payouts are managed in the Dub partner portal. Under the [affiliate terms](/affiliate-terms), commissions are released after the subscriber has been active for over 30 days, paid monthly through a third-party service, and may be subject to a minimum payout threshold. ## What referred users get [#what-referred-users-get] Referred users do not need to claim or redeem anything. If your referral comes with a discount, they see a referral discount banner when they subscribe, limited to the first months of the subscription. For questions about your application or payouts, see [Get help and support](/docs/help#get-help-and-support). # Download invoices and usage data (/docs/help/account-and-billing/viewing-invoices) Invoices and credit usage live in **Settings**, on the **Usage & Billing** tab (see [Account and Billing](/docs/help/account-and-billing) for the rest of your account). Only members with billing permission (the Admin role, or the `billing:manage` permission) can open it. Everyone else sees "You do not have permission to manage billing." ## Invoices [#invoices] **Invoice History** lists each invoice with its number, date, amount, and status (Paid, Open, Void, Uncollectible, Draft, or Refunded). Click **Download** on a row to save the PDF. The table shows 10 invoices per page. Before your first billing cycle it shows "No invoices yet." **View All** opens the Stripe billing portal for your full invoice history. If a payment failed, see [Payment failed: fix your card and restore access](/docs/help/account-and-billing/payment-issues). ## Invoices after canceling [#invoices-after-canceling] If your organization has billed before, the plan picker you see after canceling has a **Manage billing** button (for members with billing permission). It opens the Stripe billing portal so you can get past invoices and receipts without [resubscribing](/docs/help/account-and-billing/canceling-your-subscription#resubscribing). ## Download credit usage data [#download-credit-usage-data] **Credit Usage** shows a daily bar chart of credits used. Change the range with the period picker. To download the data, click **Export**, pick a date range (or check **All time**), choose CSV or JSON, and click **Download**. The file includes balance refills as well as usage. CSV columns are Date, Old Credits, Credit Change, and New Credits. JSON contains the same transactions. For what the transactions mean, see [Understanding credits](/docs/help/getting-started/understanding-credits). Render history for episodes and clips is a different tab: see [Exports tab](/docs/help/podcasts-and-episodes/downloading-video-and-audio#exports-tab). # Voice Library: search, preview and pick a voice (/docs/help/characters-and-voices/browsing-the-voice-library) ## Where to find the Voice Library [#where-to-find-the-voice-library] The Voice Library lists 3,300+ professional AI voices across 121 languages. Click **Voices** in the Studio sidebar (see [Characters and Voices](/docs/help/characters-and-voices)). It also appears in the voice step when you [create a character](/docs/help/characters-and-voices/creating-a-character) manually or edit one and choose **Voice Library** as the voice type. Each voice is tuned to one language and accent, so filter by the language your content will be in. See [how languages and accents work](/docs/help/characters-and-voices/using-accents-and-languages). Instead of the Library, you can [clone your own voice](/docs/help/characters-and-voices/voice-cloning) with **Create Voice Clone** at the top of the Voices page, or [bring in voices from ElevenLabs](/docs/help/characters-and-voices/importing-elevenlabs-voices). ## Browse the Voices page [#browse-the-voices-page] The top of the Voices page always shows two ways in, whether or not you have searched or filtered below: * **Top voices for you:** six hosts, narrators and presenters in your language, each labeled with its accent and gender. Press a voice's avatar to hear it, or anywhere else on the card to start a Character with it. * **Hand-Curated Voice Collections:** hand-picked sets such as Warm co-hosts, Authoritative anchors and Story-driven narrators, with up to ten voices in each of their languages. An open collection shows one language at a time: it starts on your browser's language (or English when the collection has none in yours), and the language picker beside its search switches it. Below those, the **Browse** section holds a third way in: * **Browse:** pick a language at the top right, and every accent it is spoken in appears as its own tile, grouped by country, with countries heard in a single accent (Australia, New Zealand, South Africa) sharing an **Other** row. English lists the United States (American, New York, Southern US, Midwest and more), the United Kingdom (British, London, Liverpool, Welsh and more), Canada, India and others, plus second-language accents such as French, French Canadian, German, Italian, Dutch, Spanish, Mexican, Brazilian Portuguese, Japanese and Korean, each a voice that reads English with that accent (for example "English (French)"); Spanish lists Mexico, Latin America (Colombian, Argentine, Chilean) and Spain (Madrid, Barcelona); Japanese lists Japanese, Tokyo, Osaka and Fukuoka. A language with no regional accents, such as Dutch, shows all its voices in one tile. The page starts on your own language and puts your accent first. Click a collection or an accent to open its voices directly below it; its arrow turns to show it is open. Every open list has its own search. Click the collection or accent again, or the **x**, to close it. The page address records what is open, so you can bookmark or share it. ## What each row shows [#what-each-row-shows] * A painted avatar you click to play the voice, the voice's description, and its role and styles (for example Host · Warm, Friendly). * The language the voice is native in, with a flag and its accent in brackets where it has one, for example English (British), and the voice's gender beneath it (Other when the voice has none). * A heart to favorite the voice, and **Use voice** to start a new character with it. Lists show 20 voices a page (10 in an open list). Use the arrows under a list to move between pages. ## Search and filter [#search-and-filter] The search bar matches voice descriptions, languages, accents and tags (for example "conversational", "Spanish" or "British"). Languages also match by their own name, so "español" or "français" works too. Search combines with any filter you have set. To the right of the search bar: * **Language** appears when the library holds more than one language. * **Accent** appears when the voices on offer span more than one accent. Picking a language narrows it to that language's accents. An accent that no single flag stands for shows a globe. * The **Filters** button holds **Style** (Warm, Friendly, Clear, Narrative, Authoritative or Lively), **Gender** and **Favorites only**. On a phone, **Language** and **Accent** sit inside **Filters** as well. Under the search bar: * Format chips narrow to a kind of show: **Podcast hosts**, **Storytelling**, **Educational**, **News**, **Coaching and advice** and **Comedy**. Searching or filtering replaces the **Browse** section with the matching voices; **Top voices for you** and **Hand-Curated Voice Collections** stay in place above it. Click **Clear all** to go back to Browse. ## Preview, select and favorite [#preview-select-and-favorite] Click a voice's avatar to hear a sample. Only one voice plays at a time. Click **Use voice** on a row to start a new character with that voice. In the voice step of the character form, click anywhere on a row to select it, and the row highlights. Click the heart to favorite a voice. Favorites are saved to your account and show a filled heart. Use **Favorites only** under **Filters** to see just those. Once you have listened to a voice's preview, thumbs up and thumbs down buttons appear beside its name so you can rate it. A thumbs down also opens a dialog where you can describe what sounded off, which is optional and can be skipped. ## Automatic sorting [#automatic-sorting] The Library orders voices for you: favorites first, then voices in your browser's language, then the rest of the catalog. For languages split into regional accents, your country picks the accent when it agrees with your browser's language (American English for a US browser reading English, British English for a UK one). If it disagrees or your country is not recognized, the Library uses your browser's language tag for the accent, then no accent preference. ## Featured characters [#featured-characters] The **Explore** tab of the **Characters** page opens with a **Featured** row of up to eight ready-made characters, each with a name, backstory and voice already set. They speak your language, plus English, and never appear in a language you do not speak. Featured characters are separate from your workspace's default characters. Click a card to see its tagline, traits, best-for guidance and a voice sample, then click **Add to My Characters**. A character already in your workspace shows an **Added** badge, and its button reads **Character already exists**. At your plan's character limit, adding opens an upgrade dialog (**You've reached your character limit**). Archiving a character frees a slot. See [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits) for the cap on each plan. # Create a character with AI or manually (/docs/help/characters-and-voices/creating-a-character) Characters are reusable personas that fill host roles across your workspace (see [Characters and Voices](/docs/help/characters-and-voices)). To start, click **Characters** in the sidebar, then **New Character**. The **New Character** dialog offers two options. ## Generate with AI [#generate-with-ai] Describe your character in the text box (for example, "A warm, curious science educator who explains complex topics clearly"), then click **Generate character**. Jellypod writes the name, backstory, and personality, picks a voice, and opens the new character's page. ## Create Manually [#create-manually] Fill in the form: * **Avatar:** Optional. JPEG, PNG, GIF, or WebP, up to 10 MB. * **Name:** Required, up to 100 characters. * **Title (optional):** A short descriptor such as "Tech Journalist," up to 100 characters. * **Description:** Backstory and point of view, 10 to 3,000 characters. * **Personality (optional):** Communication style and traits. * **Voice:** Required. Select a row in the Voice Library list, which pages through voices five at a time. To search and preview first, see [Browsing the Voice Library](/docs/help/characters-and-voices/browsing-the-voice-library). Click **Create character** to save and open the character's page. The button stays disabled until the required fields are valid. The quick form only offers Voice Library voices. To use your own voice, clone it from the Voices page: see [Voice Cloning](/docs/help/characters-and-voices/voice-cloning). To change a character later, see [Managing Characters](/docs/help/characters-and-voices/managing-characters#edit-a-character). ## From the Voice Library [#from-the-voice-library] On the **Voices** page, click **Use voice** next to a voice (or the person-plus icon on a top-pick card). The manual form opens with that voice already selected and shown on its own, in place of the voice list. ## From a host picker [#from-a-host-picker] Host pickers for podcasts, episodes, videos, shorts, voiceovers, and automations have a **+** button (labeled **New Character**) beside the search field. It opens the same dialog without leaving what you're doing. Creating a character this way takes you to the new character's page and does not select it. Reopen the picker to choose it. The exception is the episode host picker's empty state. If you have no characters, it shows a **Create Character** button, and the character you create there is selected as an episode host right away. ## Character limit [#character-limit] Your plan sets how many AI characters you can keep, see [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits). At the limit, creating another character opens an upgrade dialog titled "You've reached your character limit". Archiving or deleting a character frees a slot. # Import an ElevenLabs Professional Voice Clone (/docs/help/characters-and-voices/importing-elevenlabs-voices) You can bring a Professional Voice Clone (PVC) from your own ElevenLabs account into Jellypod. The import creates a character with that voice, ready to use in episodes. See [Characters and Voices](/docs/help/characters-and-voices) for everything else you can do with characters. ## Before you start [#before-you-start] * The voice must be a **Professional Voice Clone**. Instant Voice Clones (IVCs) cannot be imported. To clone from samples instead, see [voice cloning](/docs/help/characters-and-voices/voice-cloning). * **Voice Sharing** must be turned on for the PVC in ElevenLabs. ## Import the voice [#import-the-voice] 1. In ElevenLabs, find your PVC under **My Voices**, click the **Share** icon, and turn on **Voice Sharing**. Copy the share URL. 2. In Jellypod, open **Settings**, find the **Import PVC from ElevenLabs** card, and click **Import ElevenLabs Voice**. 3. Paste the URL into **ElevenLabs Share URL**. 4. Optionally enter a **Name**. If you leave it blank, the character uses your account name. 5. Choose the **Dominant language**, the language the voice sounds most native in (defaults to English). See [what Dominant language does](/docs/help/characters-and-voices/using-accents-and-languages#dominant-language-and-host-warnings). 6. Enter a **Backstory** describing who the character is and how they speak. It is required. 7. Click **Create Character from PVC**. On success, a toast reads "Voice imported successfully" and the character appears under **Characters**. To change its details, see [managing characters](/docs/help/characters-and-voices/managing-characters). ## Limits and errors [#limits-and-errors] An imported voice counts against both your plan's voice clone limit and its character limit, so the import fails if either is full. Free up a slot or upgrade your plan. The form flags an invalid URL or an empty Backstory. Any other failure shows a **Failed to import voice** toast, and no character is created. Check that Voice Sharing is still on and the URL is complete, then try again. # Characters and voices: create, manage and choose voices (/docs/help/characters-and-voices) A character is a reusable persona with a name, identity, personality and voice. Characters are shared across your workspace, so one character can host your AI Podcasts, Magic Video, Shorts and Voiceovers. Each of those takes up to four hosts, and every narration paragraph names the host who speaks it. ## Default Characters [#default-characters] Every new workspace starts with two characters, assigned to your first podcast. You can edit their backstories, swap their voices, archive them or create your own at any time. Jellypod keeps a dedicated starter pair for each of its 121 supported languages, plus British and Australian English. It picks the pair for your signup accent when one exists, then for your browser's language, and otherwise falls back to the English pair. The English pair: * **Claire Brooks:** a sharp American character with firm editorial delivery who keeps the pace moving and makes complicated stories feel approachable. * **Marcus Hayes:** a warm American character who turns dense topics into plain-English stories, good for deep dives and explainers. British and Australian signups get their own pair instead: * **Theo Ashworth and Nell Harding** (British): Theo thinks out loud in an easy, warm tone; Nell keeps the conversation moving with a clear, confident delivery and isn't afraid to push back. * **Lachlan Reed and Tessa Brennan** (Australian): Lachlan brings a laid-back, punchy energy; Tessa keeps things plain and unhurried, checking in before moving on. ## Guides [#guides] * [Creating a character](/docs/help/characters-and-voices/creating-a-character): generate a character with AI or build one manually. * [Managing characters](/docs/help/characters-and-voices/managing-characters): edit, archive and delete characters. * [Browsing the Voice Library](/docs/help/characters-and-voices/browsing-the-voice-library): search, preview and favorite voices to pick one. * [Voice cloning](/docs/help/characters-and-voices/voice-cloning): clone a voice from uploaded or recorded audio samples. * [Importing ElevenLabs voices](/docs/help/characters-and-voices/importing-elevenlabs-voices): bring in an ElevenLabs Professional Voice Clone. * [Using accents and languages](/docs/help/characters-and-voices/using-accents-and-languages): create in 121 languages with matching accents. * [Pronunciation guide](/docs/help/characters-and-voices/pronunciation-guide): set custom pronunciations for names and technical terms. # Manage characters: edit, archive and delete (/docs/help/characters-and-voices/managing-characters) This page covers everything after you create a character. For the section overview, see [Characters and Voices](/docs/help/characters-and-voices); to make one, see [Creating a character](/docs/help/characters-and-voices/creating-a-character). ## The Characters page [#the-characters-page] Click **Characters** in the sidebar, then the **My Characters** tab. Each row shows the avatar and name, a backstory preview, a voice play button, the creation date and an actions menu. Click a row to open the character's detail page. The voice column shows one of these: * **Voice Clone:** the voice was cloned from audio samples. See [Voice cloning](/docs/help/characters-and-voices/voice-cloning). * **Guest Clone:** a cloned-voice character flagged as a guest. It becomes a regular **Voice Clone** when you promote an episode's hosts to the podcast's regulars. Clones recorded through a guest invite show **Voice Clone**. * The voice description, for Voice Library and designed voices. * **Voice unavailable:** the provider has withdrawn the voice (see [When a voice becomes unavailable](#when-a-voice-becomes-unavailable)). ## Search and filter [#search-and-filter] The search bar matches a character's name, backstory or voice (for example "British", "Female" or a word from a voice description). Search stays within the selected status but ignores the voice filters, so a standing filter never hides the character you are looking for. Click the **x** to clear the search. The **Filters** button holds **Status** and **Gender**. **Status** defaults to **Active**; choose **Archived** or **All** to include archived characters, which carry an **Archived** badge. **Gender** appears once your characters have more than one. Below the search bar, **Language** and **Accent** dropdowns and the voice-kind chips (**Voice clones**, **Designed**, **Library**) narrow by voice. Each appears only when it has something to choose between. They work like the filters in [Browsing the Voice Library](/docs/help/characters-and-voices/browsing-the-voice-library). ## Character details [#character-details] The **Character Details** page shows the avatar, name, title and backstory, plus these cards: * **Voice:** a play button to preview the voice. * **Active Podcasts:** the podcasts that use the character, when there are any. * **Personality Profile:** shown once the character has a personality. ## Edit a character [#edit-a-character] Open the actions menu (three dots) on the detail page or in the table, then select **Edit Character**. The same dialog used to [create a character](/docs/help/characters-and-voices/creating-a-character) opens pre-filled with the avatar, name, title, description, personality and voice. Change what you need, then click **Save changes**. Archived characters cannot be edited: unarchive first. Pick any Voice Library voice to change the character's voice. A character with a cloned voice keeps it unless you pick a library voice, and shows a **Voice style** setting: **More Consistent** stays closest to the recorded voice, **More Expressive** is more emotive and supports [audio tags](/docs/help/podcasts-and-episodes/audio-tags). To give a character a new cloned voice, create it from the Voices page: see [Voice Cloning](/docs/help/characters-and-voices/voice-cloning). ## Archiving or deleting a character [#archiving-or-deleting-a-character] 1. Open the actions menu on the detail page or in the table. 2. Select **Archive Character** or **Delete Character**. 3. Confirm with **Confirm Archive** or **Confirm Deletion**, or select **Cancel** to keep the character. The menu shows **Delete Character** for an unused character and **Archive Character** for one used in existing content. A character used in existing content can only be archived, not deleted. Archiving hides the character from the default **Active** view and from new character pickers, and keeps its scripts, media, podcast assignments and voice. Deleting an unused character is permanent and cannot be undone. To restore an archived character, set **Status** to **Archived** or **All**, then select **Unarchive Character** (also available on its detail page). It returns to **Active** and can be picked again. Unarchiving needs a free character slot on your plan and a voice that still exists. Archived characters do not use a slot. If you are at your plan's limit, archive or delete another character first, or see [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits). If the voice is gone, the unarchive fails with a message saying so. ## When a voice becomes unavailable [#when-a-voice-becomes-unavailable] Voice Library voices are occasionally withdrawn by their provider. Jellypod marks the voice unavailable when the provider reports it removed or when audio generation with it fails, so you never need to report it. Once marked unavailable: * The character shows a **Voice unavailable** badge on the Characters page, and its detail page shows a **Voice unavailable** alert above the voice card with a **Pick a new voice** link that opens **Edit Character**. * Character and host pickers show the character disabled with a **Voice unavailable** badge, so it cannot be added to new content. A podcast that already has the character keeps it, and you can still remove it from that podcast. * Starting generation with that character is blocked up front with a message asking you to pick a new voice, instead of failing partway. To fix it, click **Pick a new voice**, or edit the character and choose a new Voice Library voice or a fresh voice clone. # Pronunciation Guide: fix how hosts say names and terms (/docs/help/characters-and-voices/pronunciation-guide) The Pronunciation Guide tells your [characters](/docs/help/characters-and-voices) how to say names, brands and technical terms they get wrong. Rules apply to your whole workspace, across all podcasts and to Magic Video, Shorts and Voiceovers, and they take effect the next time audio is generated. ## How a rule works [#how-a-rule-works] Each rule holds one word or phrase and a pronunciation, written as one of two forms: * **Spelling:** the word written the way it sounds, like "keen-wah" for quinoa. * **IPA:** the same sound in the International Phonetic Alphabet, like "kiːnwɑː". Whichever form you write is the rule's source; Jellypod generates the other form from it. When audio is generated, Voices that read IPA get the IPA form and every other Voice gets the spelling. Rules you add in Studio match regardless of capitalization, match whole words only, and a longer match wins over a shorter one inside it (a rule for "York" doesn't touch "New York"). Adding or editing a rule only flags the lines that use its word as needing new audio, so the rest of your episode stays untouched. ## Where to find it [#where-to-find-it] Click **Pronunciations** in the sidebar for the full page. The same guide opens as a dialog from the **Pronunciations** button in the [script editor](/docs/help/podcasts-and-episodes/using-the-script-editor) and in the narration editor of the [video editor](/docs/help/video-editor#edit-narration). The table has four columns: **Word or Phrase**, **Pronunciation** (the form you wrote, with the generated form underneath), **Last Updated** and **Actions**. The first three sort. ## Add a pronunciation [#add-a-pronunciation] 1. Click **New Pronunciation**. 2. In **Word or Phrase**, enter the word to match, like "Quinoa". 3. Next to **Pronunciation**, choose **Spelling** or **IPA** and write it. For IPA, leave out the slashes. 4. Leave **Generate IPA for improved performance** on, or turn it off if the IPA form sounds wrong for this word. 5. Click **Add Pronunciation**. Saving takes a few seconds while Jellypod generates the other form. If that generation fails, the rule still saves with just the form you wrote. With **Generate IPA for improved performance** off, Jellypod skips the IPA form and every Voice reads your spelling instead, even Voices that otherwise read IPA. Turn it back on and save to have Jellypod derive the IPA form again. Write the word as it sounds when spoken naturally, with hyphens between syllables (for example, "acai" becomes "ah-sah-ee"). IPA is more precise if you know it. ## Preview a pronunciation [#preview-a-pronunciation] Click the speaker icon in the **Actions** column and pick a character from the searchable list. The preview uses the same form that character's Voice gets during generation, so a Voice that reads IPA plays the IPA form. Characters whose Voice is no longer available appear in the list but can't play a preview. ## Edit or delete a rule [#edit-or-delete-a-rule] Use the edit icon in **Actions**. The dialog opens on the form you originally wrote, with the generated form shown beneath it. Change that value, or switch to the other notation and write a new one to make it the source instead, then click **Save**. Jellypod regenerates the other form to match. If you only change the word, both forms stay as they are. **Generate IPA for improved performance** also toggles here; turning it off after a rule already has an IPA form keeps that form saved but unused. The delete icon removes a rule after you confirm. ## Troubleshooting [#troubleshooting] **A word is still mispronounced.** A new or edited rule doesn't change audio you have already generated. [Regenerate that block](/docs/help/podcasts-and-episodes/regenerating-individual-segments) with **Regenerate Audio**. If it still sounds wrong, rewrite the rule in the other notation (IPA for a tricky sound, or a simpler hyphenated spelling) and preview it with the character who speaks the line. **The IPA form sounds worse than the spelling.** Edit the rule and turn off **Generate IPA for improved performance**, then save. Every Voice uses your spelling instead; the rule's IPA form stays saved but unused, so you can turn it back on later. # Languages and accents: how episode language works (/docs/help/characters-and-voices/using-accents-and-languages) Jellypod supports 121 languages. The language of an episode and the language a voice is tuned for are two separate settings, and this page explains how they interact. For everything else about voices and hosts, see [Characters and Voices](/docs/help/characters-and-voices). ## Episode language comes from the podcast [#episode-language-comes-from-the-podcast] Language is a property of the podcast. Episode scripts are always written in the podcast's **Language** setting, never in a host's Dominant language. To change it, see [editing podcast details](/docs/help/podcasts-and-episodes/editing-podcast-details). For shorts, Magic Videos and voiceovers, the narration language is picked on the creation screen instead. See [narration language](/docs/help/video-creation-settings#narration-language) for how that picker starts and what an explicit language in your prompt does. ## Voices are tuned to a language and accent [#voices-are-tuned-to-a-language-and-accent] Each Voice Library voice is tuned to one language and accent. Its **Language** and **Accent** labels show what it was made for, so pick a voice made for the language your listeners speak: a Mexican Spanish voice for a Spanish episode aimed at Mexico, a British English voice for an English episode with a British host. To filter the library by language or accent, see [browsing the voice library](/docs/help/characters-and-voices/browsing-the-voice-library). A [voice clone](/docs/help/characters-and-voices/voice-cloning) is not limited to one language. Clones use a multilingual voice model, so you can use one in episodes in other languages. ## Dominant Language and Host Warnings [#dominant-language-and-host-warnings] A voice's Dominant language is the language it is tuned to sound most native in. It is the same value shown as the voice's **Language** in the Voice Library. Where it comes from depends on the voice: * Library and cloned voices: from the voice itself. * Designed voices: detected from the backstory the voice was designed from. * Imported ElevenLabs voices: you [choose it yourself](/docs/help/characters-and-voices/importing-elevenlabs-voices) during import. If a selected host's Dominant language differs from the podcast's language, Jellypod shows an advisory note next to the host picker saying that host may sound unnatural in the podcast's language. If no host has a matching voice, the note says so and links to **Create a matching Host**. The note never blocks generation, and the episode is still written and voiced in the podcast's language. The note also appears when a host has no Dominant language set. Pick a host whose Dominant language matches the podcast, or change the podcast's language to match your hosts. # Clone a voice from audio samples (or invite a guest) (/docs/help/characters-and-voices/voice-cloning) A voice clone becomes a character you can use as a host. Clone only a voice you have the right to use; see [content ownership and rights](/docs/help/account-and-billing/content-ownership-and-rights) for who owns it and what consent covers. To use a ready-made voice, see [the voice library](/docs/help/characters-and-voices/browsing-the-voice-library). If you already have a Professional Voice Clone elsewhere, [import it from ElevenLabs](/docs/help/characters-and-voices/importing-elevenlabs-voices). More options are in [Characters and Voices](/docs/help/characters-and-voices). ## Clone your voice [#clone-your-voice] 1. On the **Voices** page, click **Create Voice Clone**, then choose **Clone your voice**. 2. Upload or record samples, tick the box confirming you have the rights and consents to clone the voice, then click **Next**. If the samples fall short of the minimum or the box is unchecked, Jellypod marks what needs attention instead of continuing. 3. Jellypod clones the voice and drafts a name, language, and description from your samples. 4. On the **Voice information** step, play the preview and edit the drafted details. Click **Finish Voice Clone**. 5. On the confirmation screen, click **Go to Voice Clone** to open the character or **Back Home** to return. If cloning fails, your samples stay in the dialog and the button reads **Try again**. If Jellypod cannot save the character after review, retrying reuses the voice it already cloned instead of cloning again. To give an existing character a cloned voice, edit it and choose **Voice Clone** as the voice type. See [managing characters](/docs/help/characters-and-voices/managing-characters). Clones count against your plan: 2 on Starter and Educator, 8 on Creator, 20 on Business, and 100 on Enterprise (see [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits)). Archived characters do not use a slot, and pending guest invites do. At your limit, [archive or delete a cloned character](/docs/help/characters-and-voices/managing-characters#archiving-or-deleting-a-character) or delete a pending invite to free a slot, or upgrade your plan. ## Audio requirements [#audio-requirements] | Requirement | Limit | | -------------------------- | -------------------------------------------------------------------- | | Total audio across samples | 30 seconds minimum, 60 seconds recommended | | Each sample | 10 seconds minimum | | Number of samples | 10 maximum | | Audio file size | 10 MB maximum | | Video file size | 500 MB maximum, and the extracted audio must still be 10 MB or under | Clear audio matters more than length: 1 to 2 minutes of clean speech is a good target. ## Upload or record samples [#upload-or-record-samples] Drag a file into the upload zone or click **Browse files**. Each sample uploads as soon as you add it, so you can keep adding while earlier ones finish. **Accepted formats:** MP3, WAV, M4A, OGG, OGA, or FLAC audio, or a video file (MP4, M4V, MOV, WEBM, MKV, AVI). For a video, or an audio format Jellypod cannot use directly, Jellypod extracts the audio in your browser and converts it to MP3 (you see "Extracting audio from your file…"). If the file has no audio track or cannot be processed, you get an error and can pick another file. Click **Record Audio** to record in your browser instead, then click **Start** and **Stop Recording** when finished. The recording is added to the **Audio samples** list. Each sample appears in the **Audio samples** list with its file name and duration, plus buttons to play, download, and remove it. A row shows **Uploading…** while in progress, or **Upload failed** with a **Retry** button. Removing a sample cancels its upload. Continue once every upload finishes; retry or remove failed ones first. For a better clone, introduce yourself and say what you do (Jellypod uses it to build the character), record somewhere quiet, and vary your tone and pace. Background noise and room echo become part of the clone. ## Invite a guest to clone their voice [#invite-a-guest-to-clone-their-voice] A guest can record a clone into your account without a Jellypod account. 1. On the **Voices** page, click **Create Voice Clone**, then choose **Invite a guest**. You can also click **Invite a Guest** on the **Voice Clone Invites** page (`/characters/invites`). 2. Enter a **Character Name** and a **Backstory**, then click **Send invite**. 3. Copy the invite link to share it yourself, or enter your guest's email address and click **Send email**. The guest opens the link, uploads or records samples that meet the same requirements above (each with an inline **Retry** if it fails), and submits. The character then appears on the **Characters** page as a regular Voice Clone character and you get an email. An invite link works once and expires after 24 hours. From the **Voice Clone Invites** page you can copy the link, send the email, or **Delete** an invite. If a link expires, create a new invite. While an invite is pending or unexpired it counts toward your voice clone limit, so delete unused invites if you hit it. ## If your clone doesn't sound right [#if-your-clone-doesnt-sound-right] 1. **Check the recording.** Noise, echo, and a distant microphone carry into the clone. 2. **Re-record.** Use a clear, consistent tone with some variation, not a monotone read, and upload the new samples. 3. **Change the Voice style.** In the character's voice settings, **More Consistent** stays closest to the recorded voice. **More Expressive** is more emotive and supports [audio tags](/docs/help/podcasts-and-episodes/audio-tags) like `[whispers]`. 4. **Regenerate the speech blocks.** If the clone works overall but specific lines sound off, regenerate those blocks for a different rendering with the same clone. If results stay poor, start over with new, higher-quality samples. Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Create a Magic Video from a prompt, source or script (/docs/help/magic-video) Magic Video turns a prompt, source or finished script into a narrated video with AI-generated visuals. Each finished project is a video, so it appears in the **Videos** collection in Studio. To compare it with Shorts and Voiceovers, see [choosing a video Product](/docs/help/choosing-a-video-product). ## Create a Magic Video [#create-a-magic-video] 1. Open **Home** or **Videos** in the Studio sidebar. On Home, switch the composer to **Video** mode. The Videos page already shows the video controls. 2. Give Jellypod a starting point: type a prompt, attach a source (a file, link or pasted text) with the sources button, or click **Upload Script** to paste or attach finished narration. If you attach a source and leave the prompt empty, Jellypod makes a video that summarizes the source. 3. Pick one to four [characters](/docs/help/characters-and-voices) as hosts, in the order you want them cast. With more than one, Jellypod writes a conversational script that gives each paragraph a host. 4. Pick a [visual style](/docs/help/video-visual-styles) from the style rail below the prompt. 5. Set the length, orientation, language, watermark and brand options in the composer; see [creation settings](/docs/help/video-creation-settings#duration) for length presets and defaults. 6. Click **Generate**. Jellypod takes you to **Videos** to follow progress. Use **Upload Script** only for finished narration: Jellypod keeps every spoken word in order and sets the length to **Auto** from the script. To have Jellypod summarize or rewrite a document, attach it as a source instead. Speaker labels and matching are covered in [use your own script](/docs/help/podcasts-and-episodes/use-your-own-script#starting-a-new-episode-from-a-script). An unfinished prompt, sources and selections are saved in this browser and reload until you generate or start a new video. ## What Jellypod generates [#what-jellypod-generates] * **Narration** in the voice of each chosen character, written to your prompt or source. * **Animated visuals** in your chosen style, generated shot by shot to match the narration. * **Transitions** between some shots, only where they help. Most shot boundaries stay a clean cut, and you can edit or remove any transition in the editor. * **Word-synced captions**, following the default of the selected style. Change or turn off captions once the editor opens. There is no background music at creation. Add your own from the music control in the editor. Generation runs in the background, and longer videos take longer. If some narration could not be voiced, the visuals and successful audio stay available to edit while you repair the missing paragraphs. ## Credit cost [#credit-cost] Narration costs 30 credits per minute. Each generated image costs 7 credits and each generated video clip costs 20. Rendering and re-rendering are free. Credits are held when you click **Generate** and settle to what was produced. The estimated ceiling shows next to **Generate** once your prompt is ready, and it follows the style you pick, since some styles draw only images. For rates and holds, see [how credits are consumed](/docs/help/getting-started/understanding-credits#how-credits-are-consumed). Whether a failed generation is charged is covered in [generation failures](/docs/help/video-generation-failures). ### How long can a Magic Video be? [#how-long-can-a-magic-video-be] Each plan has a length cap that locks longer presets; see [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits). ## Related guides [#related-guides] * [Video visual styles](/docs/help/video-visual-styles): the style lineup shared by Magic Video and Shorts. * [Creation settings](/docs/help/video-creation-settings): duration, orientation, language, watermark, brand control and remembered starting values. * [Video editor](/docs/help/video-editor): edit narration and visuals, and add music. * [Video library and sharing](/docs/help/video-library-and-sharing): track, render, share, download and delete videos. * [Video generation failures](/docs/help/video-generation-failures): retry a stopped generation and see what was charged. * [Choosing a video Product](/docs/help/choosing-a-video-product): Magic Video, Shorts and Voiceovers compared. # Generate multiple episodes as a connected series (/docs/help/podcast-agent/generating-multiple-episodes) A series is two or more episodes generated as one batch. Each script builds on the one before it. You can review an outline first, or ask for several episodes in a single prompt. A prompt that does not explicitly ask for more than one still produces one episode, as described in [How the Podcast Agent Works](/docs/help/podcast-agent/how-the-podcast-agent-works). ## Review a series outline first [#review-a-series-outline-first] 1. Open the podcast and click **Generate a Multi-Episode Series** below the **Create New Episode** chat input. 2. Describe the series and choose 2 to 8 episodes. The hosts, attached [sources](/docs/help/sources/what-are-sources), **Auto-publish** and **Include show notes** apply to every episode. Changing the shared duration updates every episode, so set it first, then adjust exceptions on individual rows. The dialog defaults to 5 minutes per episode; a single episode defaults to 7. 3. Click **Create Outline**. Jellypod reads your sources and, for factual topics, can run one web search and read up to two pages before planning. To keep the plan to your material, say to use only the attached sources. 4. Review the ordered plan. Each row shows the title, prefixed "Ep. 1:", "Ep. 2:" and so on, and a one-sentence summary. Click **Edit** to change the detailed prompt, then **Save** to refresh the title and summary. You can also delete episodes or change one episode's duration. Edits stay in the dialog until you create the episodes, and the last remaining episode cannot be deleted. 5. Click **Create Episodes**. The button shows an estimated credit total. ## Generate directly from a prompt [#generate-directly-from-a-prompt] Jellypod generates several episodes without an outline review when your prompt clearly asks for more than one. | Prompt style | Example | | ----------------- | --------------------------------------------------------------------------------- | | Explicit count | "Make 3 episodes about X" or "a five-part series on Y" | | Enumerated list | "One episode on X and one on Y" | | Open-ended series | "Make a series about the Roman Empire." Jellypod picks the count and topic split. | A broad single-episode request ("an episode covering X, Y, and Z") stays one episode, and so does any ambiguous request. If your prompt states a duration ("15 minute episodes"), it applies to each episode, not to the series total. For wording that works well, see [Tips for Better Prompts](/docs/help/podcast-agent/tips-for-better-prompts). ## How episodes build on each other [#how-episodes-build-on-each-other] Research and sourcing start for every episode at once. Scripts are written in order: each writer receives the full previous script plus short summaries of older episodes, so names, facts and running threads stay consistent. Titles get an "Ep. N:" prefix. An episode waiting on an earlier one shows **Waiting for Episode N**, where N is the episode it is waiting for. If an earlier script fails, or does not arrive after 90 minutes per earlier episode, later episodes stop instead of starting from a gap. You land on the podcast page, where every episode appears in the list with live progress. Generation continues if you close the tab. ## Limits [#limits] | Limit | Value | | ------------------------- | ------------------- | | Outline dialog | 2 to 8 episodes | | Direct prompt | Up to 10 episodes | | Deleting from the outline | Down to 1 episode | | Duration | Applies per episode | The 10-episode cap matches the 10 generations an organization can run at once. A batch needs one free slot per episode, so it is rejected if you already have generations running. If your prompt asks for more than 10, Jellypod tells you to request 10 or fewer before starting. ## Cost and failures [#cost-and-failures] Each episode is charged for narration at 30 credits per minute. See [Understanding Credits](/docs/help/getting-started/understanding-credits). Show notes follow the **Include show notes** setting (see [editing episode details](/docs/help/podcasts-and-episodes/editing-episode-details#show-notes)). If an episode fails, its held credits are released and it is not charged. Retry the failed episode from the podcast page. Episodes that stopped because of it are failed episodes too. See [Episode Generation Failed](/docs/help/podcasts-and-episodes/episode-generation-failed) for causes and fixes. # How the Podcast Agent works: research, script and audio (/docs/help/podcast-agent/how-the-podcast-agent-works) The Podcast Agent is the chat that turns a prompt into a finished podcast episode: it researches the topic, writes a script for your hosts and generates the audio. For a step-by-step first run, follow [Creating your first episode](/docs/help/getting-started/creating-your-first-episode). ## What you can create [#what-you-can-create] The agent makes podcast episodes. A single prompt produces one episode, even when the topic covers several subtopics. To get a series, explicitly ask for more than one (for example, "make 3 episodes about X, Y, and Z"). Jellypod chains the episodes so each script builds on the one before it. See [Generating multiple episodes](/docs/help/podcast-agent/generating-multiple-episodes) for limits and the outline review option. ## Start a conversation [#start-a-conversation] 1. Choose **Podcast Episode** on the Studio start screen. 2. Describe the episode in your prompt. [Tips for better prompts](/docs/help/podcast-agent/tips-for-better-prompts) covers what to include. 3. Optionally attach [sources](/docs/help/sources/what-are-sources) such as URLs, files or YouTube links. Sources are optional because the agent researches on its own. If you paste 2,000 or more characters into the start screen input, Jellypod converts the text into a source automatically (see [Supported source types](/docs/help/sources/supported-source-types)). ## From prompt to audio [#from-prompt-to-audio] The agent researches the topic, reads any sources you attached, then writes a full multi-host script and generates the audio in one pass. There is no approval step in between. The one exception is planning a series from an outline, where you review the episode plan before generation starts. Credits are charged for narration audio, not for research. See [Understanding credits](/docs/help/getting-started/understanding-credits) for rates. ## Web research [#web-research] The agent can search the web and read pages whenever fresh information would improve the episode. Web research is always available, and there is no setting to turn it on or off. * It reads public web pages only. To use paywalled material, copy the text and attach it as a source. * Web research does not use credits. * To keep an episode to your own material, say so in the prompt, for example "use only the attached sources". You can combine your sources with web research, and the agent draws on both. ## Revise in chat [#revise-in-chat] After the episode generates, ask for changes in the chat, such as "make the intro shorter" or "add a section about X". The agent edits the existing script rather than starting over. When a change needs fresh information, the chat shows **Web Search** and **Read URL** activity, and the agent cites the sources it used with their URLs. # Prompt tips for better AI podcast episodes (/docs/help/podcast-agent/tips-for-better-prompts) These tips apply to prompts for the [Podcast Agent](/docs/help/podcast-agent/how-the-podcast-agent-works), including its web research and revising in chat. ## Be specific about what you want [#be-specific-about-what-you-want] Include: * **Topic:** what the episode should cover. * **Length:** pick a duration with the stopwatch pill, or state one in your prompt, such as "a 15 minute episode." A duration in your prompt overrides the pill. If you set neither, a single episode defaults to 7 minutes. For a series, see [generating multiple episodes](/docs/help/podcast-agent/generating-multiple-episodes). * **Tone:** casual, authoritative and data-driven, humorous. * **Audience:** beginners, experts, a general audience. **Weak prompt:** > Make an episode about AI. **Strong prompt:** > Create a 10-minute episode about the future of remote work, focusing on recent trends in hybrid models and what they mean for small businesses. Keep the tone conversational and accessible. ## Say how to use your sources [#say-how-to-use-your-sources] Attaching [sources](/docs/help/sources/what-are-sources) (URLs, PDFs, files) is only half the job. Tell the agent how to use them, or it may not emphasize the parts you care about: * "Use the attached report as the primary basis for this episode." * "Pull the key statistics from the linked article and build the discussion around them." * "Compare the findings in these two sources." ## Ask for targeted edits [#ask-for-targeted-edits] After the first draft, listen and ask for specific changes: * "Make the opening more attention-grabbing: start with a surprising statistic." * "Add a section about hybrid work models after the second chapter." * "Make the closing shorter and more action-oriented." * "The tone is too formal in the intro: make it punchier." * "Add more back-and-forth between the hosts in section three." To fix a single line, [regenerate that segment](/docs/help/podcasts-and-episodes/regenerating-individual-segments) instead of re-prompting. ## Use host personalities [#use-host-personalities] Each host's personality and backstory shape how they speak. Give the agent a direction that uses them, and set them up in [a character](/docs/help/characters-and-voices/creating-a-character): * "Have Host A challenge Host B's perspective on this point." * "Make the conversation feel like a debate, not a lecture." * "Let Host A bring in a personal anecdote to illustrate the point." ## Structure complex prompts [#structure-complex-prompts] For longer or multi-part content, number the topics and say how to open and close: > Create an episode covering three topics: > > 1. The rise of AI coding assistants > 2. How they're changing developer workflows > 3. Predictions for the next two years > > Open with a hook about how much code is now AI-generated. Close with practical advice for developers. # Create your first episode: generate, review, publish (/docs/help/getting-started/creating-your-first-episode) Sign up and explore Studio for free without a card. Choose **Skip and continue** during onboarding to browse voices, prepare sources, and explore creation settings. When ready to generate content, start an eligible 7-day trial (payment method required) or choose a plan. See [Free exploration and trial eligibility](/docs/help/account-and-billing/plans-and-pricing#free-exploration). This walkthrough assumes you have a podcast (see [What is Jellypod](/docs/help/getting-started/what-is-jellypod) for the overview, or [Creating Your First Podcast](/docs/help/getting-started/creating-your-first-podcast) to set one up). You describe the episode, and the [Podcast Agent](/docs/help/podcast-agent/how-the-podcast-agent-works) researches, writes the script and generates the audio. ## Pick a podcast [#pick-a-podcast] From the Studio dashboard, click **Create a Podcast Episode** and choose your podcast. Or open a podcast and use the **Create New Episode** box above its episode list. A podcast with no episodes shows **Create your first episode** instead of a table; use the same box. ## Describe the episode [#describe-the-episode] Type your idea into the chat input, or click one of the suggestions based on your show. Be specific about topic, tone and format; [Tips for Better Prompts](/docs/help/podcast-agent/tips-for-better-prompts) shows what works. Before sending, you can set: * **Hosts:** default to the podcast's hosts. Override them for this episode. * **Duration:** defaults to 7 minutes. Click the stopwatch button to pick a preset: 3, 5, 7, 10, 15, 20, 30, 45 or 60 minutes. Episode length limits by plan are in [Jellypod plans, limits and free trial](/docs/help/account-and-billing/plans-and-pricing#plan-limits). If the written script runs more than half over its target length, Jellypod cuts it back to the target before generating audio. * **Auto-publish:** off by default, so the episode stays a draft for you to review. Turn it on to publish as soon as generation completes. * **Include show notes:** on by default. Lists your sources in the episode description. Attach sources with the **+** button: websites, YouTube videos, pasted text, or uploaded files. See [What Are Sources?](/docs/help/sources/what-are-sources). To start from a finished script instead of a prompt, click **Upload Script** (on mobile, open Settings first); see [Use Your Own Script](/docs/help/podcasts-and-episodes/use-your-own-script). To plan several episodes at once, open a podcast and click **Generate a Multi-Episode Series**, or see [Generating Multiple Episodes at Once](/docs/help/podcast-agent/generating-multiple-episodes). Click send to start. Free trials include up to 5 episodes, separate from your credit balance. ## Watch it generate [#watch-it-generate] The agent writes the script and generates the audio in one pass, with no outline to approve. Each line assigned to a host becomes its own audio segment, voiced with that host. The new episode appears in the podcast's episode list, and its row shows live progress. Generation continues if you close the tab or leave the page. The row cannot be opened until the first playable line exists, so clicking it while generating shows a reminder. Once it can open, the episode opens in the Script Editor. See [Episode Statuses](/docs/help/podcasts-and-episodes/episode-statuses) for what each status means. Narration uses credits when it is first generated; see [Understanding Credits](/docs/help/getting-started/understanding-credits) for rates. If generation fails, clicking the row opens a **Generation failed** dialog; see [If Episode Generation Fails](/docs/help/podcasts-and-episodes/episode-generation-failed). ## Review the script and audio [#review-the-script-and-audio] Play the episode and read along in the [Script Editor](/docs/help/podcasts-and-episodes/using-the-script-editor). Edit the text in any speech block, then use **Regenerate Audio** on that block to re-voice only that segment. See [Regenerating Individual Segments](/docs/help/podcasts-and-episodes/regenerating-individual-segments). ## Publish [#publish] If you turned on Auto-publish, the episode is already live. Otherwise, click **Publish Episode**. Your podcast website and RSS feed update right away. See [Publishing an Episode](/docs/help/publishing-and-distribution/publishing-an-episode) for updating a live episode, scheduling and connected platforms. # Create a podcast: title, description and hosts (/docs/help/getting-started/creating-your-first-podcast) A **podcast** is a series: a title, description, hosts, and series-level settings. **Episodes** are the individual entries inside it. This page is part of [What is Jellypod](/docs/help/getting-started/what-is-jellypod), and covers only what happens at creation. Every new account starts with a podcast called **My First Podcast** and two starter [default characters](/docs/help/characters-and-voices#default-characters), so you can explore episode settings before starting a trial or choosing a plan. Free exploration lets you fill in podcast settings; generating details or saving a new podcast requires an eligible trial or plan. See [Free exploration](/docs/help/account-and-billing/plans-and-pricing#free-exploration). ## Create a podcast [#create-a-podcast] 1. Click **Podcasts** in the sidebar. 2. Click **New Podcast**. The required fields fit on one screen, with optional settings under **Advanced**. 3. Fill in the fields below, then click **Create Podcast**. ### Generate with AI [#generate-with-ai] Click **Generate with AI** at the top of the dialog, describe your idea (up to 4,000 characters), then click **Generate details**. Jellypod drafts a title and description and picks one or two of your existing hosts. You need at least one character already created for it to choose from. Jellypod writes in the language you explicitly ask for, otherwise the language of your idea, and sets the podcast's **Language** to match. Everything it fills in stays editable before you create the podcast. ### Required fields [#required-fields] * **Title:** Up to 100 characters. * **Language:** Defaults to a language Jellypod supports that matches your browser settings, otherwise English. Episodes are generated in this language, whatever a host's voice is tuned for. * **Hosts:** Select at least one character. Every episode uses these hosts by default, and an episode can override them. If a selected host is tuned for a different language than the podcast, a warning says it may sound less natural, and the warning links to the Characters page if none of your hosts fits the language. * **Description:** 10 to 3,000 characters, with basic rich text formatting. ### Optional fields [#optional-fields] * **Cover Art:** Upload your own image. If you leave it blank, Jellypod generates one from your title and description. If generation fails, the podcast is still created, without cover art. * **Advanced:** **Podcast Author** (credited in podcast directories, prefilled with your name), **Visibility**, and **Type**, either **Episodic** or **Serial** (episodes in chronological order). * **Visibility:** **Public** by default. Choose **Private** for no website, RSS feed or share links; you then download episodes from the Studio. See [Podcast Visibility](/docs/help/publishing-and-distribution/podcast-visibility) for what each choice does. ## What is set up when you create it [#what-is-set-up-when-you-create-it] * **Categories:** Up to 2 directory categories are chosen automatically from your title and description. * **Subdomain:** A free `yourshow.jellypod.com` address is generated from your title. You can [change it](/docs/help/publishing-and-distribution/custom-domains#changing-your-subdomain) later. * **Intro:** None. Generate one from [Generating a Podcast Intro](/docs/help/podcasts-and-episodes/adding-music#generate-a-podcast-intro). * **Podcast sources:** None yet. Everything else, including language, author, type, branding and sources, can be changed afterward in [Editing Podcast Details](/docs/help/podcasts-and-episodes/editing-podcast-details). When you click **Create Podcast**, the podcast appears in your list and you can create your first episode from it. # Studio tour: dashboard, sidebar and account menu (/docs/help/getting-started/navigating-the-studio) Sign up and explore Studio for free without a card. Choose **Skip and continue** during onboarding to browse voices, prepare sources, and explore creation settings. When ready to generate content, start an eligible 7-day trial (payment method required) or choose a plan. See [Free exploration and trial eligibility](/docs/help/account-and-billing/plans-and-pricing#free-exploration). ## Dashboard [#dashboard] **Home** opens on the composer with **Podcast Episode** selected. Describe what you want, attach sources, and the Podcast Agent takes it from there. The mode buttons above the input (**Podcast Episode**, **Short**, **Video**, **Voiceover**) switch what you create (see [What is Jellypod](/docs/help/getting-started/what-is-jellypod) for the four Products). Each mode's settings appear inline in the same composer. To start from a finished script instead of a prompt, see [Importing and Exporting Scripts](/docs/help/podcasts-and-episodes/use-your-own-script). Right after signup, Home instead opens on the format you picked during onboarding, prefilled with what you typed before signing up (or an example prompt) so you can generate right away. Below the composer: * **Try Voice Cloning:** A banner that opens the voice clone dialog. See [Voice Cloning](/docs/help/characters-and-voices/voice-cloning). * **Examples:** Sample prompts matched to the role you picked during onboarding. Click one to fill the composer, or use the **Role** button to switch to another role's set. * **Recents:** A grid of your latest podcast episodes, shorts, videos, and voiceovers, sorted by activity. Click one to reopen it. ## Sidebar [#sidebar] The sidebar, top to bottom: * **Home**, [**Podcasts**](/docs/help/podcasts-and-episodes) (your podcast series), and [**Videos**](/docs/help/video-library-and-sharing) (Magic Video, Shorts and Voiceovers together; filter by format to see one Product). * **Publish** group: **Content Calendar** shows published and scheduled episodes and upcoming automation runs (see [Scheduling Episodes](/docs/help/publishing-and-distribution/scheduling-episodes#content-calendar)). **Automations** runs a podcast on a schedule (see [Automations](/docs/help/automations)). * **Personalize** group: **Characters** and **Voices** (see [Characters and Voices](/docs/help/characters-and-voices)), [**Pronunciations**](/docs/help/characters-and-voices/pronunciation-guide) (custom pronunciation rules for tricky words and names), and **Brand Kits** (see [Brand Kits](/docs/help/brand-kits)). * **Recent:** Quick access to episodes, voiceovers, shorts, and videos you've worked on. Click the **Recent** header to collapse or expand it, and use the filter icon to narrow by content type or, for episodes, by status. * Footer: **Product Updates**, **Developers**, and **Help & Support**. Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). ## Account menu [#account-menu] Click your organization's avatar at the bottom-left of the sidebar. The menu shows your email, organization, plan (marked Trial during a trial), and credit balance (see [Understanding Credits](/docs/help/getting-started/understanding-credits)). It contains: * **Manage Team** * **Settings** (tabs are covered in [Account and Billing](/docs/help/account-and-billing); to change your name, email, password, or two-factor authentication, see [Profile and Security](/docs/help/account-and-billing/profile-and-security)) * **Theme:** **Light**, **Dark**, or **System**, which follows your device's appearance setting. Your choice is saved. * **Billing & Usage** * **Documentation** * **Asset Library** * **Achievements** * **Affiliate Program** * **Product Updates**, **Developers**, and **Help & Support** * Log out **Developers** holds API guidance, keys, and integrations. See [connecting AI assistants over MCP](/docs/help/mcp). ## Achievements [#achievements] Choose **Achievements** in the account menu to see achievements grouped by category. Once you have unlocked at least one, a filter appears with **All**, **Unlocked**, and **Locked**. Each unlocked card shows the date you earned it and a **Share** button. On devices with system sharing, **Share** opens the native share sheet with the achievement name and badge link. Otherwise Jellypod copies the badge image link to your clipboard when the browser allows it. # How Jellypod credits work: costs, expiry and balance (/docs/help/getting-started/understanding-credits) Credits meter AI generation across [Jellypod](/docs/help/getting-started/what-is-jellypod). You are charged when Jellypod generates something, by one formula for every product. ## How credits are consumed [#how-credits-are-consumed] * **Narration:** 30 credits per minute of audio (1 credit per 2 seconds). * **Images:** 7 credits per generated image. * **Video clips:** 20 credits per generated video clip. A podcast episode costs its narration, plus its images and clips when the video template generates visuals. A short or video costs narration plus 7 or 20 credits per shot, depending on whether the shot is a still image or an animated clip. A voiceover narrates the pages you upload, so it costs 30 credits per minute and nothing for visuals. Generating through the API or MCP costs the same as in the Studio. ### Estimates and holds [#estimates-and-holds] When you click Generate, Jellypod estimates the cost, checks your balance, and holds that many credits so a second generation cannot spend them. The estimate is a ceiling: it assumes every shot an animating style can animate becomes a clip, and it rounds up to the next 5 credits. When generation finishes, the hold settles to what was actually generated. A failed generation is charged only for what was produced (see [what a failed video generation costs](/docs/help/video-generation-failures)). Examples: * A 30-second short with 7 shots is estimated at 65 credits if every shot is a still image and up to 155 if every shot is an animated clip. * A 10-minute episode on a Podcast Template costs 300 credits. [Watching it generate](/docs/help/getting-started/creating-your-first-episode#watch-it-generate) is where those audio credits are spent. ### What uses no credits [#what-uses-no-credits] Editing, regenerating, publishing, and exporting require an eligible trial or active plan, even when they use no credits. You can browse Studio and prepare sources on Free without a card. Regenerating narration uses no credits once an episode, short, video, or voiceover has audio, including after you edit the text or change the host. A daily limit applies to regeneration. Rendering, re-rendering, publishing, scheduling, and downloading never use credits, so edit the timeline, switch templates, and export as often as you like. Downloading or publishing later does not charge again. Regenerating a single visual costs 7 credits, even if the original was an animated clip. ## Plan limits [#plan-limits] Starter, Educator, Creator and Business each include a monthly allocation, listed under [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits). It refreshes every billing cycle, even on annual plans. Enterprise credits are set by contract. * **Rollover:** a monthly allocation can be spent in the month it is granted and the month after, then it expires. * **Top-ups:** credits you [buy as top-ups](/docs/help/account-and-billing/purchasing-credit-top-ups) never expire. * **Cancelation:** when your subscription ends, that subscription's unused plan credits expire. Purchased top-ups are kept for if you resubscribe. An Educator credit grant is independent of a paid subscription, so it keeps renewing on its own schedule even if you cancel a paid plan during your Educator offer. * **Subscription required:** creating and publishing need an active subscription or plan, whatever your balance. If yours lapses, resubscribe before you create or publish again, even with purchased credits left. ## Check your balance [#check-your-balance] Your balance shows in the account menu at the bottom of the Studio sidebar. For the credit usage chart and CSV or JSON export, go to **Settings** > **Usage & Billing** (see [viewing invoices](/docs/help/account-and-billing/viewing-invoices)). ## If you run out of credits [#if-you-run-out-of-credits] Starting a generation without enough credits opens a **You're out of credits** dialog. With an active subscription, **Manage credits and billing** takes you to billing settings to buy more credits or change plan. On a trial it reads **You've used your trial credits** and asks you to subscribe to start your plan's monthly allocation. # What is Jellypod? Products and how they fit together (/docs/help/getting-started/what-is-jellypod) Sign up and explore Studio for free without a card. Choose **Skip and continue** during onboarding to browse voices, prepare sources, and explore creation settings. When ready to generate content, start an eligible 7-day trial (payment method required) or choose a plan. See [Free exploration and trial eligibility](/docs/help/account-and-billing/plans-and-pricing#free-exploration). Jellypod is an AI studio for making podcasts and narrated video. You describe an idea or add sources, and Jellypod writes the script, voices it with AI characters, and produces the result. Nothing is recorded, so you need no microphone or audio equipment. It is built for creators, marketers, educators and businesses who have ideas and not enough time to produce them. ## The four Products [#the-four-products] * **[AI Podcasts](/docs/help/podcasts-and-episodes):** Create, produce, publish, distribute and measure podcasts and episodes. The [Podcast Agent](/docs/help/podcast-agent/how-the-podcast-agent-works) researches, outlines, writes and generates the audio from your prompt. * **[Magic Video](/docs/help/magic-video):** Longer narrated videos with generated visuals, from a prompt, a source or a finished script. * **[Shorts](/docs/help/shorts):** Short narrated videos with generated visuals, sized for social platforms. * **[Voiceovers](/docs/help/voiceovers):** Narration built around the documents and images you supply, which stay as the visuals. Not sure which video Product fits? See [Choose a Video Product](/docs/help/choosing-a-video-product). ## Features across products [#features-across-products] Each feature has one owner page. Product pages only note where they differ. | Feature | AI Podcasts | Magic Video | Shorts | Voiceovers | | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | -------------------- | ------------------------- | ----------------------------- | | [Characters and voices](/docs/help/characters-and-voices) | Yes | Yes | Yes | Yes | | [Sources](/docs/help/sources/what-are-sources) | Research context | Research context | Research context | Your files become the visuals | | [Languages](/docs/help/characters-and-voices/using-accents-and-languages) | Yes | Yes | Yes | Yes | | [Pronunciation](/docs/help/characters-and-voices/pronunciation-guide) | Yes | Yes | Yes | Yes | | [Audio tags](/docs/help/podcasts-and-episodes/audio-tags) | Added by hand | Written for you | Written for you | Not written for you | | [Brand kits](/docs/help/brand-kits) | Yes | Yes | Yes | No | | [Background music](/docs/help/podcasts-and-episodes/adding-music) | Add tracks | Add after generation | Generated score, optional | Add after generation | | Captions ([podcasts](/docs/help/podcasts-and-episodes/video-templates), [videos](/docs/help/video-editor)) | SRT download, and captions in most episode video templates | Yes | Yes | Yes | | [Watermark or logo](/docs/help/video-creation-settings#watermark-or-logo) | Episode video | Yes | Yes | Add in the editor | | [Automations](/docs/help/automations) | Yes | Yes | Yes | No | | [Script or narration editing](/docs/help/video-editor#edit-narration) | Script editor | Narration editor | Narration editor | Narration editor | Audio tags take effect only when the selected voice can perform them. Custom watermarks and logos depend on your plan, see [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits). ## Credits, ownership and plans [#credits-ownership-and-plans] Generating narration and visuals uses credits, see [Understanding Credits](/docs/help/getting-started/understanding-credits) for rates. You own what you create, see [Content Ownership and Rights](/docs/help/account-and-billing/content-ownership-and-rights). Educators can request a free plan, see the [Educator plan](/docs/help/account-and-billing/educator-plan). You can also start and manage content from Claude, ChatGPT and other AI assistants with the [Jellypod MCP connector](/docs/help/mcp). ## Next step [#next-step] Take the tour in [Navigating the Studio](/docs/help/getting-started/navigating-the-studio), then create your [first podcast](/docs/help/getting-started/creating-your-first-podcast) and your [first episode](/docs/help/getting-started/creating-your-first-episode). # Add intro, outro and background music (/docs/help/podcasts-and-episodes/adding-music) Music is added from the episode editor, part of [Podcasts and Episodes](/docs/help/podcasts-and-episodes). For music in Magic Video, Shorts and Voiceovers, see the [video editor](/docs/help/video-editor#captions-music-and-watermark). ## Add a music track [#add-a-music-track] 1. In the playback controls bar below the script editor, click **Add Music**. The **Music** dialog opens. 2. Click **Add** on the row you want: * **Intro Music:** plays first and pushes the conversation later. * **Background Music:** loops under the conversation on its own track. * **Outro Music:** plays after the last take. 3. In the media picker, choose a file from **Jellypod Library** (stock tracks and ambience beds) or **Your Files**. Use **Upload File** to add your own audio. The timeline drawer opens so you can see where the track landed. Ambience beds are seamless loops (a café, rain on a window, a fireplace) mixed to sit well under speech. The button only decides where the track starts. After that, every music track is an ordinary clip: move it, trim it, add more of them, and use the fade handles or mute row described in [Using the Timeline Editor](/docs/help/podcasts-and-episodes/using-the-timeline-editor). There is no limit on the number of tracks. A second intro goes in front of the first, and a second background track gets a new row. If your podcast has no default for that slot, or you picked a different file, Jellypod may ask **Save as podcast default?** so future episodes start with it. Choose **Not now** to keep it for this episode only. Defaults are managed in [Episode Music Defaults](/docs/help/podcasts-and-episodes/editing-podcast-details#episode-music-defaults). ## Background music length and looping [#background-music-length-and-looping] Background music spans your dialogue at the moment you add it. It does not stretch on its own afterward, so if you later regenerate a longer episode, drag the clip's edge to cover the new length. Changing the speaker spacing is the one exception: background music that still ends exactly where your dialogue ended stretches or shortens with it. Music you have already resized keeps its length. Music and uploaded audio loop when you drag the right edge of a clip past the end of its file, with dashed lines marking each restart. Trim the clip to cut it off early. ## Remove a music track [#remove-a-music-track] Select the clip on the timeline and delete it. If the file you removed is this podcast's default for that slot, Jellypod asks **Remove podcast default?** Choose **Remove Default** to clear it for future episodes, or **Keep Default** to change only this episode. Check **Don't ask me again** to skip the prompt for that podcast. ## Generate a podcast intro [#generate-a-podcast-intro] Jellypod can compose an original instrumental intro of about 8 seconds from your podcast's title and description. Every podcast starts without an intro, including the starter podcast every new workspace gets (see [Creating your first podcast](/docs/help/getting-started/creating-your-first-podcast)), so generate one when you want it. 1. Open Edit Podcast, then **Episode Music Defaults**. 2. Next to **Intro**, click **Generate**. If an intro is already set, click the sparkle icon to regenerate it instead. 3. Optionally describe the sound in **Creative direction**, up to 500 characters (for example, "warm analog synths, optimistic, quick and modern"). Jellypod also uses your saved title and description. 4. Click **Generate Preview**. This can take up to a minute. The result plays as **New Preview**, next to your **Current Intro** if you have one. 5. Click **Regenerate Preview** to try again, or **Save Intro** to make it the podcast's default. Closing the dialog without saving discards the preview. Saving an intro only changes the default for future episodes. Existing episodes keep the intro they have. If you prefer your own, pick any audio from your media library as the Intro in **Episode Music Defaults** instead. # Archive or unarchive a podcast (/docs/help/podcasts-and-episodes/archiving-a-podcast) Archiving hides a podcast in the Studio while everything public stays live. Use it for a show you are pausing. For the rest of the podcast tools, see [Podcasts and Episodes](/docs/help/podcasts-and-episodes). ## Archive a podcast [#archive-a-podcast] 1. Open the podcast and click the actions menu (three-dot icon). 2. Select **Archive Podcast**. 3. Confirm **Archive Podcast** in the **Archive this podcast?** dialog. Jellypod returns you to the **Podcasts** list, where the podcast is now hidden. When you reopen it, its header shows an **Archived** badge in place of the visibility badge, and a **This podcast is archived** notice replaces the episode composer. ## What stays and what changes [#what-stays-and-what-changes] Archiving never changes **Visibility**, so the podcast's website, RSS feed and share links keep working, and published episodes stay published. Directory listings (Spotify, Apple Podcasts and so on) keep serving the podcast until you delete it. See [podcast visibility](/docs/help/publishing-and-distribution/podcast-visibility) to change what is public. Existing [automations](/docs/help/automations) that target the podcast keep running on schedule, including inbound-email ones. What changes in the Studio: * The podcast leaves your active **Podcasts** list. * It no longer appears in the podcast picker when you create an episode or a new automation. * The episode composer is replaced by the archived notice. **Upload Audio** stays in the actions menu, see [uploading your own episode](/docs/help/podcasts-and-episodes/uploading-your-own-episode). ## Unarchive a podcast [#unarchive-a-podcast] Open the archived podcast and click **Unarchive Podcast**, either in the archived notice or in the actions menu. You stay on the podcast page, the episode composer returns, and the podcast is back in your active list. No content or settings are lost. ## Find an archived podcast [#find-an-archived-podcast] Click the filter icon at the top of the **Podcasts** page. Under **Status**, choose: * **Active:** the default, hides archived podcasts. * **Archived:** shows only archived podcasts. * **All:** shows every podcast. **Sort by** offers **Episode Count** (default, most episodes first), **Recent episodes** (newest episode first, podcasts with none last) and **Alphabetical** (by title, ignoring case). Your choices are saved in the page URL, so they survive a refresh, and a plain link to **Podcasts** opens the defaults. ## Archive is not delete [#archive-is-not-delete] Archiving is reversible. **Delete Podcast** in the same actions menu permanently deletes the podcast and all of its episodes, and cannot be undone. To remove a single episode instead, see [managing episodes](/docs/help/podcasts-and-episodes/managing-episodes). # Audio tags and backchannels for expressive delivery (/docs/help/podcasts-and-episodes/audio-tags) Audio tags are inline cues such as laughs, pauses and whispers that the AI voice performs when audio is generated. In episodes you insert them by hand in the script editor. In Magic Video and Shorts, Jellypod writes them for you. This page is part of [Podcasts and Episodes](/docs/help/podcasts-and-episodes). ## Which voices perform tags [#which-voices-perform-tags] Tags only work in speech blocks, and only with a Voice whose model performs them. * **Voice clones:** set the character's **Voice style** to **More Expressive** (see [voice cloning](/docs/help/characters-and-voices/voice-cloning)). **More Consistent** clones do not perform tags. * **Voice Library voices:** support depends on the voice's model, and the picker does not show it. * **Unsupported tags are stripped silently.** A tag on a voice that can't perform it, or in a music block, is removed during audio generation with no error. Before generation, the script editor flags a tag its voice can't perform: the chip turns warning-colored. Click it to open the **Audio Tags Unsupported** dialog, then choose **Edit Character** to pick a different voice or **Clear Audio Tags** to remove every tag in that block. ## Insert a tag [#insert-a-tag] 1. Click into a speech block in the [script editor](/docs/help/podcasts-and-episodes/using-the-script-editor). 2. Type `[` or `/` to open the grouped emotion, vocalization and delivery picker. Keep typing to filter the choices. 3. Click a cue, or use the arrow keys and press **Enter** or **Tab** to insert it. Press **Escape** to close the picker and keep your text. Up/Down moves between rows, choosing the nearest chip horizontally. Left/Right moves between neighboring choices. You can also type a cue in full, such as `[laughs]` or `[whispers]`. Closing the bracket turns it into a chip. Click a chip to edit it directly in the script. The tag becomes a chip inside your text: > "I just found out we hit a million downloads `[laughs]`. I honestly can't believe it." The warning chip tells you whether the selected voice can perform the tag. ### Preset tags [#preset-tags] | Category | Tags | | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Vocalizations | `laughs` (light chuckle), `sighs`, `gasps`, `clears throat` | | Emotions | `accepted`, `aggressive`, `amazed`, `anxious`, `awful`, `bitter`, `bored`, `busy`, `calm`, `confused`, `content`, `critical`, `depressed`, `despair`, `disappointed`, `disapproving`, `distant`, `excited`, `frustrated`, `guilty`, `humiliated`, `hurt`, `insecure`, `interested`, `let down`, `lonely`, `mad`, `nervous`, `optimistic`, `peaceful`, `playful`, `powerful`, `proud`, `rejected`, `repelled`, `sarcastic`, `scared`, `startled`, `stressed`, `threatened`, `tired`, `trusting`, `vulnerable`, `weak` | | Delivery | `pauses` (brief silence), `hesitates` (stumbling, uncertain), `dramatic` (intense, theatrical), `whispers` | Emotion cues apply to the words after the cue until the next emotion cue or the end of the paragraph. For example, `[despair] I thought we had lost everything. [optimistic] Then your letter arrived.` Use them where the delivery needs to change, rather than on every line. The same cues stay in your script when you change voices; each voice interprets the requested emotion, so listen to the result and adjust cues that miss the intended delivery. ### Custom tags [#custom-tags] Type your cue in square brackets, such as `[chuckles nervously]`. Custom tags follow the same rules as presets. The voice interprets them as best it can, so keep them short and descriptive (`chuckles nervously`, `takes a deep breath`). If a custom tag doesn't give the effect you want, rephrase it or use a preset. ### Edit or remove a tag [#edit-or-remove-a-tag] * Click a chip to select its bracketed text, then type the replacement. * Press **Backspace** or **Delete** over a chip to remove it. ## What counts as a tag [#what-counts-as-a-tag] Any text in square brackets inside a speech block is treated as a tag, including custom cues. A citation, timestamp or version number in brackets is stripped the same way, so avoid brackets for anything you want spoken or shown in captions. Tags never appear in captions, SRT files, transcripts or clip transcripts. They only affect the audio. If you import a finished script, bracketed lines there are read as speaker labels or folded into the line as cues. See [use your own script](/docs/help/podcasts-and-episodes/use-your-own-script) for how **\[Name]** labels differ from tags. To add your own recorded audio instead of a vocal effect, drag the file onto the [timeline](/docs/help/podcasts-and-episodes/using-the-timeline-editor#adding-your-own-audio-from-the-timeline), not the script. ## Backchannels [#backchannels] A backchannel is a short reaction the other host says while someone is talking, like "mhm", "right" or "no way". Write it inside the line it reacts to, between two pipe characters: > "We shipped the whole thing in a weekend |no way|, and nobody noticed until Monday." The speaker keeps talking, and the other host says "no way" over them at that point. * **When they play:** only when the episode has exactly two hosts and both of their Voices support backchannels. Otherwise they are skipped during audio generation with no error. * **In the editor:** a backchannel that won't play has a line through it. Hover over it to see why. * **Written by Jellypod:** when Jellypod writes a script for two hosts whose Voices can perform them, it adds a few on its own, each one to three words. Your own can be any length, but short reactions sound most natural. * **Regenerating a block** keeps its backchannels, still voiced by the episode's other host. * **Captions and transcripts:** backchannels never appear in them, and they aren't counted as the speaker's words. **Pipes are reserved for backchannels.** Any text between two `|` characters in a line is removed from what the speaker says, and dropped entirely when the hosts' Voices can't perform backchannels. If you paste or import text that uses pipes for something else, like a Markdown table row (`| Plan | Price |`), those words disappear from the audio and captions. Remove the pipes or rewrite the line first. ## Audio tags in Magic Video and Shorts [#audio-tags-in-magic-video-and-shorts] Jellypod writes Magic Video and Shorts scripts, so the [narration editor](/docs/help/video-editor#edit-narration) uses the same square-bracket syntax. Jellypod writes tags only if every selected host's Voice performs them. If even one host's Voice doesn't, the script gets no tags. If you later change a paragraph's host to a Voice that can't perform its tags, they turn into warning chips. Use the **Audio Tags Unsupported** dialog to edit the character's voice or clear that block's tags. ## Troubleshooting [#troubleshooting] | Problem | Fix | | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | A tag isn't audible | Its voice likely doesn't perform tags. Look for a warning-colored chip, then change the voice or clear the tags. | | A backchannel didn't play | Check for exactly two hosts, both with Voices that support backchannels. | | **This is an invalid section** when regenerating a block | A speech block needs spoken words. Blocks that are empty or hold only tags (including custom tags like `[laughs loudly!]`) can't be regenerated. Add spoken text, then regenerate. | | Bracketed or piped text vanished | It was read as a tag or backchannel. Remove the brackets or pipes. | # Download a transcript, captions or script text (/docs/help/podcasts-and-episodes/downloading-transcripts-and-captions) This page is part of [Podcasts and Episodes](/docs/help/podcasts-and-episodes). For the audio or video file, see [Download the video or audio file](/docs/help/podcasts-and-episodes/downloading-video-and-audio). ## Download the transcript or captions [#download-the-transcript-or-captions] The transcript and captions files are generated when the episode is published or rendered for download, so [publishing an episode](/docs/help/publishing-and-distribution/publishing-an-episode) creates them. Captions are built from the audio's timing data, so an episode without that data has no captions file. **From the episode page:** 1. Open the episode from your podcast's episode list. 2. Scroll to the **Transcript** section and click **Download Transcript**. 3. Choose **Transcript (.txt)** or **Captions (.srt)**. The **Transcript (.txt)** file lists each chapter title, then each turn as the speaker name in brackets (for example `[Host Name]`) followed by the text. It downloads as `Episode Title_transcript.txt`. **From the episode list:** click the **three-dot menu** on the episode row, then **Download Captions (SRT)**. The file downloads as `Episode Title_captions.srt`. This item only appears once the episode has a captions file. On the episode page, an option is grayed out when its file does not exist yet (the **Transcript** section is hidden if neither exists). Publish or render the episode to generate them. To get text before then, use the script export below. SRT is the standard timed-caption format. Upload it to YouTube, social platforms and most video editors that support subtitles. ## Download the script as text [#download-the-script-as-text] This exports the editable script, so it works on any episode with a script, published or not. The same export is in the Magic Video, Shorts and Voiceover workspace. 1. Open the episode, Magic Video, Shorts or Voiceover workspace and click the **three-dot menu** in the actions area (tooltip **Import / Export**). 2. Click **Export Script**. A .txt file downloads, named after the episode or video title. Each turn is the speaker name in brackets (for example `[Host Name]`) on one line, then the text. If the script is empty, you get "This episode has no script to export yet." instead. To bring a script back in, see [Use your own script](/docs/help/podcasts-and-episodes/use-your-own-script). # Download an episode as video (MP4) or audio (MP3) (/docs/help/podcasts-and-episodes/downloading-video-and-audio) Download an episode as an MP4 video (your template and aspect ratio, with all visuals) or an MP3 audio file. Downloads and renders cost no credits: credits are charged when narration and visuals are generated (see [Understanding Credits](/docs/help/getting-started/understanding-credits)). Downloading an existing render is available on Free. Creating a new render requires an eligible trial or active plan. For SRT captions and the script, see [Downloading Transcripts and Captions](/docs/help/podcasts-and-episodes/downloading-transcripts-and-captions). This page is part of [Podcasts and Episodes](/docs/help/podcasts-and-episodes). ## Where you can download [#where-you-can-download] | Where | How | What you get | | ------------------------ | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Episode editor | **Download** in the toolbar, for draft and published episodes | Renders your latest edits as audio or video, then downloads the file | | Episode page (published) | Download icon beside **Share Episode** | **Download Audio** gives the published audio at once. **Download Video** gives the existing video, or renders a new one with the episode's selected theme if none exists | | Episodes table | **three-dot menu** on an episode | **Download Video**, **Download Audio** and **Download Captions (SRT)**, each shown only when that file is available | Publishing first puts the episode in your feed before you distribute the file elsewhere: see [Publishing an Episode](/docs/help/publishing-and-distribution/publishing-an-episode). To choose the video's look, see [Video Templates](/docs/help/podcasts-and-episodes/video-templates). ## Download from the editor [#download-from-the-editor] 1. Open the episode and click **Download**. The dialog always opens, even when a new render isn't possible yet. 2. Pick **Download Audio** (selected by default) or **Download Video**, then click the button. Voiceovers offer video only. 3. A progress bar shows **Regenerating audio...**, **Rendering audio...** or **Rendering video...**. The script and timeline editors are disabled while a download runs because the render reads from them, and editing resumes when the download finishes. To download an earlier render, open **Exports** in **Settings** (see [Exports tab](#exports-tab)). A saved render does not include edits made after it was rendered. ### Choose which audio to render [#choose-which-audio-to-render] If your narration no longer matches the latest script, voice choices, or pronunciations, clicking the download button opens **Choose which audio to render**: * **Regenerate Audio & Render** updates the narration first, then renders. * **Render With Existing Audio** downloads now with the saved audio and matching captions. Your script edits stay saved either way, and you're asked again the next time you download. ## Download messages [#download-messages] * **Can't create a new render yet:** shown in the download dialog with a reason, usually because a line needs audio or another render is running. Follow the reason and try again. You can still download an earlier render from **Exports** in **Settings**. * **Downloaded an earlier version:** you edited the episode while the render ran, so those edits aren't in the file. Download again to include them. * **File still being prepared:** the render finished, but the file can take a few minutes to become available. It appears in **Exports** in **Settings** shortly, and nothing is broken. * **Failed to download audio / video:** if the render itself completed, the message links to **Exports** in **Settings** to download it there. ## Exports tab [#exports-tab] Go to **Settings** in the Studio sidebar and open **Exports** (next to **Usage & Billing**). It lists your renders, most recent first, and is visible to every role. Each row has: * **Title:** the episode, short or video title. **Untitled Export** appears when a render has no title. Long titles are shortened; hover to see the full title. * **Type:** **Episode**, **Video** or **Clip**. Shorts and standalone videos both list as **Video**, so check the title. Clips are retired and replaced by shorts, so **Clip** rows are older renders and no new ones are created. * **Status:** a **Rendering** or **Failed** badge on renders that are in progress or failed. Finished renders show no badge. * **Date:** the day the render was created. Hover for the exact time. A render is added to this list when you publish an Episode or request a render through Download or Share. Creating or editing an Episode, Short or Video does not add a render. Each row's menu offers **Download Video** and **Download Audio** when those files are available (audio needs a plan that includes it). The list shows up to 100 recent renders. To re-download an episode's latest version, use the **Download** button on the episode. For a short or video, see [Share, render and download](/docs/help/video-library-and-sharing#share-render-and-download). To download credit usage data as CSV or JSON, see [Viewing Invoices](/docs/help/account-and-billing/viewing-invoices). Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Edit episode details, cover and show notes (/docs/help/podcasts-and-episodes/editing-episode-details) Where you edit an episode's details depends on its [status](/docs/help/podcasts-and-episodes/episode-statuses). These steps cover one episode; for the podcast's own name, cover and settings, see [Editing Podcast Details](/docs/help/podcasts-and-episodes/editing-podcast-details). More guides are in [Podcasts and Episodes](/docs/help/podcasts-and-episodes). ## Draft episodes [#draft-episodes] Open the draft from the episode list to reach the episode editor, then click **Edit Details** beside the title. The dialog has the cover art thumbnail, **Title** and **Description** (rich text). Click **Save Changes** to apply them (the button stays disabled until something changes). To set the cover, click the thumbnail: * **Upload:** JPEG, PNG, GIF or WebP, up to 10 MB. * **Generate episode cover:** shown when your podcast has its own cover. It generates an image in your podcast cover's style, and you can add a short hint to steer it. * **Generate with AI:** shown when the podcast has no cover. You describe the image you want. If an episode has no cover of its own, the podcast's cover is used as the fallback, including in your RSS feed. ## Published and scheduled episodes [#published-and-scheduled-episodes] Open the episode's details page and click the **Edit Episode Details** button at the top. The dialog has: * **Title**, **Description** and the cover art picker. * **Explicit content:** a toggle, described below. * **Season:** shown only if the podcast has at least one season (options are **No season** and each season). See [Podcast Seasons](/docs/help/podcasts-and-episodes/podcast-seasons). * **Published On:** a date and time picker, for published episodes only. For scheduled episodes it is hidden, so change the time with **Edit Schedule** instead. Click **Confirm** to apply your changes. They go live immediately and do not autosave. Title is required. To change an episode's audio, script or visuals, click **Edit Episode** instead, then **Update Episode** when you are done. See [Updating a published episode](/docs/help/publishing-and-distribution/publishing-an-episode#updating-a-published-episode). ### Explicit content [#explicit-content] Jellypod scans the transcript when an episode publishes and sets the toggle for you. If the rating is wrong, flip it manually. Publishing the episode again re-scans it and can overwrite your override. Your whole show is marked explicit in the feed whenever any episode is. See [Explicit content in your RSS feed](/docs/help/publishing-and-distribution/your-rss-feed#explicit-content). ## Show notes [#show-notes] When **Include show notes** is on, Jellypod adds a **Show Notes** list of source links to the end of the episode description. The setting is on by default and lives in two places: * **Manual episodes:** the settings dropdown in the **Create New Episode** box. * **Automations:** the automation's settings, for both Schedule and Inbound Email triggers. A source is listed only if it shaped the episode's outline and the claim it supports made it into the final script. Sources that were consulted but unused, or cut during revisions, are left out. If none qualify, no list is added even with the setting on. Each entry shows the page title and its URL; only public web links are included. Show notes are ordinary description text, so edit or delete them like anything else: in **Edit Details** on a draft, or in **Edit Episode Details** once published. Turning the setting off only stops links being added. It does not change what the episode researches. # Edit podcast settings: cover, hosts and defaults (/docs/help/podcasts-and-episodes/editing-podcast-details) Every setting for a podcast lives in one editor. This page covers each one; for the wider workflow, see [Podcasts and Episodes](/docs/help/podcasts-and-episodes). ## Open the editor [#open-the-editor] 1. Select **Podcasts** in the sidebar, then open your podcast. 2. Open the actions menu (the three-dot button) and choose **Edit Podcast Details**. The same menu has **Edit Video Settings** and **Edit Episode Music**, which open just those cards. To retire a podcast instead, see [Archiving a Podcast](/docs/help/podcasts-and-episodes/archiving-a-podcast). ## What saves when [#what-saves-when] * The main fields, **Podcast Sources**, **Video Settings**, **Distribution** and **Advanced** are staged. Clicking **Done** in a card stages it in the main editor, and **Save Changes** applies everything at once. Closing the editor discards every unsaved change, including staged card changes. * **Brand** and **Episode Music Defaults** save as soon as you confirm them (**Save Brand**, **Done**), without waiting for **Save Changes**. * Opened through **Edit Video Settings**, the video card saves on its own **Save Changes** button. Opened through **Edit Episode Music**, the music card saves on **Done**. ## Main details [#main-details] * **Cover art:** Upload a replacement, or remove the current one. If you save with no cover, Jellypod generates one from the title and description. If generation fails, your previous cover stays. * **Title:** Up to 100 characters. It appears in directories, on your website and in the RSS feed. * **Description:** Rich text, 10 to 3,000 characters. * **Hosts:** Required, up to 4. Episodes speak in each host's own voice language, so if no host has a voice in the podcast's **Language**, a warning appears here. If none of your hosts covers it, the warning links to the Characters page to add one. * **Language:** The podcast's primary language. * **Categories:** Required, up to 2. ## Podcast settings cards [#podcast-settings-cards] ### Brand [#brand] Choose the identity this podcast and its new videos start from: your organization's default brand kit, any other brand kit, or a **Custom Primary override** for this podcast only. This card also sets your podcast website's accent color. See [Brand Kits](/docs/help/brand-kits#on-a-podcast). ### Podcast Sources [#podcast-sources] Attach up to 3 reusable sources (URLs, files, YouTube links, pasted text or items from your Asset Library) as context for every new episode. Detaching a source here does not delete it from your Asset Library. See [source levels](/docs/help/sources/what-are-sources#source-levels). ### Episode Music Defaults [#episode-music-defaults] Set default **Intro**, **Background** and **Outro** music. Defaults apply to new episodes only; existing episodes never change. Next to Intro, **Generate** (or **Regenerate** once an intro is set) creates an original intro: see [generating a podcast intro](/docs/help/podcasts-and-episodes/adding-music#generate-a-podcast-intro). ### Video Settings [#video-settings] Set the defaults new episodes start with: * **Video background color** * **Default video style** (see [Video Templates](/docs/help/podcasts-and-episodes/video-templates)) * **Default orientation:** **Landscape (16:9)**, **Portrait (9:16)** or **Square (1:1)** * **Add Watermark:** Upload a square PNG, JPG or WebP image (5 MB maximum), or choose **Click to use your cover art**, then pick a corner: **Top left**, **Top right**, **Bottom left** or **Bottom right**. The watermark is set for the podcast, so it shows on episode videos as they render, not only on new episodes. Custom watermarks and logos are available on Creator, Business, and Enterprise. They are not included on Starter or Educator, where adding one prompts an upgrade. Watermark and logo behavior for shorts and videos is covered in [Video creation settings](/docs/help/video-creation-settings#watermark-or-logo). Changing the orientation or style on an individual episode to something other than the saved default prompts **Save as podcast default?**, which updates these defaults if you accept. ### Distribution [#distribution] Paste the public URL for each podcast platform, and add social links. These appear on your [podcast website](/docs/help/publishing-and-distribution/your-podcast-website). Jellypod branding is removed automatically on the Creator plan and above. ## Advanced [#advanced] Click **Advanced** in the editor footer. * **Author:** Credited in podcast directories. * **Episode order:** **Episodic** or **Serial**. * **Visibility:** **Public** or **Private**. A podcast already set to Unlisted also shows Unlisted, and can move to Public but not back. What each option does, including Private publishing, is in [Podcast Visibility](/docs/help/publishing-and-distribution/podcast-visibility). * **Analytics:** Track episode plays and downloads. * **New episode emails:** Turn off to stop emailing your team when an episode publishes or is scheduled for this podcast. To stop these emails for all podcasts, turn off **New episode emails** in [notification preferences](/docs/help/account-and-billing/notification-preferences). While your personal setting is off, this toggle is disabled unless it is already on. * **Publish Video to Website:** Off by default, so publishing renders audio only. Turn it on to also render video whenever this podcast publishes and show it on your podcast website. **Download Video** from the episode toolbar renders video regardless. * **Additional Options:** Expands **Unlock RSS feed**, which temporarily allows a one-time host import. ## Effect on published episodes [#effect-on-published-episodes] Title, description and cover art update on your website and RSS feed. Existing episodes keep their own titles, descriptions and music. # Episode generation failed or lines need audio (/docs/help/podcasts-and-episodes/episode-generation-failed) A new episode's editor stays closed until its first generation voices at least one line. Until then you follow progress from the episode's row on the podcast page (see [Podcasts and Episodes](/docs/help/podcasts-and-episodes)). For videos, shorts and voiceovers, see [video, short and voiceover failures](/docs/help/video-generation-failures) instead. ## Why does my episode say Generation failed? [#why-does-my-episode-say-generation-failed] If generation fails, or a run stalls, click the episode's row to open the **Generation failed** dialog. It names the cause. When you can fix it, the dialog adds a button that takes you there: * **Choose a voice**: a character has no voice, or its voice is no longer available. * **Add credits**: the account ran out of credits. See [Understanding Credits](/docs/help/getting-started/understanding-credits). * **Review sources**: a source could not be processed. Replace or remove it in [Managing Sources](/docs/help/sources/managing-sources). * **Create a character**: an imported script names speakers that are not saved characters. Then click **Retry generation** to run generation again. It appears on its own when the failure looks temporary, such as a script that could not be written or a run that stopped early. There is no **Retry generation** button, only **Close**, when the same request would fail the same way. That covers wording the voice provider refuses to speak, a script that cannot be imported as written, and lines the voice provider could not voice. Edit the wording or switch the character, then create the episode again. The dialog explains why. If a run stops reporting progress, Jellypod marks it failed automatically so the episode is not left locked. To see what a normal run looks like, read [Watch it generate](/docs/help/getting-started/creating-your-first-episode#watch-it-generate). ## Why do some lines still need audio? [#why-do-some-lines-still-need-audio] If at least one line is voiced, the episode counts as a success. Jellypod keeps the audio it produced and opens the editor, and each line it could not voice shows a highlighted **Generate Audio** button. If no line is voiced, the episode fails instead. A common cause is a voice provider refusing the wording. Edit the wording or switch the host on that block, then click **Generate Audio** again. The button and the **Review lines** banner are described under [Speech blocks](/docs/help/podcasts-and-episodes/using-the-script-editor#speech-blocks). See [Regenerating Individual Segments](/docs/help/podcasts-and-episodes/regenerating-individual-segments) to fix just those lines. Regenerating audio is free, within a daily limit. ## When a regeneration fails [#when-a-regeneration-fails] Once the editor is open, a failed regeneration leaves the previous narration untouched and highlights the affected speech blocks. Click **Regenerate Audio** on each one to bring the episode up to date. Trying again will not help a line the provider keeps refusing; edit the wording or switch the host instead. ## Was I charged? [#was-i-charged] Credits are held when generation starts. If the episode fails, the hold is released and you are not charged. If the episode succeeds with some lines still needing audio, you are charged only for the audio that was voiced. ## Still stuck? [#still-stuck] Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). Say which episode failed and roughly when. # Episode statuses: draft, scheduled, published and more (/docs/help/podcasts-and-episodes/episode-statuses) Each episode in the list on your podcast page (see [Managing Episodes](/docs/help/podcasts-and-episodes/managing-episodes)) carries a status badge, part of [Podcasts and Episodes](/docs/help/podcasts-and-episodes). Hover over a badge for a date or detail. ## Generating [#generating] **Generating** shows while the first generation runs. Clicking the row shows a "still generating" message instead of opening the episode, and it opens automatically once generation succeeds. See [Watch it generate](/docs/help/getting-started/creating-your-first-episode#watch-it-generate) for what happens meanwhile. ## Failed [#failed] **Failed** means the first generation did not finish. Hover over the badge for the error, or click the row to open the **Generation failed** dialog. See [Episode Generation Failed](/docs/help/podcasts-and-episodes/episode-generation-failed) for causes and retrying. ## Draft [#draft] **Draft** is the state of a new or duplicated episode that is not live. Hover over the badge to see the creation date. While a draft renders for publication the badge reads **Publishing**. That is a display state, not a separate status, and the episode becomes **Published** when the render finishes. ## Scheduled [#scheduled] **Scheduled** episodes publish automatically at the scheduled time. Hover over the badge to see it. The three-dot menu has **Edit Schedule** (reschedule, or **Publish Now**) and **Cancel Schedule**. See [Scheduling Episodes](/docs/help/publishing-and-distribution/scheduling-episodes). ## Published [#published] **Published** episodes are live in your RSS feed and podcast website, and on connected directories. Hover over the badge to see the publish date. To change a live episode without unpublishing it, see [Publishing an Episode](/docs/help/publishing-and-distribution/publishing-an-episode). ## How episodes change status [#how-episodes-change-status] | From | To | How | | --------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------- | | Draft | Published | Publish the episode | | Draft | Scheduled | Schedule a future publish date | | Scheduled | Draft | **Cancel Schedule** in the three-dot menu | | Scheduled | Published | Automatic at the scheduled time, or **Publish Now** in **Edit Schedule** | | Published | Draft | **Unpublish Episode** in the three-dot menu; see [Unpublishing Episodes](/docs/help/publishing-and-distribution/unpublishing-episodes) | Returning an episode to Draft, by canceling a schedule or unpublishing, keeps all its content. # Import NotebookLM audio as an editable episode (/docs/help/podcasts-and-episodes/importing-notebooklm-audio) Import from NotebookLM turns a finished audio file into a **draft** episode with an editable script, voiced by two of your hosts. It works from any podcast in [Podcasts and Episodes](/docs/help/podcasts-and-episodes), and any audio file works, not only NotebookLM overviews. To publish a recording as-is instead, see [which import option to use](/docs/help/podcasts-and-episodes/uploading-your-own-episode#which-import-option). ## Import an audio file [#import-an-audio-file] 1. Open **Podcasts** in the sidebar and select your podcast. 2. In **Create New Episode**, select **Import from NotebookLM**. 3. Choose a **First Host** and a **Second Host**. They default to the podcast's regular cast, and they must be different. The podcast needs at least two hosts. 4. Drag the audio file into the upload area, or click **Browse Files**. 5. Click **Import Audio**. Keep the dialog open while it uploads, transcribes and imports, because it cannot be closed mid-import. When it finishes, the script editor opens on the new draft. ## What import does [#what-import-does] * **Transcribes and separates speakers.** Detected speakers map onto your two hosts in order of first appearance. No new hosts are created. * **More than two speakers.** Extra speakers cycle back onto your two hosts. You can reassign any speech block in the script editor afterward. * **Ignores non-speech sounds.** Sounds like `[sighs]` or `[laughter]` are dropped, so they never become a speaker or a stray line. To direct delivery, add [audio tags](/docs/help/podcasts-and-episodes/audio-tags) after import. * **Starts audio generation.** Narration begins right away in your hosts' voices and uses credits (see [understanding credits](/docs/help/getting-started/understanding-credits)). If you don't have enough, the script is still saved and you can generate audio from the editor later. * **Publishes nothing.** The result is a draft until you publish it. Edit the draft in the [script editor](/docs/help/podcasts-and-episodes/using-the-script-editor): rewrite lines, fix names and regenerate segments. ## Limits [#limits] | Limit | Value | | ------------------- | -------------------------------------------------------- | | Length | 30 minutes of audio | | File size | 250 MB | | Formats | MP3, WAV or M4A | | Plan episode length | The imported script is cut at your plan's episode length | Files over 30 minutes or 250 MB are rejected, so trim them first. Enterprise has no plan cap on episode length. ## Troubleshooting [#troubleshooting] * **"Audio is too long":** the file is over 30 minutes. Trim it and try again. * **"File too large":** the file is over 250 MB. Use a smaller file. * **"Please upload an audio file":** the file is not audio. Use MP3, WAV or M4A. * **"Episode script truncated":** the audio ran past your plan's episode length, so the script was cut and an upgrade prompt opens. The truncated draft is still created. * **"We couldn't detect any speech in this audio":** the file has no recognizable speech. Try a different file. * **Hosts unavailable or fewer than two:** add at least two hosts to the podcast, or pick hosts that are still active. Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # AI Podcasts: create, edit, publish and measure (/docs/help/podcasts-and-episodes) AI Podcasts is Jellypod's end-to-end podcast product. A podcast is a show with a cast of [characters and voices](/docs/help/characters-and-voices), and the [Podcast Agent](/docs/help/podcast-agent/how-the-podcast-agent-works) researches, writes and voices episodes from a prompt or your [sources](/docs/help/sources/what-are-sources). Most people start with [creating a first podcast](/docs/help/getting-started/creating-your-first-podcast). To run episodes on autopilot, including from an inbound email, set up an [automation](/docs/help/automations). After editing, use the [Publishing and Distribution](/docs/help/publishing-and-distribution) hub to publish, schedule, distribute by RSS, build a website and read analytics. ## Podcasts [#podcasts] * [Edit podcast settings](/docs/help/podcasts-and-episodes/editing-podcast-details): cover, hosts, language, brand, defaults and distribution links. * [Podcast seasons](/docs/help/podcasts-and-episodes/podcast-seasons): create numbered seasons and assign episodes. * [Archive a podcast](/docs/help/podcasts-and-episodes/archiving-a-podcast): hide it from your active list, then unarchive it. ## Episodes [#episodes] * [Manage episodes](/docs/help/podcasts-and-episodes/managing-episodes): search, duplicate, move or delete. * [Edit episode details](/docs/help/podcasts-and-episodes/editing-episode-details): title, description, cover, explicit flag and show notes. * [Episode statuses](/docs/help/podcasts-and-episodes/episode-statuses): what Draft, Generating, Failed, Scheduled and Published mean. * [Upload your own episode](/docs/help/podcasts-and-episodes/uploading-your-own-episode): publish a finished audio or video recording. * [Import NotebookLM audio](/docs/help/podcasts-and-episodes/importing-notebooklm-audio): turn an audio overview into an editable draft. ## Write and edit [#write-and-edit] * [Script editor](/docs/help/podcasts-and-episodes/using-the-script-editor): edit chapters and speech blocks, and change speakers. * [Audio tags](/docs/help/podcasts-and-episodes/audio-tags): add laughs, whispers and backchannels. * [Use your own script](/docs/help/podcasts-and-episodes/use-your-own-script): upload or import a finished script. * [Transcripts and captions](/docs/help/podcasts-and-episodes/downloading-transcripts-and-captions): download a transcript, SRT captions or script text. ## Produce audio [#produce-audio] * [Episode generation failed](/docs/help/podcasts-and-episodes/episode-generation-failed): fix failed renders and lines that still need audio. * [Regenerate segments](/docs/help/podcasts-and-episodes/regenerating-individual-segments): redo one line or fix out-of-sync audio. * [Add music](/docs/help/podcasts-and-episodes/adding-music): intro, outro and background tracks. * [Timeline editor](/docs/help/podcasts-and-episodes/using-the-timeline-editor): arrange, trim, fade and overlap audio. ## Episode video [#episode-video] * [Video templates and aspect ratio](/docs/help/podcasts-and-episodes/video-templates): pick a template and orientation. * [Download video and audio](/docs/help/podcasts-and-episodes/downloading-video-and-audio): get an MP4 or MP3 and find past renders. # Manage episodes: find, duplicate, move and delete (/docs/help/podcasts-and-episodes/managing-episodes) Every episode belongs to one podcast, and you manage them from the episodes table on that podcast's page (see [Podcasts and Episodes](/docs/help/podcasts-and-episodes) for the rest of this section). The table shows each episode's title, status, plays, duration and date. [Episode statuses](/docs/help/podcasts-and-episodes/episode-statuses) explains what each status means. ## Find and sort episodes [#find-and-sort-episodes] * **Search:** the search box filters by title and description. * **Sort:** click the **Episodes** (title), **Status** or **Date** header to sort ascending, click again for descending, and click a third time to return to the default order. Plays and Duration cannot be sorted. * **Default order:** by date, oldest first for Serial podcasts and newest first for Episodic ones. A generating episode shows live progress and its row does not open the editor. A failed episode opens a retry dialog when you click it, see [Episode generation failed](/docs/help/podcasts-and-episodes/episode-generation-failed). ## Duplicate an episode [#duplicate-an-episode] Open the row's three-dot menu and choose **Duplicate Episode**. The copy is a new **Draft** titled "(Copy)" followed by the original title. You can duplicate an episode in any status, including published. * **Copied:** description, script, hosts, sources, cover art (as a separate image file) and video template. * **Not copied:** generated audio, timeline, and publish status, date or schedule. Generate audio again for the copy. [Uploaded episodes](/docs/help/podcasts-and-episodes/uploading-your-own-episode) cannot be duplicated, and their menu has no **Duplicate Episode** option. During the free trial, a duplicate counts toward the trial episode limit. ## Move an episode to another podcast [#move-an-episode-to-another-podcast] 1. Open the episode's three-dot menu (on the podcast page or the episode page) and choose **Transfer Episode**. 2. In the dialog, choose the destination **Podcast**. 3. Click **Transfer Episode**. The move is immediate and only changes which podcast the episode belongs to. The destination must be another podcast in your organization. If you have none, the dialog reads "No other podcasts available to transfer to." ## Delete an episode [#delete-an-episode] 1. Open the episode's three-dot menu and choose **Delete Episode**. 2. Confirm in the dialog. Deleting is permanent and cannot be undone. Any generation still running for the episode is stopped. To take an episode off your feed and website but keep its content, [unpublish it](/docs/help/publishing-and-distribution/unpublishing-episodes) instead. # Podcast seasons: create, assign and delete (/docs/help/podcasts-and-episodes/podcast-seasons) Seasons are optional. A podcast with no seasons keeps its feed and website as they are. This page is part of [Podcasts and Episodes](/docs/help/podcasts-and-episodes). ## Create a season [#create-a-season] 1. Open the podcast's episode list in the Studio. 2. Click **Seasons**, next to the search bar. 3. Click **Add Season**. Each season gets the next number automatically. You can't set, change or reorder numbers. Add an optional title in the season's title field, for example "The Reckoning"; it saves when you click away from the field. Clear the field to remove the title. ## Assign episodes to a season [#assign-episodes-to-a-season] Once a podcast has at least one season, open a **published or scheduled** episode, click **Edit Episode Details**, and pick a season in the **Season** field (see [Editing episode details](/docs/help/podcasts-and-episodes/editing-episode-details)). Choose **No season** to remove the assignment. Draft episodes have no season field, so assign a season after you publish or schedule the episode. ## Delete a season [#delete-a-season] Open **Seasons**, click the delete icon on the season, then click **Delete Season**. Its episodes are never deleted: they stay published and become seasonless, and you can reassign them at any time. The dialog shows how many episodes are affected. ## How seasons appear [#how-seasons-appear] * **RSS feed:** episodes in a season carry `itunes:season` and `podcast:season` tags (the title goes in the `name` attribute of `podcast:season` when set). The `itunes:episode` number counts from 1 within each season, in publish order. Seasonless episodes are numbered among themselves. See [Your RSS feed](/docs/help/publishing-and-distribution/your-rss-feed). * **Podcast website:** the episode list is grouped by season, in the same order as your episode list. Each heading shows the season title if you set one, otherwise "Season N". Seasonless episodes appear in a group with no heading. See [Your podcast website](/docs/help/publishing-and-distribution/your-podcast-website). # Regenerate one line or fix out-of-sync audio (/docs/help/podcasts-and-episodes/regenerating-individual-segments) When one line sounds wrong or its text has changed, regenerate just that line instead of the whole episode. This page is part of [Podcasts and Episodes](/docs/help/podcasts-and-episodes). ## Regenerate a single line [#regenerate-a-single-line] From the script editor, hover a speech block and click **Regenerate Audio**. From the timeline, right-click the narration segment and choose **Regenerate Audio** (see the [timeline editor](/docs/help/podcasts-and-episodes/using-the-timeline-editor) for the rest of that menu). Both paths regenerate the same block and segment, and the rest of the episode audio is untouched. A toast tracks progress and reads **Audio generated successfully** when the segment is replaced. The button needs a host assigned to the block. If a line keeps sounding wrong because of a name or acronym, fix it in the [pronunciation guide](/docs/help/characters-and-voices/pronunciation-guide) first, then regenerate. There is no single button that regenerates a whole episode. Regenerate each block that needs it. When you publish or download after narration went stale, Jellypod offers **Regenerate Audio & Render** instead (see [Choose which audio to render](/docs/help/podcasts-and-episodes/downloading-video-and-audio#choose-which-audio-to-render)). ## Out-of-sync detection [#out-of-sync-detection] When a block's text, host, or a pronunciation rule it uses changes after it already has audio, Jellypod flags it: * The block text dims to 60% opacity. * The **Regenerate Audio** button switches to a warning style and stays visible without hovering; hovering it names which of those changed. Regenerate every dimmed block before you publish or download. A block with no audio yet is flagged the same way, but shows **Generate Audio** instead, with no reason to hover since none has been voiced. A line the voice provider could not speak stays in this state: edit the wording or switch the host, then regenerate; see [speech blocks in the script editor](/docs/help/podcasts-and-episodes/using-the-script-editor#speech-blocks) for each case. ## Running blocks in parallel [#running-blocks-in-parallel] You can regenerate different blocks at the same time, and each shows its own progress. A block that is regenerating is locked: its text can't be edited and its host can't be changed until the run finishes. Wait for a block to finish before regenerating it again. Editing other blocks is fine and does not cancel a run in flight. A whole-script run, started by **Regenerate Audio & Render** or by a broad agent edit (below), locks the rest: while it is active, other blocks' buttons are unavailable and a message asks you to wait for it to finish. ## Edits made by the Podcast Agent [#edits-made-by-the-podcast-agent] When the agent edits your script, Jellypod saves the script first, then regenerates audio at the smallest safe scope: * A small edit that keeps each block's identity regenerates only the affected lines. * Adding, removing or reordering blocks, changing more than half of the spoken words, or an unclear match between script and timeline regenerates every line. Jellypod decides the scope from the saved script and timeline, not from the agent or your browser. The update keeps running if you leave Studio. Blocks still waiting stay dimmed with the highlighted **Regenerate Audio** button. If a required line fails, the previous narration stays in place and the affected blocks are highlighted, so regenerate each one yourself. ## Credits and the daily limit [#credits-and-the-daily-limit] Regenerating audio is free, including after you edit, split, reorder or add blocks. See [understanding credits](/docs/help/getting-started/understanding-credits) for what does cost credits. A daily limit applies, and if you reach it Jellypod shows a message that the limit resets at midnight UTC. Once it resets, regenerate again. ## Troubleshooting [#troubleshooting] * **The button is missing:** the block has no host assigned. Assign one. * **The button is greyed out:** another audio run is active, or the episode is read-only. Wait for the run to finish. * **A line is refused or regeneration fails:** rewording or switching the host is usually the fix. See [when episode generation fails](/docs/help/podcasts-and-episodes/episode-generation-failed). Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Upload your own audio or video episode (/docs/help/podcasts-and-episodes/uploading-your-own-episode) Recorded an episode elsewhere? Upload the file to publish it through Jellypod hosting, without AI generation. It works from any podcast in [Podcasts and Episodes](/docs/help/podcasts-and-episodes). You are responsible for having the rights to what you upload, see [content ownership and rights](/docs/help/account-and-billing/content-ownership-and-rights). ## Upload an episode [#upload-an-episode] 1. Open **Podcasts** in the sidebar and select your podcast. 2. Click the **more options (...)** button next to **Edit Website**, then choose **Upload Audio**. 3. Drop your file into the dialog, or click **Browse Files**. A progress bar shows the upload. 4. Enter an **Episode Title** (required), an **Episode Description**, and optionally cover art. 5. Click **Publish Episode**. The button stays disabled until the upload finishes. Publishing happens when you click **Publish Episode**, and the episode goes live right away, with no draft step. It then appears on your podcast website and RSS feed, and on connected platforms like any other episode. ## Formats and limits [#formats-and-limits] * **Formats:** MP3, WAV, M4A (audio), MP4 and MOV (video). * **Size:** up to 250 MB per file. * **Duration:** Jellypod measures audio length before publishing. If it cannot, publishing fails with "Could not measure the uploaded audio duration." Try re-exporting the file. * **Free trial:** an upload counts toward the trial episode limit. ## What uploaded episodes lack [#what-uploaded-episodes-lack] Uploaded episodes are published as-is, so they have no script and no timeline editor, and you cannot change the audio or video file. You can still edit the title, description and cover art after publishing. They cannot be [duplicated](/docs/help/podcasts-and-episodes/managing-episodes#duplicate-an-episode). To pull one from your feed and website, see [Unpublishing episodes](/docs/help/publishing-and-distribution/unpublishing-episodes). Republishing brings the same file back. ## Which import option? [#which-import-option] | Option | Where | Result | | ------------------------------------------------ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | | **Upload Audio** | Podcast, more options (...) | Your recording published as-is, no script | | **Import from NotebookLM** (any MP3, WAV or M4A) | **Create New Episode** | An editable draft, rebuilt in your hosts' voices. See [importing NotebookLM audio](/docs/help/podcasts-and-episodes/importing-notebooklm-audio) | | **Upload Script** | **Create New Episode** | Your script only, with AI audio from your hosts. See [using your own script](/docs/help/podcasts-and-episodes/use-your-own-script) | Choose Upload Audio when the recording is final. Choose the others when you want Jellypod's script editor and AI voices. ## Troubleshooting [#troubleshooting] * **"Invalid file type":** the file must be audio or video. Convert to one of the formats above. * **Upload fails or the file is rejected:** check it is 250 MB or smaller, then retry. * **"Unable to publish episode":** try again. If it keeps failing, contact support. Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Use your own script: upload, import, review (/docs/help/podcasts-and-episodes/use-your-own-script) If you already have a finished script, you don't need the Podcast Agent to write one. This page is part of [Podcasts and Episodes](/docs/help/podcasts-and-episodes). Two entry points take a script, and both end in the same speaker review: | | Upload Script | Import Script | | ------------ | ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | | Where | The new-episode composer (dashboard **Podcast Episode**, or **Create New Episode** inside a podcast) | **Import / Export** menu (three-dot icon) in an episode, Magic Video, Shorts or Voiceover workspace | | What it does | Puts your script in the composer; nothing is created until you send | Runs the review at once and replaces the current script | | Review | Runs when you send | Runs when you click **Continue** | The same **Upload Script** button is in the composer for [Shorts and Magic Video](/docs/help/magic-video), which read the same script format and run the same speaker review. ## Starting a new episode from a script [#starting-a-new-episode-from-a-script] 1. Select **Podcast Episode** on the studio dashboard, or open a podcast and use the **Create New Episode** input. Click **Upload Script**. On desktop it sits beside Settings; on mobile, open Settings and choose it there. 2. In the **Upload script** dialog, paste your script or click **Choose file**, then click **Add script**. The text replaces anything you had typed in the composer, and your speaker labels stay as written. 3. The **Upload Script** button turns into a green checkmark and disables. Host selection and Duration lock (Duration shows **Auto**) because the script decides both, and adding sources is disabled. Clear the script text from the composer to unlock them. 4. Send. Jellypod runs the speaker review below, then generates audio in your hosts' voices. Pasting a finished script with speaker labels straight into the composer does the same thing without the button. So does [attaching it as a source](#attach-a-script-as-a-source). If narration can't start (for example, you're out of credits), Jellypod still creates the episode with your script attached. Open it and generate audio from the script editor, which asks you to add credits if you need them (see [Understanding credits](/docs/help/getting-started/understanding-credits)). If your connection drops during an import, check your podcast for the episode before trying again: the script may already be saved, and a second import can create another episode. ## Import a script into an existing episode or video [#import-a-script-into-an-existing-episode-or-video] 1. In the episode, Magic Video, Shorts or Voiceover workspace, click the three-dot icon (tooltip **Import / Export**) and choose **Import Script**. It is disabled while the script is locked, for example during a render. 2. In the **Import script** dialog, paste your script (placeholder "Paste your script here…") or drag a file onto the dialog or click **Choose file**. Document files show "Reading your document…" while text is extracted. 3. Click **Continue** to reach the speaker review. **Back** returns to the script. 4. Click **Import script**. The current script is replaced. In Magic Video, Shorts or Voiceover, this reuses existing narration and music where the new script still matches; changed lines regenerate audio like any other script edit. ### Formats and limits [#formats-and-limits] * Files: .txt, .md, .markdown, .docx, .doc, .rtf and .pdf, up to 4 MB. * Labels: start each speaker's turn on its own line with **\[John Doe]** or **John Doe:**, speech directly after. Bold, heading, list item and blockquote labels (as carried over from Word or Google Docs) still count. Plain prose without labels is detected automatically. * Length: no script can exceed 75 minutes of narration on any plan. A longer script is refused at the review with a request to split it into shorter episodes. A script within 75 minutes but over your plan's episode length is refused at import in the review flows (Upload Script, Import Script and a script source from the composer), not shortened: the error names the script's length and your plan's limit, so upgrade or shorten it. Episode length limits by plan are in [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits). * Screening: before importing, Jellypod screens the script for graphic violence, harassment and other content its speech providers won't voice. Describing violence alone doesn't trip it, so war, history and true-crime scripts import normally. If a script is flagged, nothing is imported and the error says why. ## Review the speakers [#review-the-speakers] The review lists every detected label before anything is created. Each row has a searchable host picker listing every active host in your account (not just this podcast's), a **Create new** button, and a sample line. * **Matched:** if a label's name matches an active host in your account, that host is preselected. * **Unmatched:** choose an existing host, or click **Create new** to have Jellypod generate a character from that speaker's lines (name and voice are editable afterwards). The row shows "Creating character…" while it works, and other rows stay usable. A character you create is available in the other rows' pickers. * **Remove:** the trash icon excludes a label that isn't really a speaker. After you confirm **Remove Speaker**, the words stay in the script, spoken by whoever had the floor before. * **Start over:** appears once you've removed a speaker, and resets removals and host choices to the original detection. Until every active speaker has a host, the review reads "Choose a host for N remaining speakers." and **Import script** stays disabled. At least one speaker must stay active. Nothing is created in your account until you import. If you removed labels, Jellypod re-checks the corrected speakers against the script once more before importing. Jellypod folds performance and emotion cues such as `[Laugh]`, `[Sigh]` or `[Pause]` into the surrounding line, and drops short document headers such as an `Audience:` or `Episode Type:` line. A longer header that carries real speech folds into the line after it. If a cue or header still appears as a speaker, **Remove** it, or direct delivery with [audio tags](/docs/help/podcasts-and-episodes/audio-tags) instead of bracket labels. A Short or Video allows up to 4 distinct hosts, and the review refuses more, telling you to reuse a host or remove a speaker. An episode has no host ceiling. To change the host of a single block after import, see [speech blocks](/docs/help/podcasts-and-episodes/using-the-script-editor#speech-blocks) in the script editor. ## Attach a script as a source [#attach-a-script-as-a-source] You can attach a finished script as a [source](/docs/help/sources/what-are-sources) from the new-episode composer. Jellypod judges each attached text source and looks for exactly one that reads like a finished script: * **Exactly one:** that source's narration is used word for word, and the other sources are not used for that generation. During speaker review, Jellypod removes clearly unspoken titles, rule lists, and visual or duration directions. If nothing spoken remains, the import is refused. * **None, or more than one:** every source is treated as research material for a newly written script. * **Override in your prompt:** say "read this verbatim" to force a word-for-word read, or "rewrite this" to force a fresh script. With no sources, only pasted text that carries speaker labels qualifies. From the composer, Jellypod loads the script into the composer and opens the speaker review when you send. If every speaker already matches a host and you haven't changed anything, it imports without asking. Sources still processing when you send are used as research material once processing finishes. To preserve a script's wording, wait for its source to finish processing or use **Upload Script**. Automations and API prompt requests use attached sources as research material for a new script. To preserve finished narration through the API, use `POST /v1/episodes/import`; through MCP, use `generate_episode` with `script`. Both accept `speaker_characters` to assign saved Characters to speaker labels. See the [agent guide](/docs/api/agents#generate-from-a-prompt-or-script). ## Edge cases [#edge-cases] | Situation | What happens | | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Speaker review times out or finds no speakers | Jellypod asks you to try again, or to start each turn with a **\[Name]** label so the labels are read as written instead of detected. | | A turn with no spoken words (an audio tag such as **\[sigh]**, an emoji, or leftover Markdown like a `---` rule or a table divider row) | Dropped, not narrated. If every turn is like this, the import is rejected. | | A script wrapped in production notes, such as "LOCKED SCRIPT", a numbered style rule list, or an "END OF SCRIPT" line | Clearly unspoken lines are removed from Upload Script, Import Script, source scripts, and API/MCP text imports. Spoken wording and delivery tags stay. If the judgement fails or is unsure, text stays as written, so production notes may be narrated. | | A **\[Name]** label matches no saved character (API or MCP script import) | Import is refused and names every unmatched label. Assign an existing Character with `speaker_characters`, or [create a Character](/docs/help/characters-and-voices/creating-a-character), then retry. | | Script over your plan's episode length | Refused, not shortened, in the review flows. See limits above. | | Episode exists but has no audio | Only narration didn't start, usually an empty credit balance. Generate audio from the script editor. | To get a script back out as a .txt file, see [Download the script as text](/docs/help/podcasts-and-episodes/downloading-transcripts-and-captions#download-the-script-as-text). # Script editor: edit text and change hosts (/docs/help/podcasts-and-episodes/using-the-script-editor) The script editor is the script panel of an episode in the Studio. It opens after the first playable line, as described in [Watch it generate](/docs/help/getting-started/creating-your-first-episode#watch-it-generate). For the other tools in this section, see [Podcasts and Episodes](/docs/help/podcasts-and-episodes). ## How the script is organized [#how-the-script-is-organized] The script is split into chapters. Each chapter has a numbered label ("Chapter 1") and a title you can click and rename (an empty title shows "Untitled Chapter"). Chapters hold speech blocks, the individual lines of dialogue. Each block shows a host name above its text and, on hover, a **Regenerate Audio** button. Edits save automatically about a second after you stop typing, and pending changes are saved if you leave the page. Chapters cannot be reordered here. To change the order of audio, use the [timeline editor](/docs/help/podcasts-and-episodes/using-the-timeline-editor). ## Speech blocks [#speech-blocks] Click into a block and edit the text like a document. To change who speaks, click the host name above the block and pick from the searchable list of your [characters](/docs/help/characters-and-voices) that have a voice. The change applies to that block only. A block with no host shows **No host** in red. Editing a block's text, or changing its host, when it already has audio marks the audio as out of sync. **Regenerate Audio** then stays visible without hovering, so you can redo that one block instead of the whole episode. It appears only once a block has a host. Details are in [out-of-sync detection](/docs/help/podcasts-and-episodes/regenerating-individual-segments#out-of-sync-detection). ### Dimmed blocks [#dimmed-blocks] A block is dimmed (60% opacity) when its audio no longer matches its text, or when it has no audio yet. Regenerate it to clear the dimming. While a block's audio is regenerating, that block is locked: its text and host cannot change until the run finishes. The rest of the script stays editable. ### Lines that need audio [#lines-that-need-audio] A dimmed block with no audio yet shows a highlighted **Generate Audio** button, whether it's a new line or one the last narration run could not voice (for example, the voice provider refused the wording). Click it to try again; if the provider refuses the wording again, edit it or switch the host first. See [Episode generation failed](/docs/help/podcasts-and-episodes/episode-generation-failed) if many lines are affected. A dimmed block that already has audio, because its text, host, or a pronunciation rule changed since it was voiced, shows **Regenerate Audio** instead, and hovering the button names which of those changed. While any line needs audio, a banner above the script says how many lines need audio before this version can be rendered or published, with a **Review lines** button that jumps to the first one. Rendering, publishing, and starting a new download wait until every line has audio. A render you saved earlier stays available in **Exports** in **Settings**. ## Toolbar and menus [#toolbar-and-menus] The **Pronunciation Guide** button at the top right of the script opens the [Pronunciation Guide](/docs/help/characters-and-voices/pronunciation-guide), for fixing words that are read wrongly. The Import / Export menu is not in the script toolbar. It is the three-dot menu in the episode actions area of the workspace. It offers: * **Import Script**: see [Use your own script](/docs/help/podcasts-and-episodes/use-your-own-script). It is disabled while the editor is locked for a render. * **Export Script**: saves the script as a `.txt` file. See [Downloading transcripts and captions](/docs/help/podcasts-and-episodes/downloading-transcripts-and-captions). * **Delete Episode**. ## Editing while an episode renders [#editing-while-an-episode-renders] Downloading, publishing, and re-rendering a share link each start a render, and a render reads the script as saved. While one runs, the script shows "Editing disabled while rendering", the editor is read-only, and the timeline is locked too. Edits still waiting to save are saved first. Editing resumes on its own when the render finishes. Generating or regenerating audio does not lock the script. Only the block being regenerated is locked. # Timeline editor: arrange, trim, fade and overlap audio (/docs/help/podcasts-and-episodes/using-the-timeline-editor) The timeline shows every audio clip in an episode on its own track, so you can move, trim, fade and layer them. It is part of the episode editor in [Podcasts and Episodes](/docs/help/podcasts-and-episodes), and it is for timing and mixing rather than wording. ## Opening and resizing the timeline [#opening-and-resizing-the-timeline] Click the **Open Timeline** button on the right of the playback bar, below the script editor. The same button then reads **Collapse Timeline**. It is disabled until the episode has generated audio. Drag the top edge of the timeline panel to resize it, up to the full height of your window. Dragging it below its smallest usable height collapses it, and reopening restores your previous height. ## Timeline layout [#timeline-layout] * **Track headers** (left): each host has a track named after them, with their avatar. Music gets its own rows, labeled **Intro Music**, **Outro Music** or **Background Music** (numbered when you add more than one of the same kind). A track made by dropping your own audio file is named after that file. * **Time ruler** (top): click it to move the playhead. * **Segments:** colored blocks with waveforms. Each host and each uploaded track has its own color. * **Playhead:** the current playback position. The zoom slider, with **Zoom in** (+) and **Zoom out** (-) buttons beside it, appears on the right of the playback bar while the timeline is open. Zoom in for precise edits, out to see the whole episode. ## Moving, snapping and trimming [#moving-snapping-and-trimming] Drag a segment to reposition it. Segments snap to the edges of other segments and to the playhead, and guide lines show when one aligns. Snapping is always on. Each host has one track, so a host's segment stops when it reaches another segment on that host's track. Segments on different hosts' tracks can overlap by any amount, which gives you crosstalk. To overlap every pair of takes at once, use [Speaker spacing](#speaker-spacing). To trim, hover over a segment's edge until the trim handle appears, then drag inward. A segment cannot be trimmed shorter than one second. Trimming is a quick way to cut a long pause from the start or end of a speech block. ## Selecting and seeking [#selecting-and-seeking] Click a segment to select it and move the playhead there. Clicking empty space in a track or on the ruler moves the playhead without selecting anything. None of this starts or stops playback: playing audio keeps playing from the new position, and paused audio stays paused. ## Cut, copy, duplicate and delete [#cut-copy-duplicate-and-delete] Right-click a segment, or select it and use a shortcut: | Action | Shortcut | | ------------- | ------------------------------ | | **Cut** | Cmd/Ctrl+X | | **Copy** | Cmd/Ctrl+C | | Paste | Cmd/Ctrl+V | | **Duplicate** | Cmd/Ctrl+D | | **Delete** | Backspace or Delete | | Undo | Cmd/Ctrl+Z | | Redo | Cmd/Ctrl+Shift+Z or Cmd/Ctrl+Y | The right-click **Delete** asks you to confirm before removing the segment. A generated narration segment cannot be cut, copied or duplicated. Each script block has exactly one take, so a second copy would leave the timeline with no single narration to regenerate. Its right-click menu offers only **Regenerate Audio**, **Edit Audio** and **Delete**. **Regenerate Audio** replaces only that block's narration; see [Regenerating individual segments](/docs/help/podcasts-and-episodes/regenerating-individual-segments) for behavior and credit costs. Music and uploaded audio keep the full menu. ### Deleting a host's narration [#deleting-a-hosts-narration] Deleting a speech segment removes that host's narration from the timeline. The matching block in the script editor is marked stale and needs regeneration before you can render, download or publish. This holds after a reload. ## Volume and fades [#volume-and-fades] Right-click a segment and choose **Edit Audio** to open: * **Volume:** a decibel control for the segment's level. * **Fade In** and **Fade Out:** how long the segment takes to ramp up at the start or down at the end, up to 10 seconds. A short segment, or a long fade already set on the opposite end, lowers that limit. The dialog shows the current maximum. You can also drag a segment's fade handles on the timeline. Each track header has a volume control that adjusts the whole track while keeping the balance between its clips, with a **Mute** / **Unmute** button. It is available on music and uploaded tracks as well as host tracks. Muting a track silences it, so you can hear the episode with or without music. ## Speaker spacing [#speaker-spacing] Click **Audio Settings** in the playback bar, next to **Add Music**, to open the **Speaker spacing** slider. It sets the gap between every pair of consecutive speakers' takes at once, from a one-second overlap (-1) to a one-second gap (+1), in 0.05-second steps. The default is 0, back to back. Drag left for overlap and right for a gap. The popover shows the current value with its sign, such as `+0.50s` or `-0.40s`. **Reset** returns to back to back and is disabled when you are already there. Overlapping takes creates crosstalk. A take cannot be overlapped past half the length of the shorter take in the pair, so two takes never swap places. Speaker spacing moves only speech. An intro or outro keeps its position. Background music follows the sizing rules under adding music. ## Adding your own audio from the timeline [#adding-your-own-audio-from-the-timeline] Drag an audio file from your desktop onto the timeline. A preview shows where it will land, and dropping it adds the clip to a new track named after the file. Use this for a recorded intro, a guest's voice memo or an interview snippet alongside your AI hosts. You can then move, trim and fade it like any other segment. To replace the whole episode with a recording, see [Uploading your own episode](/docs/help/podcasts-and-episodes/uploading-your-own-episode). ## Music on the timeline [#music-on-the-timeline] Music sits on its own lane: trim, move, cut, copy, duplicate, adjust volume and fades, or delete it. Add or swap music with **Add Music** in the playback bar. Looping, defaults and background music sizing are covered in [Adding music](/docs/help/podcasts-and-episodes/adding-music). ## Missing files [#missing-files] If a music or uploaded audio file is removed from your media library, its segment shows a **File missing** badge naming the file. The episode keeps playing and skips that segment, but rendering, downloading or publishing fails and names the same file. Replace the file to clear the badge. ## Playback controls [#playback-controls] The playback bar sits between the script editor and the timeline, in three parts: * **Left:** **Add Music** and **Audio Settings**. Both are disabled while the timeline is locked. * **Center:** **Go to Start**, Play/Pause, **Go to End**, and the time display. * **Right:** the zoom slider (timeline open only) and the **Open Timeline** / **Collapse Timeline** button. Press **Space** to toggle play/pause (it is ignored while you are typing in a text field). **Go to Start** jumps to 0:00 and **Go to End** jumps to the end of the episode. The time display reads `current / total`, for example `1:23 / 12:45`, and updates as the playhead moves. All playback controls are disabled until the episode has generated audio. Playback keeps working while the script editor or timeline is locked, so you can still play, pause and scrub during a render. For what locks the timeline, see [Editing while an episode renders](/docs/help/podcasts-and-episodes/using-the-script-editor#editing-while-an-episode-renders). # Episode video: templates and aspect ratio (/docs/help/podcasts-and-episodes/video-templates) Every episode has a video preview with controls above it. This page covers the two that shape the look of the video: the template and the aspect ratio. For the rest of the section, see [Podcasts and Episodes](/docs/help/podcasts-and-episodes). ## Choosing a template [#choosing-a-template] 1. Open an episode in the Studio. 2. Click the **Video Style** button above the video preview to open the **Choose a video style** picker. The button shows your current selection. 3. Select a template card, then click **Use** (it names your pick, for example "Use Karaoke"). **Cancel** closes the picker without changing anything. **Use** stays disabled until you select a different template. Templates are fixed layouts, so the preview updates instantly and nothing is generated. Karaoke is the default for new podcasts and episodes. Switching templates changes only the visuals: your audio and script are untouched. To set the default for every new episode, see [Video Settings in Editing Podcast Details](/docs/help/podcasts-and-episodes/editing-podcast-details#video-settings). Templates do not use [brand kit](/docs/help/brand-kits) colors. The background comes from the **Background** control next to the template picker. If you have not set one for the episode or podcast, it is derived from the podcast cover image, or a dark gray when there is no cover image. | Template | What it shows | | -------------------- | ------------------------------------------------------------------ | | Classic Audiogram | A waveform synced to the audio, with the podcast cover art. | | Conversation | Host avatars that pulse as each person speaks, with live captions. | | Classic Captions | Captions in clean typography over a styled background. | | Full Screen Captions | Large captions that fill the screen. | | Spotlight | Captions that emphasize key words as they are spoken. | | Karaoke | Large, centered captions with karaoke-style word highlighting. | ### Full Screen Captions [#full-screen-captions] Large captions fill the frame against the background color you set with the **Background** control. Choose it when you want a text-first video with no waveform or avatars. For a new Video from a prompt, see [Choosing a Video Product](/docs/help/choosing-a-video-product) to pick between Magic Video and Shorts. ## Aspect ratio [#aspect-ratio] 1. Open an episode in the Studio. 2. Open the **Orientation** dropdown above the video preview. A checkmark marks the current selection. 3. Choose an option. The preview resizes immediately. | Orientation | Size | Ratio | Good for | | ----------- | --------- | ----- | ---------------------------------------- | | Landscape | 1920x1080 | 16:9 | YouTube, website embeds, desktop viewing | | Portrait | 1080x1920 | 9:16 | TikTok, YouTube Shorts, Instagram Reels | | Square | 1080x1080 | 1:1 | Instagram feed, X, LinkedIn | Landscape is the default when nothing else is set. To get the same episode in several ratios, choose one, [download the video](/docs/help/podcasts-and-episodes/downloading-video-and-audio), switch to another orientation and download again. Each render is independent. If both controls are greyed out with the tooltip "Video appearance is temporarily locked", the episode's appearance can't be edited at that moment. Try again shortly. ## Save your choice as the podcast default [#save-your-choice-as-the-podcast-default] When your template or orientation differs from the podcast's saved default, a small prompt appears under the controls, for example "Use Karaoke for every new episode?" It works the same for both controls: * **Save as default** applies your pick to every new episode of this podcast. Existing episodes are unchanged. * **Not now** dismisses the prompt. The episode keeps your pick either way, so ignoring the prompt costs nothing. You can also set both defaults in Video Settings under **Edit Podcast**. ## Episodes don't carry generated visuals [#episodes-dont-carry-generated-visuals] Podcast episodes are focused on audio, so Magic Video cannot be chosen as an episode template or a podcast default. New AI-generated video starts in [Magic Video](/docs/help/magic-video) or [Shorts](/docs/help/shorts), where the visuals are fully editable. If an episode previously had Magic Video visuals, that video now lives separately in your **Videos** library, titled after the episode, and is edited there like any other Video. The episode itself keeps its audio and feed entry unchanged, and now renders on a Podcast Template, Karaoke if the podcast's saved default was Magic Video. ## Create a Magic Video from an Episode [#create-a-magic-video-from-an-episode] 1. Open the Episode and click **Video Style**. 2. In the **Magic Video** banner above the Episode templates, click **Create Video**. 3. Choose a visual style, then click **Generate (\~… credits)** to confirm the estimated cost. Jellypod creates a separate, editable Video with new visuals. It reuses the Episode's saved narration, speech timing and music, without regenerating audio. Each copy can be edited independently. The credit estimate covers the new visuals. You can also [copy a Video into a Podcast](/docs/help/video-editor#copy-a-video-to-a-podcast). # Podcast analytics: plays, countries and top episodes (/docs/help/publishing-and-distribution/analytics) Analytics are per podcast: there is no dashboard across podcasts. Open a podcast in the Studio and choose the **Analytics** tab. This page is part of [Publishing and Distribution](/docs/help/publishing-and-distribution). ## Turn analytics on [#turn-analytics-on] A podcast with analytics off shows **Analytics not enabled**. Click **Enable Analytics**, or switch on **Analytics** under **Advanced** in the [podcast editor](/docs/help/podcasts-and-episodes/editing-podcast-details#advanced). With analytics on, the audio links in your [RSS feed](/docs/help/publishing-and-distribution/your-rss-feed) are tracked. Plays are recorded through those tracked links, so turn analytics on before you promote a show. A [Private podcast](/docs/help/publishing-and-distribution/podcast-visibility) has no RSS feed served, so it gets no RSS plays. To put a player on another site, see [Embedding your podcast](/docs/help/publishing-and-distribution/embedding-your-podcast). ## What each card shows [#what-each-card-shows] Audio downloads and video plays are counted together as plays. | Card | What it shows | | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Summary | **Total Plays**, **Last 30 days**, **Last 7 days** and **Top country** | | **Plays Over Time** | Daily bars, defaulting to the last 90 days. The date picker changes the range, and hovering a bar shows that day's count | | **Top Countries** | Your 10 biggest audiences by country, with a month selector | | **Top Apps** | Where people play, as a share of plays. Video plays on your Jellypod website appear as Jellypod | | **Top Devices** and **Top Browsers** | Device types and browsers, as a share of plays | | **Top Episodes** | Plays per published episode for **First Day**, **First 7 Days**, **First 30 Days**, **First 90 Days** and **All Time**, measured from each episode's publish date | Sort **Top Episodes** by clicking a column header. It starts sorted by First 90 Days. Click an episode title to open it in the Studio. ### Video play limits [#video-play-limits] Video plays are read from Jellypod's video hosting, and only the most recent 90 days of them are counted. **Total Plays** is therefore all-time audio downloads plus the last 90 days of video plays, so it can drop as older video plays age out. The footnote under the table says 100 days, but the count uses 90. ## Share a stats card [#share-a-stats-card] Click **Share Stats** beside the date picker on **Plays Over Time** to preview a stats card for the selected dates. Pick **Square** (1:1), **Portrait** (9:16) or **Landscape** (16:9), then **Download** the image or, on devices that support it, **Share**. If sharing fails, download it instead. If the tab shows **Error loading analytics**, try again later. Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Custom domain and subdomain settings for your podcast (/docs/help/publishing-and-distribution/custom-domains) Every podcast gets a free `yourshow.jellypod.com` subdomain when you create it, derived from your title. This page covers changing it or connecting your own domain to your [podcast website](/docs/help/publishing-and-distribution/your-podcast-website). For the wider picture, see [Publishing and Distribution](/docs/help/publishing-and-distribution). ## Requirements [#requirements] Custom domains are available on Business and Enterprise (see [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits)). On other plans, a **Pro** badge appears on the **Custom domain** field, and saving prompts you to upgrade. ## Connect a custom domain [#connect-a-custom-domain] 1. Open your podcast, click **Share Podcast**, then click **Edit Domain** next to **Podcast Link**. 2. Enter your domain in **Custom domain**, for example `podcast.yourcompany.com` or `yourcompany.com`. Leave out `http://`, `https://` and `www.`; the field rejects them. 3. Click **Save Domain**. A "Custom domain added" message tells you to configure your DNS records. 4. At your domain registrar (Namecheap, GoDaddy, Cloudflare and so on), add the DNS records below, then reopen **Edit Domain** and follow the status under your domain. It refreshes about every 10 seconds until the domain is valid. ### DNS records [#dns-records] * **A record:** name blank (or `@`), value `76.76.21.21`, TTL 86400. Use this for an apex domain such as `yourcompany.com`. * **CNAME record:** name `www` (or your subdomain prefix, such as `podcast`), value `cname.jellypod.com.`, TTL 86400. Use this for a subdomain or the `www.` version. If you enter an apex domain (`yourcompany.com`), Jellypod also registers the `www.` version and redirects it to the apex. A subdomain such as `podcast.yourcompany.com` registers only itself. ### Domain status [#domain-status] | Status | What to do | | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | | **Valid Configuration** | Done. "Domain verified successfully," and it can take a few minutes to fully propagate. | | **Pending Verification** | Wait. Verification is still running. | | **Invalid Configuration** | Check that your records match exactly and no conflicting DNS records exist, then wait for propagation (up to 48 hours). | | **Domain Not Found** | Check the spelling, confirm the domain is registered, and wait for propagation (up to 48 hours). | | **Unknown Error** | Recheck your DNS records and that the domain is registered, wait a few minutes and try again, then contact support if it persists. | | **Domain already in use** | The domain is connected elsewhere. Contact support to get it set up. | If saving fails with "This domain is already in use" or "Could not register this domain," contact support. Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). ## What changes once it is live [#what-changes-once-it-is-live] * Visitors to your `yourshow.jellypod.com` website are redirected to your custom domain, and your [RSS feed](/docs/help/publishing-and-distribution/your-rss-feed) URL shown in Jellypod switches to it. The `/rss` feed keeps answering on both hosts. * Your podcast QR code follows the domain. ## Remove a custom domain [#remove-a-custom-domain] Open **Edit Domain**, click the trash icon next to your domain, then confirm **Remove domain**. Your podcast is no longer reachable at that address, and you can add a custom domain back at any time. ## Changing Your Subdomain [#changing-your-subdomain] In **Edit Domain**, type a new name in **Subdomain**. Jellypod checks availability as you type, and **Save Domain** works only once the name shows as available ("This subdomain is already taken" means pick another). Confirm **Change subdomain** in the "Change your subdomain?" prompt. The old subdomain is not redirected. Its website returns a not found page, and its RSS feed stops working (podcast apps are told the feed is gone). Update the feed URL in each podcast app and directory; see [RSS feed not updating](/docs/help/publishing-and-distribution/rss-feed-not-updating) if a platform keeps the old one. # Submit your podcast to Spotify, Apple and YouTube (/docs/help/publishing-and-distribution/distributing-to-podcast-apps) Submit your podcast's RSS feed to each platform once. After approval, every episode you publish reaches that platform through the feed. For the wider picture, see [Publishing and Distribution](/docs/help/publishing-and-distribution). ## Before you start [#before-you-start] * Your plan must include distribution: Starter, Creator, Business and Enterprise. Not Educator. On other plans, clicking a platform badge opens an upgrade prompt. * The podcast must be Public, because platforms read your feed without signing in. If it is Private or Unlisted, the dialog shows a **Make podcast public** button. See [Podcast Visibility](/docs/help/publishing-and-distribution/podcast-visibility). * Publish at least one episode first. * You need an account with the platform you are submitting to. To start, open your podcast in the Studio and click the **Spotify**, **Apple Podcasts** or **YouTube** badge below the podcast header. The **Distribute on** dialog lists the steps and has a copy field for your feed URL. You can also find the URL as described in [Your RSS Feed](/docs/help/publishing-and-distribution/your-rss-feed). Approval usually takes a few hours. Once approved, paste your podcast's URL on that platform into the **Save your (platform) podcast link** field in the same dialog and click **Save link**, so listeners can find it on your Jellypod website. If episodes are missing later, see [RSS feed not updating](/docs/help/publishing-and-distribution/rss-feed-not-updating). ## Spotify [#spotify] 1. Go to [Spotify for Podcasters](https://creators.spotify.com/dash/submit) and sign in. 2. If there is no place to submit an RSS feed, click the upper-right icon and choose **Add a new show**. 3. Click **Find an existing show**. 4. Paste your RSS feed URL. 5. Review the podcast information and submit for approval. 6. Spotify sends a verification email to confirm you own the podcast. Jellypod forwards it to you (see [Verification email](#verification-email)). ## Apple Podcasts [#apple-podcasts] 1. Go to Apple Podcasts for Creators at [podcasters.apple.com](https://podcasters.apple.com/) and sign in with your Apple account. The Jellypod dialog links to the same tool under its older name, Apple Podcasts Connect. 2. Click the plus (+) icon in the upper-right corner and choose **New Show**. 3. Choose **Add a show with an RSS feed**. 4. Paste your RSS feed URL. 5. Review the podcast information and save for approval. If approval takes longer than expected, check that the podcast has a published episode and that its cover art is square, between 1400x1400 and 3000x3000 pixels (Apple's requirement). Apple requires disclosure of AI-generated content in the content and metadata of each show and episode, and you are responsible for making it. See [AI disclosure](/docs/help/account-and-billing/content-ownership-and-rights#ai-disclosure). ## YouTube [#youtube] You need a YouTube or Google account with access to YouTube Studio. 1. Go to [YouTube Studio](https://studio.youtube.com/) and sign in. 2. Click **Create** in the top-right corner and choose **New Podcast**. 3. Click **Submit RSS feed**. 4. Paste your RSS feed URL. 5. Follow YouTube's ownership steps and click **Send Code**. Jellypod forwards the verification email to you. 6. Copy the code from that email and paste it into YouTube. Your feed delivers audio and cover art only, so YouTube shows your cover art as a still image and does not receive video through RSS. To put video episodes on YouTube, [download the video](/docs/help/podcasts-and-episodes/downloading-video-and-audio) and upload it to YouTube yourself. ## Verification email [#verification-email] Every podcast has its own forwarding email address, embedded in its RSS feed. Platforms send verification codes there, and Jellypod forwards them to your account email, so your real address is never shared with the platform. Only known senders are forwarded: Spotify, Apple, YouTube and other major podcast platforms. Email from other senders is blocked. If an expected email does not arrive, check your spam folder. Then contact support and name the sender you are waiting for so the team can add it. Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Embed your podcast player on any website (/docs/help/publishing-and-distribution/embedding-your-podcast) Part of [Publishing and Distribution](/docs/help/publishing-and-distribution). Paste one iframe into any platform that accepts HTML, such as WordPress, Squarespace, Notion, Webflow or Ghost. ## Get your embed code [#get-your-embed-code] 1. Open your podcast in the Studio and click the **Embed Player** button (the code icon). 2. Pick a **Theme** and a **Size**: **Full** (player with episode list) or **Compact** (player only). The preview updates as you choose. 3. Click **Copy code** and paste it into your site. The code points at your custom domain if you have one, otherwise your `jellypod.com` subdomain. By default the player plays your latest episode. Private podcasts cannot be embedded: the embed URL returns a not found page until you make the podcast public. See [podcast visibility](/docs/help/publishing-and-distribution/podcast-visibility). ## Embed a single episode [#embed-a-single-episode] Open that episode's Share dialog for its own embed code. It is only shown for published episodes and always uses the Compact player. See [sharing episodes](/docs/help/publishing-and-distribution/sharing-episodes). Episode pages on your [podcast website](/docs/help/publishing-and-distribution/your-podcast-website#episode-pages) already have a built-in player; use the embed code to put the player on another site. ## Themes [#themes] Choose from 8 themes: Light, Dark, Black, Slate, Red, Green, Blue and Yellow. To set one in the URL, add `theme=dark` (lowercase theme name). ## Custom colors [#custom-colors] For exact brand matching, append color parameters to the embed URL. Use hex values, with or without the `#`: * `primary_color`: text and icon color * `secondary_color`: secondary and muted elements * `tertiary_color`: accent elements * `background_color`: player background ``` https://your-podcast.jellypod.com/embed?primary_color=ffffff&background_color=1a1a2e ``` Add `version=compact` to get the Compact player from a hand-edited URL. ## Jellypod branding [#jellypod-branding] The player shows Jellypod branding on Starter and Educator. It is removed automatically on Creator, Business and Enterprise, and there is no per-embed toggle. # Publish and distribute your podcast: overview (/docs/help/publishing-and-distribution) Publishing puts an episode on your podcast website and in your RSS feed. Podcast apps read that feed, so you submit it once and later episodes appear on their own. ## How publishing works [#how-publishing-works] 1. **Publish an episode.** [Publish an episode](/docs/help/publishing-and-distribution/publishing-an-episode) now, or schedule it for later. Whether your show is Public or Private is set by [podcast visibility](/docs/help/publishing-and-distribution/podcast-visibility). 2. **Distribute once.** Copy your [RSS feed](/docs/help/publishing-and-distribution/your-rss-feed) and [submit it to podcast apps](/docs/help/publishing-and-distribution/distributing-to-podcast-apps). 3. **Set up your website.** Every podcast gets a [podcast website](/docs/help/publishing-and-distribution/your-podcast-website), and you can add your own domain. 4. **Share and embed.** Send links, QR codes and players to listeners. 5. **Measure.** [Analytics](/docs/help/publishing-and-distribution/analytics) shows plays over time. Which plans include scheduling, platform distribution, branding removal and custom domains is listed under [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits). ## Guides in this section [#guides-in-this-section] * [Scheduling episodes](/docs/help/publishing-and-distribution/scheduling-episodes): publish automatically at a future date and time. * [Unpublishing episodes](/docs/help/publishing-and-distribution/unpublishing-episodes): pull an episode back to a draft. * [Sharing episodes](/docs/help/publishing-and-distribution/sharing-episodes): share links, social posts and QR codes. * [RSS feed not updating](/docs/help/publishing-and-distribution/rss-feed-not-updating): fix episodes that are missing from podcast apps. * [Custom domains](/docs/help/publishing-and-distribution/custom-domains): serve your website from your own domain. * [Embedding your podcast](/docs/help/publishing-and-distribution/embedding-your-podcast): add the player to any website. # Public vs private podcasts: what visibility controls (/docs/help/publishing-and-distribution/podcast-visibility) Visibility is a per-podcast setting that decides which parts of [Publishing and Distribution](/docs/help/publishing-and-distribution) can reach outside your team. New podcasts are **Public** or **Private**. | | Public | Private | Unlisted (legacy) | | --------------------------------------------------------------------------------- | --------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------ | | [Website](/docs/help/publishing-and-distribution/your-podcast-website) | Online, indexed by search engines | Not found for everyone, including direct links | Online by direct link, not indexed | | [RSS feed](/docs/help/publishing-and-distribution/your-rss-feed) | Served | Not found for everyone | Served | | [Share links](/docs/help/publishing-and-distribution/sharing-episodes) and embeds | Available | No link or embed code; the Share dialog offers **Make podcast visibility public** | Available | | Spotify, Apple Podcasts, YouTube | Can be distributed | Not reachable | Studio asks you to make the podcast public first | | Downloads from the Studio | Available | Available | Available | Search engines index a Public website only after the podcast has a published episode. A Private podcast is a generation workspace: download episodes from the Studio instead. ## Change a podcast's visibility [#change-a-podcasts-visibility] Open **Edit Podcast**, click **Advanced**, choose **Visibility**, click **Done**, then click **Save Changes** (see [Editing Podcast Details](/docs/help/podcasts-and-episodes/editing-podcast-details#advanced)). Switching to Private takes the website, feed and share links offline. Switching back to Public restores them. ## Publish an episode on a Private podcast [#publish-an-episode-on-a-private-podcast] The publish dialog shows **This podcast is private**, with two choices: * **Make podcast public** gives you a website, RSS feed and distribution, then continues publishing. * **Keep private and publish** finalizes the episode. The finished media is available to your API and integrations only, not to a website or feed. ## Legacy Unlisted podcasts [#legacy-unlisted-podcasts] Unlisted is retired for new podcasts. Existing Unlisted podcasts keep working and can move to Public or Private, but cannot be set back to Unlisted. ## Archiving does not change visibility [#archiving-does-not-change-visibility] [Archiving a podcast](/docs/help/podcasts-and-episodes/archiving-a-podcast) only hides it in the Studio, and its visibility stays as you set it. # Publish an episode: progress and updates (/docs/help/publishing-and-distribution/publishing-an-episode) Publishing finalizes your episode, adds it to your RSS feed and podcast website, and lets connected platforms pick it up. This page is part of [Publishing and Distribution](/docs/help/publishing-and-distribution). Before you publish, check [commercial use and AI disclosure](/docs/help/account-and-billing/content-ownership-and-rights). ## How to publish [#how-to-publish] 1. Open the episode in the editor. **Publish Episode** is in the toolbar. 2. If the episode has no audio yet, the button is inactive and clicking it explains why. Click **Generate Audio** in the episode details first. The button becomes active once audio and any video production finish. 3. Click **Publish Episode**, then choose **Publish Now** or **Schedule for Later** (see [Scheduling episodes](/docs/help/publishing-and-distribution/scheduling-episodes)). 4. Click **Publish Episode** in the dialog to confirm. If your narration is out of date, a **Choose which audio to render** dialog appears first. The options are described in [Choose which audio to render](/docs/help/podcasts-and-episodes/downloading-video-and-audio#choose-which-audio-to-render). To save a file instead, use the separate **Download** button. ## What happens when you publish [#what-happens-when-you-publish] * Your RSS feed updates immediately with the episode. * Your podcast website shows the episode to listeners. * Spotify, Apple Podcasts and YouTube pick it up through your RSS feed, which can take up to an hour. Submit your feed once through [distributing to podcast apps](/docs/help/publishing-and-distribution/distributing-to-podcast-apps). Publishing does not consume credits. Every publish creates an export record, listed on the Exports tab. After publishing, see plays in [Analytics](/docs/help/publishing-and-distribution/analytics). ## Publishing progress [#publishing-progress] After you confirm, the dialog shows the current step. When a new render is needed, it also shows a percentage and progress bar, and the step moves from **Preparing your episode...** to **Rendering audio and video...** to **Finalizing episode...** (**Scheduling episode...** for a scheduled publish). When no new render is needed, the step reads **Publishing episode...** or **Scheduling episode...**. You cannot close the dialog while publishing runs. To leave without waiting, click **Podcast Home**; publishing continues in the background. While a new render runs, the script and timeline editors are disabled. See [editing while an episode renders](/docs/help/podcasts-and-episodes/using-the-script-editor#editing-while-an-episode-renders). When it finishes, you land on the episode with a published status. For what each status means, see [Episode Statuses](/docs/help/podcasts-and-episodes/episode-statuses#published). If you edit the episode during a render, publishing can still use that render. If your edit leaves a line without audio, publishing stops and tells you how many lines need audio. Otherwise you see a **Published from an earlier version** notice, meaning the published render does not include your later edits. To publish them, use **Edit Episode** and **Update Episode** as described below. ## Updating a Published Episode [#updating-a-published-episode] Once an episode is published or scheduled, **Publish Episode** is inactive. To change the script, audio or visuals, click **Edit Episode** on the episode page, make your edits, then click **Update Episode**. Listeners get the new version as the same episode, with the same publish date. A scheduled episode keeps its scheduled time. Generate audio for any new lines first. Updating is free. To take an episode down instead, see [Unpublishing episodes](/docs/help/publishing-and-distribution/unpublishing-episodes). ## Publishing a private podcast [#publishing-a-private-podcast] If the podcast's visibility is Private, the publish dialog first shows a **This podcast is private** notice with two choices: **Make podcast public** or **Keep private and publish**. Keeping it private still finalizes the episode, but it only becomes available to your API and integrations, with no website or RSS feed. Making the podcast public switches to the flow above. See [podcast visibility](/docs/help/publishing-and-distribution/podcast-visibility) for what Private means. ## Audio-First Publishing [#audio-first-publishing] Publishing renders and delivers audio by default. It does not render video or show a video player on your podcast website unless you turn that on. To publish video too, open **Edit Podcast > Advanced** and enable **Publish Video to Website**. From then on, every publish for that podcast also renders video, and the website shows the player for those episodes. The setting is off by default and affects only future publishes. **Download Video** always renders video regardless of it. See [Editing Podcast Details](/docs/help/podcasts-and-episodes/editing-podcast-details#advanced). # Episodes not showing on Spotify, Apple or YouTube (/docs/help/publishing-and-distribution/rss-feed-not-updating) Podcast apps read your episodes from your RSS feed, so a missing episode is either not in the feed yet or the platform is reading the wrong URL. Work through these checks in order. For the other publishing tools, see [Publishing and Distribution](/docs/help/publishing-and-distribution). ## Why are my episodes not showing on Spotify? [#why-are-my-episodes-not-showing-on-spotify] 1. **Episode status.** The episode must be **Published**, not Draft or Scheduled. See [episode statuses](/docs/help/podcasts-and-episodes/episode-statuses). 2. **Visibility.** The podcast must be Public. A Private podcast has no feed. See [podcast visibility](/docs/help/publishing-and-distribution/podcast-visibility). 3. **Feed URL.** Open your podcast in the Studio and click **RSS Feed** to copy the current URL (see [your RSS feed](/docs/help/publishing-and-distribution/your-rss-feed)). It should match the URL the platform has on file. 4. **Feed opens as XML.** Paste the URL into a browser. You should see XML listing your episodes. Changing your subdomain changes the feed URL, and the old URL stops working. See [changing your subdomain](/docs/help/publishing-and-distribution/custom-domains#changing-your-subdomain). Adding a custom domain switches the feed URL shown in Jellypod to your custom domain. The `/rss` feed keeps answering on both hosts, but copy the new URL and update the platform if you want it to match. An inactive subscription replaces the feed with a single notice episode until you resubscribe. ## How do I update the RSS URL on a platform? [#how-do-i-update-the-rss-url-on-a-platform] If the platform holds an old address, replace it with your current feed URL. Older `jellypod.ai` addresses redirect to `jellypod.com`, but some platforms do not follow redirects, so a feed submitted under `jellypod.ai` can fail silently. Menu names on these sites change, so look for the show's settings or RSS feed field. * **Spotify:** sign in to [Spotify for Podcasters](https://creators.spotify.com), open your show's settings, and replace the RSS feed URL. * **Apple Podcasts:** sign in to [Apple Podcasts for Creators](https://podcasters.apple.com), select the show, and replace the RSS feed URL. * **YouTube:** in [YouTube Studio](https://studio.youtube.com), open Podcasts, remove the existing podcast feed, then submit the current feed URL again. Removing and resubmitting is usually the fastest fix here. To submit a feed for the first time, follow [distributing to podcast apps](/docs/help/publishing-and-distribution/distributing-to-podcast-apps). ## How long until a new episode appears? [#how-long-until-a-new-episode-appears] Jellypod caches feed responses for about 5 minutes. After that, platforms pick up new episodes anywhere from a few minutes to 24 hours later, and YouTube is usually the slowest. If an episode is still missing after 24 hours and the checks above pass, contact support and include your feed URL. Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Schedule an episode and use the Content Calendar (/docs/help/publishing-and-distribution/scheduling-episodes) Scheduling publishes an existing episode at a later time, part of [Publishing and Distribution](/docs/help/publishing-and-distribution). To generate new episodes, Shorts or Videos on a schedule, use [automations](/docs/help/automations). Scheduling is available on Starter, Educator, Creator, Business and Enterprise. See [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits). ## Schedule an episode [#schedule-an-episode] 1. Open the episode and click **Publish Episode**. 2. Choose **Schedule for Later**. 3. Pick a date and time. Past times are blocked, and the latest you can pick is 90 days from now. 4. Click **Schedule Episode**. The picker uses your device's time zone. The episode's status becomes **Scheduled** (see [episode statuses](/docs/help/podcasts-and-episodes/episode-statuses)). To publish immediately instead, see [Publishing an Episode](/docs/help/publishing-and-distribution/publishing-an-episode). If you edit the episode while its render is still running, scheduling still completes with the render already in progress. A **Scheduled from an earlier version** warning tells you your later edits are not included. Schedule again to include them. ## What happens at the scheduled time [#what-happens-at-the-scheduled-time] Jellypod publishes the episode, updates your RSS feed and podcast website, and connected platforms pick it up. Your team gets an "episode is now live" email, and an "episode scheduled" email goes out when you first schedule. Both are sent only while **New episode emails** is on for the podcast and for each recipient (see [notification preferences](/docs/help/account-and-billing/notification-preferences)). ## Edit or cancel a schedule [#edit-or-cancel-a-schedule] Open the episode's three-dot menu (on the episode page or the podcast's episode list) while it is **Scheduled**: * **Edit Schedule** lets you pick a new time (same 90-day limit) with **Reschedule**, or click **Publish Now** to release it immediately. * **Cancel Schedule** returns the episode to draft with no content lost. You can reschedule or publish it any time. If it has already published, cancelling fails with "Episode has already been published." ## Content Calendar [#content-calendar] Open **Content Calendar** in the Studio sidebar to see your content by date: * Published episodes appear on their publish dates. * Scheduled episodes appear on their planned dates. * Active automations that run on a schedule appear on each upcoming run date, whether they create episodes, Shorts or Videos. Inbound email automations do not appear, because they have no set run time. Use the arrows beside the month to move between months, or **Today** to return to the current one. In **Calendar** view, select a day to see its items below the grid. **List** view shows items chronologically, hides past days in the current month until you click **Show all**, and offers **Edit schedule** on scheduled episodes, which opens the same **Edit Schedule** dialog. Use **Filter content** to show **All content**, **Episodes**, **Published episodes**, **Scheduled episodes** or **Automations**. Select an episode to open it, or an automation run to open that automation's settings. An episode automation that creates drafts is marked as not publishing automatically. Calendar dates and times use your device's time zone, shown above the calendar. Each automation runs in its own **Timezone**, so its runs are converted to your device time here. # Share an episode: link, social and re-render (/docs/help/publishing-and-distribution/sharing-episodes) Sharing is part of [Publishing and Distribution](/docs/help/publishing-and-distribution). To share an episode, open its dropdown menu in the podcast's episode list and click **Share**, or click the share icon in the episode editor. The **Share this episode** dialog works for published, scheduled and draft episodes. ## Share a link or post to social [#share-a-link-or-post-to-social] The **Share Link** field holds the episode's direct link, with a copy button. Below it are buttons for LinkedIn, X, Facebook, Email, Reddit and WhatsApp, a QR code button for this episode (for a podcast-level QR code, see [your podcast website](/docs/help/publishing-and-distribution/your-podcast-website#qr-code)), and a device share button that copies the link if the browser has no native share sheet. * **Published or scheduled episodes:** the link is enabled right away, including episodes published audio-first that never render video. Once published, it points at the published version. * **Draft episodes:** the link is disabled until the draft has a render. Sharing a draft does not add it to your RSS feed, so it works as a private preview before you [publish](/docs/help/publishing-and-distribution/publishing-an-episode). The embed code at the bottom of the dialog appears only once the episode is published, not while it is scheduled. See [Embedding your podcast](/docs/help/publishing-and-distribution/embedding-your-podcast) for using it, and [Analytics](/docs/help/publishing-and-distribution/analytics) for plays. ## Render a draft for sharing [#render-a-draft-for-sharing] Drafts get a render button in the Share dialog in the episode editor. **Create render** appears when there is no render yet, and the link enables when it finishes. **Re-render latest version** appears once a render exists: click it after editing to update the shared link. Both are hidden once the episode is published or scheduled, and a live episode's link always plays the version you published. Rendering is free: credits were charged when the narration and visuals were generated (see [Understanding credits](/docs/help/getting-started/understanding-credits)). If the saved narration no longer matches the script, voice, or pronunciations, an audio choice dialog opens first: see [Choose which audio to render](/docs/help/podcasts-and-episodes/downloading-video-and-audio#choose-which-audio-to-render). ## Private podcasts [#private-podcasts] If the podcast's visibility is Private, the dialog has no link and says the episode can only be accessed within your team's workspace. Use **Invite team members**, or **Make podcast visibility public** to unlock the link, social buttons and embed code. See [podcast visibility](/docs/help/publishing-and-distribution/podcast-visibility). # Unpublish an episode and republish it later (/docs/help/publishing-and-distribution/unpublishing-episodes) Unpublishing takes a published episode out of your RSS feed and podcast website and returns it to Draft. Nothing is deleted: the audio, script and sources stay intact. This page is part of [Publishing and Distribution](/docs/help/publishing-and-distribution). To fix something in a live episode, you don't need to unpublish. See [updating a published episode](/docs/help/publishing-and-distribution/publishing-an-episode#updating-a-published-episode). ## How to unpublish [#how-to-unpublish] Open the dropdown menu on a published episode and click **Unpublish Episode**. The episode's status changes to Draft right away and it leaves your podcast website and RSS feed. The feed can take a few minutes to update (see [your RSS feed](/docs/help/publishing-and-distribution/your-rss-feed)). The option appears only on published episodes. Podcast apps that already downloaded the episode may keep showing it until they refresh their feeds. [Uploaded episodes](/docs/help/podcasts-and-episodes/uploading-your-own-episode) behave the same way, and republishing brings the same file back live. ## Scheduled episodes [#scheduled-episodes] A scheduled episode has no **Unpublish Episode** option. Click **Cancel Schedule** in the episode menu instead, which returns it to Draft. See [scheduling episodes](/docs/help/publishing-and-distribution/scheduling-episodes). ## Republish [#republish] Republishing is free. Unpublishing clears the episode's original publish date. ## Remove an episode for good [#remove-an-episode-for-good] Unpublishing keeps the episode in your library. To remove it permanently, see [delete an episode](/docs/help/podcasts-and-episodes/managing-episodes#delete-an-episode). # Your podcast website: customize it and remove branding (/docs/help/publishing-and-distribution/your-podcast-website) Every podcast gets a hosted website at `yourshow.jellypod.com` as soon as you create it. To serve it from your own address instead, see [custom domains](/docs/help/publishing-and-distribution/custom-domains). This page is part of [Publishing and Distribution](/docs/help/publishing-and-distribution). The site lists your published episodes, newest first for Episodic podcasts and oldest first for Serial (set **Episode order** under **Advanced** in Edit Podcast Details). If you use [seasons](/docs/help/podcasts-and-episodes/podcast-seasons), episodes are grouped under a heading per season, and episodes without a season appear together with no heading. A [Private podcast](/docs/help/publishing-and-distribution/podcast-visibility) has no website: its pages return 404. ## Customize the site [#customize-the-site] Open the podcast and click **Edit Website**. The editor previews changes live and saves them as you go. * **Template:** choose Spotlight, Editorial, Broadcast, Conversation, or Magazine. Switching templates never changes your content. * **Podcast Title** and **Podcast Description:** edit them here. * **Brand accent:** read-only. It comes from the podcast's [brand kit](/docs/help/brand-kits#on-a-podcast). Click **Manage Podcast Brand** to change it. * **Settings:** the **Settings** button opens website settings, including the **Show transcripts** switch. ## Episode pages [#episode-pages] Each episode has its own page with an audio player, the title, and the description. If the podcast publishes a video for the episode, the video appears above the player. The transcript shows below only when **Show transcripts** is on in website settings and the episode has a published transcript. To let listeners play episodes on another site, see [embedding your podcast](/docs/help/publishing-and-distribution/embedding-your-podcast). To see plays, see [analytics](/docs/help/publishing-and-distribution/analytics). ## Social links [#social-links] Open **Edit Podcast Details**, open **Distribution**, and fill in the **Social links** section, then click **Done** and save. The dialog has fields for Contact Email, Instagram, Facebook, Threads, YouTube, X, LinkedIn, Discord, and Website. The website shows the links you filled in as a row of icons in the page footer (the Conversation template also shows them in its header). Only Contact Email, Website, YouTube, LinkedIn, and Discord appear on the site today: Instagram, Facebook, Threads, and X are saved but not displayed. ## QR code [#qr-code] On the podcast page, click the **QR Code** button (a QR icon next to the distribution badges). The dialog shows a code that links to your podcast website, using your custom domain if you have one. Click **Download QR Code** to save a PNG named `_podcast_qr.png`, and a "QR Code Downloaded" message confirms it. The **Share** dialog on the podcast page has the same button. For a QR code to a single episode, use the episode's Share dialog. When printing, make the code at least 1 inch (2.5 cm) wide so it scans reliably. ## Remove Jellypod branding [#remove-jellypod-branding] On Starter and Educator, the site shows a "This podcast is brought to you by Jellypod, Inc." line in the footer and a "created with Jellypod" banner on episode pages. Jellypod branding is removed automatically on Creator, Business, and Enterprise, across your podcast website, RSS feed, and embed player. There is no toggle: it follows your plan, and it applies as soon as you upgrade. # Your RSS feed: find the URL and what it contains (/docs/help/publishing-and-distribution/your-rss-feed) Every Public or Unlisted podcast gets an RSS feed automatically. Podcast apps and directories read it to list your episodes, so you submit the URL once per platform and every episode you publish afterward appears there. This page covers the feed itself; for the rest of the publishing tools, see [Publishing and Distribution](/docs/help/publishing-and-distribution). A Private podcast has no feed: its feed URL returns a not found error to everyone, including anyone who had the link before it was made Private. See [podcast visibility](/docs/help/publishing-and-distribution/podcast-visibility). ## Find your RSS feed URL [#find-your-rss-feed-url] On your podcast page in the Studio, click the **RSS Feed** button in the distribution row below the podcast header, then copy the URL from the dialog. That dialog and the Spotify, Apple Podcasts and YouTube distribution dialogs are available on Starter, Creator, Business and Enterprise, not Educator. Plans without distribution can still copy the URL from **Copy RSS Feed** in the podcast's actions menu or the **RSS Feed** button in **Share Podcast**. The URL is `https://{your-subdomain}.jellypod.com/rss`, or `https://{your-custom-domain}/rss` once you add a custom domain. If you change your subdomain, the old feed URL stops working (it returns 410 Gone, which tells podcast apps the feed is gone), so update the feed URL in each app and directory. See [changing your subdomain](/docs/help/publishing-and-distribution/custom-domains#changing-your-subdomain). Older `jellypod.ai` links redirect permanently, but some podcast apps do not follow redirects reliably, so submit the `jellypod.com` URL to each platform. To submit the feed to Spotify, Apple Podcasts or YouTube, follow [Distributing to podcast apps](/docs/help/publishing-and-distribution/distributing-to-podcast-apps). Your feed contains a forwarding address for verification emails; only known senders get through, and that page explains how to get another sender added. Once the feed is live, [analytics](/docs/help/publishing-and-distribution/analytics) shows plays. ## Automatic updates [#automatic-updates] The feed updates when you publish or unpublish an episode or change podcast details such as the title, description or cover art. No manual step is needed. Feed responses are cached for about 5 minutes, so a change can take a few minutes to appear. If a platform still shows old content after that, see [RSS feed not updating](/docs/help/publishing-and-distribution/rss-feed-not-updating). If your subscription becomes inactive, the feed switches to a single notice episode titled "This Feed Has Been Disabled" until you resubscribe. Your episodes are kept, and the real feed returns after you resubscribe. ## Share the feed with other apps [#share-the-feed-with-other-apps] Listeners can paste the feed URL into any app that accepts RSS feeds, such as Pocket Casts, Overcast or Snipd, to subscribe directly. ## Podcasting 2.0 [#podcasting-20] Feeds use the [Podcasting 2.0 namespace](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md). Jellypod emits episode numbers, a unique podcast GUID, a locked tag that stops others from claiming the feed, and a transcript link on episodes that have captions, for apps that show transcripts. ## Seasons [#seasons] If you group episodes into [seasons](/docs/help/podcasts-and-episodes/podcast-seasons), the feed adds `itunes:season` and `podcast:season` tags for those episodes, and their numbers restart at 1 within each season. Episodes without a season are unaffected and keep whole-show numbering. ## Explicit content [#explicit-content] When you publish an episode, Jellypod scans its transcript and sets the Apple Podcasts explicit rating for you (`itunes:explicit`). If the rating is wrong, open **Edit Episode Details** and switch **Explicit content** on or off. Republishing an episode scans it again, so check the setting after you republish. The whole show is marked explicit whenever any published episode is explicit, which is what Apple expects. # Create a short: steps, music and cost (/docs/help/shorts) A short is a narrated, AI-illustrated video saved to the **Videos** library in the Studio, alongside Magic Video and Voiceovers. It starts in portrait and comes with an optional instrumental score, on by default. To compare shorts with Magic Video and Voiceovers, see [choosing a video product](/docs/help/choosing-a-video-product). ## Create a short [#create-a-short] 1. Open **Home** and switch the composer to **Short** mode, or open **Videos** in the sidebar and choose **Create Video > Short**. 2. Type a prompt, attach a source (file, link or pasted text), or click **Upload Script** to supply finished narration. With a source and an empty prompt, Jellypod builds the short from the source. 3. Pick a character to narrate. A short can use up to four characters, which you match to speakers when you upload a script. 4. Pick a style from the style rail. See [video visual styles](/docs/help/video-visual-styles). 5. Set length, orientation, language, watermark and brand control as needed. These are covered in [creation settings](/docs/help/video-creation-settings#duration), including length presets and the default. 6. Click **Generate**. Jellypod takes you to **Videos** to watch progress. Upload Script keeps every spoken word in order and skips research and script writing. Duration switches to **Auto** because it comes from the script. Format and speaker matching are in [use your own script](/docs/help/podcasts-and-episodes/use-your-own-script#starting-a-new-episode-from-a-script). Style and orientation cannot be changed once generation starts. To try another, create a new short. Automations can also generate shorts on a schedule or from an inbound email; see [automations](/docs/help/automations). ## Background music [#background-music] Every short gets an original instrumental score, ducked under the narration. To skip it, open the settings icon in the composer and turn off **Background music** before you click **Generate**. After generation, replace or remove the score in the [editor](/docs/help/video-editor). ## What Jellypod generates [#what-jellypod-generates] * Narration in your character's voice. * Visuals in your chosen style, generated shot by shot to match the narration. Jellypod picks the palette and composition; you never write image prompts. * Transitions between some shots, only where they help the story. * Word-synced captions, following the selected visual style's default. * The instrumental score, unless you turned it off. Generation runs in the background and can take a few minutes. Jellypod opens the short's editable workspace once its narration and visuals are ready. ## What it costs [#what-it-costs] Narration is 30 credits per minute, plus 7 credits per generated image and 20 per animated clip. A 30-second short with 7 shots costs 15 credits of narration plus 49 to 140 for visuals, so 64 to 155 credits depending on how many shots are animated. The quote is rounded up to the next 5 credits, held when you click **Generate**, and settled to what was actually generated. See [how credits are consumed](/docs/help/getting-started/understanding-credits#how-credits-are-consumed) for rates and holds. ## Related guides [#related-guides] * [Video visual styles](/docs/help/video-visual-styles): the style catalog. * [Creation settings](/docs/help/video-creation-settings): duration, orientation, language, watermark, brand control and remembered values. * [Video editor](/docs/help/video-editor): edit narration, visuals, captions and music. * [Video library and sharing](/docs/help/video-library-and-sharing): share, render and download. * [If a generation fails](/docs/help/video-generation-failures): what to do, and whether it was charged. * [Choosing a video product](/docs/help/choosing-a-video-product): shorts compared with Magic Video and Voiceovers. # Fix a source that is processing, stuck or errored (/docs/help/sources/managing-sources) After you add a [source](/docs/help/sources/what-are-sources), Jellypod extracts its content before the AI can use it. Each source shows one of these states in the chat: * **Uploading:** a file is still being sent. * **Processing:** the content is being extracted, shown with a spinner. * **Ready:** extraction finished. No indicator is shown. * **Error:** extraction failed. A warning icon appears and the reason is shown under the source name. Hover the source to read the full message if it is cut off. You do not have to wait for Processing to finish. For podcast episodes, videos and voiceovers, you can start generating right away and Jellypod waits for extraction to finish. An episode shows "Waiting for your sources to finish processing." meanwhile. ## Why is my source stuck or failed? [#why-is-my-source-stuck-or-failed] Read the reason under the source name, then match it below: * **Paywalled or login-only page:** paste the article text as a source instead. * **Unsupported file ("File type not supported"):** upload a supported format. See [supported source types](/docs/help/sources/supported-source-types) for formats and limits. * **PDF with no readable pages:** re-export it from the original document. * **Private or unavailable YouTube video:** use a public link, or paste the transcript as text. * **Stalled for more than 15 minutes:** Jellypod marks the source as errored with "Processing timed out. Remove this source and upload it again." If generation stops because a source failed, fix or remove that source, then retry. See [episode generation failed](/docs/help/podcasts-and-episodes/episode-generation-failed) for episodes, or [video, short and voiceover failures](/docs/help/video-generation-failures) (the **Review sources** button). ## How do I remove a source? [#how-do-i-remove-a-source] Click the `x` on the source in the chat to remove it from that piece of content. While a source is Uploading or Processing, hover over its spinner to reveal the `x`. Podcast-level sources cannot be removed from the chat: open Edit Podcast Details and use **Podcast Sources**. To delete a source everywhere, see [Source Library](/docs/help/sources/source-library). ## Can I refresh a source? [#can-i-refresh-a-source] There is no in-place refresh. If the content changed, remove the source and add the URL or file again. This creates a new source from the latest version. # Asset Library: find, reuse and delete your sources (/docs/help/sources/source-library) The Asset Library lists every source saved in your organization, so you can reuse a file or URL instead of adding it again. See [What Are Sources?](/docs/help/sources/what-are-sources) for what sources are used for. Menus and dialogs label each source an "asset." Open it from the avatar menu in the Studio sidebar and choose **Asset Library**. ## What the list shows [#what-the-list-shows] Each row has the source name with its processing status, its **Type**, **Used In**, and **Created**. **Used In** counts the podcasts, hosts, episodes and videos that use the source, or shows "Not used". Sort by **Type**, **Used In** or **Created**. The list shows 10 rows per page. ## Upload without starting an episode [#upload-without-starting-an-episode] Click **New Asset** to add files or links directly to the library. See [Supported Source Types](/docs/help/sources/supported-source-types) for what you can add and the file limits. ## Download a source [#download-a-source] Open the row menu (the three dots): * **Download Extracted Text** appears once Jellypod has extracted text from the source. * **Download Original** appears for uploaded files only, not URL or YouTube sources. ## Delete a source [#delete-a-source] Choose **Delete Asset** from the row menu, then confirm **Delete** in the "Delete asset?" dialog. Deletion is permanent. Jellypod also deletes the stored files for that source, and the source is removed from every podcast, host and other piece of content linked to it. Content you already generated is not deleted. Removing a source from one piece of content only unlinks it and leaves it in the library. See [Managing Sources](/docs/help/sources/managing-sources) for removing sources from content. ## Pick library sources for new content [#pick-library-sources-for-new-content] When you add sources to new content or in the Podcast Agent chat, the **Add Sources** dialog lets you search the library (**Search assets...**), select sources, and click **Add Selected Sources**. Sources already attached to the current content stay in the list, greyed out and marked **Already added**. # Supported source types, formats and size limits (/docs/help/sources/supported-source-types) You can add a source as a file, a website link, a YouTube link or pasted text. Each source lives in your Asset Library, and [source levels](/docs/help/sources/what-are-sources) control where it is used. ## How do I add a source? [#how-do-i-add-a-source] 1. Click the `+` button next to the chat input to open **Add Sources**. 2. Pick an option: * Search your Asset Library to [reuse an existing source](/docs/help/sources/source-library). * Click **Upload files**, or drop files anywhere in the dialog. * Click **Website**, paste a public URL, then click **Add website**. * Click **Paste text**, type or paste your content, then click **Add text**. * Click **YouTube**, paste a link, then click **Add YouTube video**. On the new content start screen, pasting 2,000 or more characters into the chat input converts the text into a source automatically. ## Which file types can I upload? [#which-file-types-can-i-upload] Each file can be up to 100 MB. | Category | Formats | | ------------- | ----------------------------------------------------------------------- | | Documents | PDF, Word (.doc, .docx, .docm), RTF, EPUB, OpenDocument Text (.odt) | | Presentations | PowerPoint (.ppt, .pptx, .pptm), OpenDocument Presentation (.odp) | | Spreadsheets | Excel (.xls, .xlsx, .xlsm, .xlsb), OpenDocument Spreadsheet (.ods), CSV | | Audio | MP3, WAV, M4A, MPEG, AAC, OGG (audio is transcribed) | | Video | MP4, MOV, WebM, AVI | | Images | JPG, PNG, BMP, WebP | | Text | TXT, Markdown (.md, .markdown), HTML, XML, TSV | For other file formats, export to one of the supported formats before uploading. For video, your browser extracts the audio before upload. If it cannot decode the video's audio, upload an MP3, M4A or WAV file instead, or try an updated browser. [Voiceover uploads](/docs/help/voiceovers) have their own file rules. NotebookLM audio is [imported, not added as a source](/docs/help/podcasts-and-episodes/importing-notebooklm-audio). ## What is the PDF page limit? [#what-is-the-pdf-page-limit] A PDF can have up to 250 pages per source. * **Uploaded in the Studio:** a longer PDF is trimmed to its first 250 pages and added as one source, named with a `_split` suffix. A warning tells you how many pages were kept. Upload the remaining pages as a separate file to include them. * **Added any other way:** a PDF over the limit fails with an error that shows its page count. Split it into smaller files. * **Blank or corrupted PDFs:** these are rejected. Re-export the file from the original document. ## Which websites and YouTube videos work? [#which-websites-and-youtube-videos-work] Jellypod reads the content of any publicly accessible page: articles, documentation and company pages. Pages behind a paywall or login may fail. Paste the text instead. For YouTube, Jellypod analyzes the video itself, so the link must be valid and public. Private or unavailable videos are rejected. If a source errors or gets stuck, see [managing sources](/docs/help/sources/managing-sources). # What are sources? Reference material for AI (/docs/help/sources/what-are-sources) Sources are files, links and text you give Jellypod as reference material, such as an article, a company overview, a YouTube interview or a PDF report. Jellypod extracts the content and the Podcast Agent uses it to stay accurate and on topic when it writes. Sources are optional. Without them, the agent can research the topic itself with [web research](/docs/help/podcast-agent/how-the-podcast-agent-works#web-research). Two or three focused sources work better than ten vague ones. ## Source levels [#source-levels] * **Podcast level:** attached to the series, so every episode can draw on them. Best for evergreen material like brand guidelines, company overviews or host bios. You can attach up to 3 per podcast, managed under **Podcast Sources** in Edit Podcast on an existing podcast. In the Podcast Agent chat they carry a **Podcast Source** label. * **Episode level:** added in the chat for one episode, such as the article behind this week's episode or a guest interview. Podcast episodes have no fixed limit. Use podcast sources for background and voice, then add episode sources for the topic at hand. ## Which Products use sources [#which-products-use-sources] * **Podcasts:** the Podcast Agent reads podcast and episode sources when it writes the script. * **Magic Video and Shorts:** sources are research for the script. * **Voiceovers:** files you upload are the visuals, not research. In the Podcasts composer, a source that already reads like a finished script is read word for word instead of rewritten. Automations and the API treat every source as research material; see [attaching a script as a source](/docs/help/podcasts-and-episodes/use-your-own-script#attach-a-script-as-a-source) for how Jellypod decides and how to override it. ## In this section [#in-this-section] * [Supported Source Types](/docs/help/sources/supported-source-types): how to add a source, accepted formats and limits. * [Asset Library](/docs/help/sources/source-library): browse, search and reuse sources across your content. * [Managing Sources](/docs/help/sources/managing-sources): source status and fixing errors. # Your team in Jellypod: members, roles and settings (/docs/help/teams-and-collaboration) A team is the shared workspace in Jellypod that holds your podcasts, credits and members. The Studio sidebar and some settings also call it your organization or workspace. ## Rename your team [#rename-your-team] 1. Open **Settings**, then the **Team** tab. 2. Edit the field in the **Team Name** card. 3. Click **Save**. A "Team name updated." message confirms it, and the new name shows across the Studio immediately. Renaming does not change podcast URLs, RSS feeds or published content. Only Admins can rename the team. Other members see the name field disabled and no **Save** button. The roles guide below covers who can do what. ## Team guides [#team-guides] * [Inviting team members](/docs/help/teams-and-collaboration/inviting-team-members): add people to your team and see how seats work. * [Roles and permissions](/docs/help/teams-and-collaboration/roles-and-permissions): what Admins and Members can each do. * [SSO setup](/docs/help/teams-and-collaboration/sso-setup): let your team sign in with your identity provider. * [Delete your team](/docs/help/account-and-billing/deleting-your-account#deleting-your-team-and-what-gets-deleted): what is removed when a team is deleted. For plans, credits and invoices, see [Account and billing](/docs/help/account-and-billing). # Invite team members: seats, pending invites and access (/docs/help/teams-and-collaboration/inviting-team-members) Part of [Your team in Jellypod](/docs/help/teams-and-collaboration). Only Admins can invite, resend, revoke or remove. ## Invite someone [#invite-someone] 1. Open **Settings**, then the **Team** tab. 2. Click **Invite**. 3. Enter their email address and choose **Admin** or **Member** (see [Roles and permissions](/docs/help/teams-and-collaboration/roles-and-permissions) for the difference). 4. Send the invitation. The invitee accepts through the link in the email. On Enterprise, users who sign in through [SSO](/docs/help/teams-and-collaboration/sso-setup) are provisioned on first sign-in, so they do not need an invitation. ## Seat limits [#seat-limits] Seats are counted as active members plus pending invitations. The Team tab shows how many are in use. Included seats per plan: 1 on Starter and Educator, 2 on Creator, and 5 on Business. Enterprise has no plan cap. See [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits) for the full comparison. At the limit, **Invite** opens the upgrade dialog instead of the invite form, and a **Seat limit reached** banner appears with an **Upgrade** button. Revoking an invitation or removing a member frees a seat. ## Pending invitations [#pending-invitations] Pending invitations appear in the members list with a **Pending** badge and an expiry date. Open the row menu to choose **Resend invite** or **Revoke invite**. ## Remove a member [#remove-a-member] Open the member's row menu and choose **Remove from team**. You have no menu on your own row. The last Admin cannot be removed. ## What new members can access [#what-new-members-can-access] Members see everything in the shared workspace. There is no per-project access, so finish anything sensitive before inviting collaborators. ## Troubleshooting [#troubleshooting] * **"That email is already a member or has a pending invitation."** Look for the address in the members list. Use **Resend invite** if it is pending. * **Invitee did not get the email.** Ask them to check spam, then use **Resend invite**. If the address was mistyped, revoke the invitation and send a new one. * **No Invite button.** You are not an Admin. Ask an Admin to invite for you or change your role. * **"Something went wrong. Please try again."** Retry. If it keeps failing: Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Admin vs Member roles and permissions (/docs/help/teams-and-collaboration/roles-and-permissions) Every workspace member is either an **Admin** or a **Member**. Set the role when you [invite someone](/docs/help/teams-and-collaboration/inviting-team-members), and change it later as described below. For the rest of team setup, see [Teams and Collaboration](/docs/help/teams-and-collaboration). ## What only Admins can do [#what-only-admins-can-do] * Invite and remove team members * Change team members' roles * See **Usage & Billing**, manage the subscription, and buy credits * Change the team name * [Delete the team](/docs/help/account-and-billing/deleting-your-account) * Manage API keys in the Developers area, along with any member who has been granted the API keys permission (see [connecting AI assistants over MCP](/docs/help/mcp)) Members can do everything else in the workspace, including creating, editing and publishing content. ## Change someone's role [#change-someones-role] 1. Open **Settings > Team**. 2. Open the menu on the person's row in **Team Members**. 3. Choose **Make admin** or **Make member**. You cannot change your own role, and the row menu does not appear on your own row. The last Admin cannot be demoted or removed: you will see "You cannot remove or demote the last admin." Make someone else an Admin first. ## Which Settings tabs each role sees [#which-settings-tabs-each-role-sees] Tabs follow your role and permissions. See [Settings tabs](/docs/help/account-and-billing#settings-tabs) for what each contains. | Tab | Visible to | | ------------------- | ------------------------------------------------------ | | **General** | Everyone | | **Team** | Admins, and members with team management permission | | **Usage & Billing** | Admins, and members with billing management permission | | **Exports** | Everyone | | **Notifications** | Everyone | Without team management permission, a member sees the Team page with the team name locked and no invite button. Keep Admins few. Most people only need the Member role. # Single sign-on (SSO) for Enterprise teams (/docs/help/teams-and-collaboration/sso-setup) SSO lets your team sign in to Jellypod through your company's identity provider. It is included with the [Enterprise plan](/docs/help/account-and-billing/plans-and-pricing) only. For the rest of team setup, see [Teams and Collaboration](/docs/help/teams-and-collaboration). ## Supported identity providers [#supported-identity-providers] Jellypod works with SAML 2.0 and OIDC providers, including Okta, Microsoft Entra ID (Azure AD), Google Workspace and OneLogin. ## Set up SSO [#set-up-sso] SSO is set up by the Jellypod team, not in Studio settings. To start, use **Book a demo** on the [Enterprise page](/enterprise). Have your identity provider's metadata or configuration details ready, and involve your IT contact, because setup needs changes on your provider's side. ## Members and seats [#members-and-seats] Members sign in through your identity provider. Members count toward your organization's seats, as described in [Inviting team members](/docs/help/teams-and-collaboration/inviting-team-members), and each member is either an Admin or a Member (see [Admin vs Member roles and permissions](/docs/help/teams-and-collaboration/roles-and-permissions)). Personal login settings are covered in [Profile and security](/docs/help/account-and-billing/profile-and-security). Open Help & Support in the Studio sidebar to chat with the team, or email [support@jellypod.com](mailto:support@jellypod.com). # Create a voiceover from a PDF, slides or images (/docs/help/voiceovers) A Voiceover is a narrated video built from documents and images you already have. Jellypod writes the narration, generates the audio, and times every visual you supplied to the finished script. It never redraws or replaces your material. Voiceovers share the **Videos** library in the sidebar with Magic Video and Shorts; filter by format to see only Voiceovers. To compare them with generated-visual videos, see [choosing a video Product](/docs/help/choosing-a-video-product). Your uploaded pages and images become the video's visuals. Choose **Magic Video** if you want Jellypod to generate new visuals from your content. ## Create a Voiceover [#create-a-voiceover] 1. Open **Home** and select **Voiceover** in the composer, or open **Videos** in the sidebar and choose **Create Video > Voiceover**. 2. Choose one to four characters and a narration language. Language starts from the language your selected voices share ([narration language](/docs/help/video-creation-settings#narration-language)), and duration presets are in creation settings (the default is Auto). 3. Add up to 10 files: drag them onto the composer, click **+** to browse, or pick existing files from the [Asset Library](/docs/help/sources/source-library). Each file can be up to 100 MB, with at most 50 pages or images total across all files. 4. Optionally add direction for the audience, tone or key points. 5. Click **Generate**. **Generate** is available as soon as you add a file. A file still uploading or processing continues in the background once generation starts. If a file fails to process, the Voiceover fails with that file's error. With several characters, generation hands off between them at natural breaks and uses each at least once. Reassign individual paragraphs afterward in the [editor](/docs/help/video-editor). Jellypod opens **Videos** and the new card shows its status. If generation fails, use **Retry generation** on the card: it reuses the files you already uploaded. See [video generation failures](/docs/help/video-generation-failures) for charges and causes. When the card is ready, open it to edit, render, share or download. Files you upload become reusable sources in the Asset Library. ## Supported files [#supported-files] | Type | Formats | | --------- | --------------- | | Documents | PDF, PPTX | | Images | PNG, JPEG, WebP | For other presentation formats, export to PDF or PPTX. Pages inside a document stay together in their original order. Jellypod arranges separate documents and images into an initial sequence. Voiceover supports **50 document pages or images combined across all files**. Each PDF page, presentation slide, or uploaded image counts toward that total. If you exceed it, remove pages or images before uploading. Splitting the same pages into several PDFs does not reduce the total. A PDF accepted by the Asset Library can still exceed Voiceover's limit. For other file-processing errors, follow the file's error message. If Jellypod asks you to upload it again to prepare it for Voiceover, retry the upload. If it still fails, re-export the file as PDF, PNG or JPEG and upload that. If the Voiceover itself fails on the file, create a new one with the re-exported file. ## Speaker notes [#speaker-notes] When you upload a `.pptx`, Jellypod reads each slide's speaker notes and uses them as context for that slide's narration, alongside the slide itself. Nothing needs turning on, and a deck without notes works as before. Notes count as intent, not a script to read out. Jellypod narrates their substance in the Voiceover's voice and drops stage directions such as timing cues. Your direction outranks both the slides and the notes. Jellypod reads speaker notes from PPTX files. A `.pptx` exported from Google Slides keeps them; a PDF export does not. ## How visuals are framed [#how-visuals-are-framed] Jellypod shows a full page for context, then can focus on a readable graph, figure, table or section while the narration discusses it. A figure that is a separate image inside a document can appear without the surrounding page. Captions, labels and legends stay with the content they explain. Framing never redraws your material. When a crop could lose content, Jellypod shows the whole visual over a matching solid color instead. After creation you can reframe a single visual in the editor. ## Zoom, captions and transitions [#zoom-captions-and-transitions] * **Zoom effect** (settings menu beside the duration selector): **Auto** holds document and presentation pages still and gives photos a subtle zoom, including a figure pulled out of a page. Choose **On** to zoom every visual or **Off** to keep all still. * **Captions** are off by default, since slides often show the text already. Turn them on in the same menu, or later from the Captions button in the editor. * **Transitions:** generation adds a slide transition before every visual after the first. Edit, replace or remove any of them in the editor. ## Web research [#web-research] Narration can draw on [web research](/docs/help/podcast-agent/how-the-podcast-agent-works#web-research) for background beyond your files. To avoid it for one Voiceover, say so in your direction. ## What a Voiceover leaves out [#what-a-voiceover-leaves-out] Your files are the visuals, so the creation flow has no visual style, brand kit, watermark, orientation or background music choice, and the result is always landscape. In the editor you can add a watermark and your own background music, but not apply a brand kit or switch the visual style. ## Length and cost [#length-and-cost] Fixed durations range from 3 to 60 minutes, and Auto stays under three quarters of your plan's Voiceover cap. See [plan limits](/docs/help/account-and-billing/plans-and-pricing#plan-limits) for caps by plan. A Voiceover costs 30 credits per minute of narration, and nothing for visuals because you supply them. Regenerating narration afterward is free. Auto length is priced once generation finishes; see [understanding credits](/docs/help/getting-started/understanding-credits). ## Related guides [#related-guides] * [Creation settings](/docs/help/video-creation-settings): duration, language and remembered values. * [Video editor](/docs/help/video-editor): edit narration, reframe, replace visuals. * [Video library and sharing](/docs/help/video-library-and-sharing): share, download and embed. * [Video generation failures](/docs/help/video-generation-failures): failed generations and charges. * [Choosing a video Product](/docs/help/choosing-a-video-product): Voiceover vs Magic Video and Shorts. # API discovery index (/docs/api/health/getApiIndex) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/health/getApiIndex for the full schema, request/response examples, and code samples. # Health (/docs/api/health/health) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/health/health for the full schema, request/response examples, and code samples. # Get the authenticated organization (/docs/api/account/getAccount) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/account/getAccount for the full schema, request/response examples, and code samples. # Get streaming analytics for an episode (/docs/api/analytics/getEpisodeAnalytics) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/analytics/getEpisodeAnalytics for the full schema, request/response examples, and code samples. # Get streaming analytics for a podcast (/docs/api/analytics/getPodcastAnalytics) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/analytics/getPodcastAnalytics for the full schema, request/response examples, and code samples. # List episodes (/docs/api/episodes/listEpisodes) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/episodes/listEpisodes for the full schema, request/response examples, and code samples. # Create an empty episode (/docs/api/episodes/createEpisode) Inserts an episode row with only the metadata you provide. No script, audio, or video is generated. Use `POST /v1/episodes/generate` to create an episode and trigger generation in one call. This is an API reference page. See the live version at https://www.jellypod.com/docs/api/episodes/createEpisode for the full schema, request/response examples, and code samples. # Generate a new episode (asynchronous) (/docs/api/episodes/generateEpisode) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/episodes/generateEpisode for the full schema, request/response examples, and code samples. # Import script text and generate a new episode (asynchronous) (/docs/api/episodes/importEpisode) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/episodes/importEpisode for the full schema, request/response examples, and code samples. # Get an episode (/docs/api/episodes/getEpisode) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/episodes/getEpisode for the full schema, request/response examples, and code samples. # Update episode fields (/docs/api/episodes/updateEpisode) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/episodes/updateEpisode for the full schema, request/response examples, and code samples. # Delete an episode (/docs/api/episodes/deleteEpisode) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/episodes/deleteEpisode for the full schema, request/response examples, and code samples. # Upload an episode cover image (raw image bytes in body) (/docs/api/episodes/uploadEpisodeImage) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/episodes/uploadEpisodeImage for the full schema, request/response examples, and code samples. # Publish or schedule an episode (/docs/api/episodes/publishEpisode) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/episodes/publishEpisode for the full schema, request/response examples, and code samples. # Unpublish a published or scheduled episode (/docs/api/episodes/unpublishEpisode) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/episodes/unpublishEpisode for the full schema, request/response examples, and code samples. # Get episode timestamps (/docs/api/episodes/getEpisodeTimestamps) Returns timestamps in the requested `format`. Use `format=json` (default) for structured timestamps, `format=srt` for SubRip, or `format=vtt` for WebVTT. This is an API reference page. See the live version at https://www.jellypod.com/docs/api/episodes/getEpisodeTimestamps for the full schema, request/response examples, and code samples. # List hosts (/docs/api/hosts/listHosts) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/hosts/listHosts for the full schema, request/response examples, and code samples. # Create a host (/docs/api/hosts/createHost) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/hosts/createHost for the full schema, request/response examples, and code samples. # Get a host (/docs/api/hosts/getHost) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/hosts/getHost for the full schema, request/response examples, and code samples. # Update a host (/docs/api/hosts/updateHost) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/hosts/updateHost for the full schema, request/response examples, and code samples. # Delete a host (/docs/api/hosts/deleteHost) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/hosts/deleteHost for the full schema, request/response examples, and code samples. # List podcasts (/docs/api/podcasts/listPodcasts) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/podcasts/listPodcasts for the full schema, request/response examples, and code samples. # Create a podcast (/docs/api/podcasts/createPodcast) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/podcasts/createPodcast for the full schema, request/response examples, and code samples. # Get a podcast (/docs/api/podcasts/getPodcast) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/podcasts/getPodcast for the full schema, request/response examples, and code samples. # Update a podcast (/docs/api/podcasts/updatePodcast) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/podcasts/updatePodcast for the full schema, request/response examples, and code samples. # Delete a podcast (/docs/api/podcasts/deletePodcast) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/podcasts/deletePodcast for the full schema, request/response examples, and code samples. # Replace the podcast cover image (/docs/api/podcasts/updatePodcastImage) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/podcasts/updatePodcastImage for the full schema, request/response examples, and code samples. # List sources (/docs/api/sources/listSources) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/sources/listSources for the full schema, request/response examples, and code samples. # Create a source from a URL, YouTube link, or text payload (/docs/api/sources/createSource) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/sources/createSource for the full schema, request/response examples, and code samples. # Get a source (/docs/api/sources/getSource) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/sources/getSource for the full schema, request/response examples, and code samples. # Delete a source (/docs/api/sources/deleteSource) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/sources/deleteSource for the full schema, request/response examples, and code samples. # Reserve a file Source and receive a scoped upload URL (/docs/api/sources/requestSourceUpload) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/sources/requestSourceUpload for the full schema, request/response examples, and code samples. # Validate an uploaded file and start Source processing (/docs/api/sources/completeSourceUpload) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/sources/completeSourceUpload for the full schema, request/response examples, and code samples. # Discover video creation options (/docs/api/videos/getVideoOptions) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/videos/getVideoOptions for the full schema, request/response examples, and code samples. # Get a video (/docs/api/videos/getVideo) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/videos/getVideo for the full schema, request/response examples, and code samples. # Check video generation (/docs/api/videos/getVideoStatus) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/videos/getVideoStatus for the full schema, request/response examples, and code samples. # Retry a failed video (/docs/api/videos/retryVideo) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/videos/retryVideo for the full schema, request/response examples, and code samples. # Get the video download (/docs/api/videos/downloadVideo) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/videos/downloadVideo for the full schema, request/response examples, and code samples. # List videos (/docs/api/videos/listVideos) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/videos/listVideos for the full schema, request/response examples, and code samples. # Create a video (/docs/api/videos/createVideo) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/videos/createVideo for the full schema, request/response examples, and code samples. # Discover short creation options (/docs/api/shorts/getShortOptions) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/shorts/getShortOptions for the full schema, request/response examples, and code samples. # Get a short (/docs/api/shorts/getShort) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/shorts/getShort for the full schema, request/response examples, and code samples. # Check short generation (/docs/api/shorts/getShortStatus) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/shorts/getShortStatus for the full schema, request/response examples, and code samples. # Retry a failed short (/docs/api/shorts/retryShort) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/shorts/retryShort for the full schema, request/response examples, and code samples. # Get the short download (/docs/api/shorts/downloadShort) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/shorts/downloadShort for the full schema, request/response examples, and code samples. # List shorts (/docs/api/shorts/listShorts) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/shorts/listShorts for the full schema, request/response examples, and code samples. # Create a short (/docs/api/shorts/createShort) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/shorts/createShort for the full schema, request/response examples, and code samples. # Discover voiceover creation options (/docs/api/voiceovers/getVoiceoverOptions) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/voiceovers/getVoiceoverOptions for the full schema, request/response examples, and code samples. # Get a voiceover (/docs/api/voiceovers/getVoiceover) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/voiceovers/getVoiceover for the full schema, request/response examples, and code samples. # Check voiceover generation (/docs/api/voiceovers/getVoiceoverStatus) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/voiceovers/getVoiceoverStatus for the full schema, request/response examples, and code samples. # Retry a failed voiceover (/docs/api/voiceovers/retryVoiceover) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/voiceovers/retryVoiceover for the full schema, request/response examples, and code samples. # Get the voiceover download (/docs/api/voiceovers/downloadVoiceover) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/voiceovers/downloadVoiceover for the full schema, request/response examples, and code samples. # List voiceovers (/docs/api/voiceovers/listVoiceovers) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/voiceovers/listVoiceovers for the full schema, request/response examples, and code samples. # Create a voiceover (/docs/api/voiceovers/createVoiceover) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/voiceovers/createVoiceover for the full schema, request/response examples, and code samples. # List voices (/docs/api/voices/listVoices) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/voices/listVoices for the full schema, request/response examples, and code samples. # Get a voice (/docs/api/voices/getVoice) This is an API reference page. See the live version at https://www.jellypod.com/docs/api/voices/getVoice for the full schema, request/response examples, and code samples.