---
title: Sources
description: Give Jellypod reference material to work from.
---

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.

Sources are optional. Without them, the agent researches the topic itself with [web research](/podcast-agent/how-the-podcast-agent-works#web-research). Two or three focused sources work better than ten vague ones.

Each source you add is saved in your [Asset Library](/sources/source-library), where you can browse, download, reuse and delete saved sources and visuals.

## Source levels

| Level | Where it applies | Best for | Limit |
| --- | --- | --- | --- |
| Podcast | Every episode in the series | Evergreen material like brand guidelines, company overviews or host bios | 3 per podcast |
| Episode | One episode, added in the chat | This week's article or a guest interview | No fixed limit |

Manage podcast sources from Podcast Sources in an existing podcast's actions menu. In the Podcast Agent chat, they carry a Podcast Source label.

## Which Products use sources

- Podcasts: the Podcast Agent reads podcast and episode sources when it writes the script.
- Videos and Shorts: sources are research for the script.
- Voiceovers: the files you upload are the visuals, not research.

If a source you attach in the composer already reads like a finished script, Jellypod asks when you send whether to use its exact words or treat it as research. Automations and the API treat every source as research. See [attach a script as a source](/podcasts-and-episodes/use-your-own-script#attach-a-script-as-a-source).

## Add a source

1. Click + next to the chat input to open Add Sources.
2. Pick an option:
   - Search your Asset Library to reuse an existing source.
   - Click Upload files, or drop files anywhere in the dialog.
   - Click Link, paste a public website or YouTube URL, then click Add link.
   - Click Paste text, enter your content, then click Add text.

On the start screen for new content, pasting 2,000 or more characters into the chat input turns the text into a source.

## File types

Every supported file can be up to 100 MB. For other formats, export to a supported one first.

| 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 (transcribed) |
| Video | MP4, MOV, WebM, AVI (transcribed) |
| Images | JPG, PNG, BMP, WebP |
| Text | TXT, Markdown (.md, .markdown), HTML, XML, TSV |

[Voiceover uploads](/voiceovers) have their own file rules, and NotebookLM audio is [imported, not added as a source](/podcasts-and-episodes/importing-notebooklm-audio).

A PDF source can have up to 250 pages.

- Uploaded in the Studio: a longer PDF is trimmed to its first 250 pages and added as one source with a `_split` suffix. A warning says how many pages were kept. Upload the rest as a separate file.
- Added any other way: a PDF over the limit fails with an error showing its page count. Split it into smaller files.
- Blank or corrupted PDFs are rejected. Re-export the file from the original.

## Websites and YouTube

Jellypod reads any public page. Pages behind a paywall or login may fail, so paste their text instead. A link to a PDF reads only its first 30 pages; to use more, download the PDF and upload the file.

For a public YouTube URL, Google Gemini analyzes the video and Jellypod saves AI-generated reference notes. The notes aren't a verbatim transcript and may omit or misread details, so check them against the video. Private and unlisted videos, channels and playlists aren't supported. If Google can't analyze a video, upload reference material you have permission to use, or paste your own notes.

## Cover a long document

An episode condenses its sources to fit its duration, so a PDF under 250 pages can still hold more than one episode covers. A longer duration, within your [plan's episode length limit](/account-and-billing/plans-and-pricing#plan-limits), gives the script more room but doesn't guarantee every detail. To work through a long document in parts:

1. Split it at chapter or topic boundaries. Export each part as its own PDF, or paste the section as a text source.
2. Create one episode per part, attaching only that part as an episode source. Don't also attach the full document as a podcast source.
3. In the prompt, name the section and the topics to cover, and choose a duration that leaves room for them.
4. If the script still skips material, use a smaller section or a longer episode.

Each episode uses its own [credits](/getting-started/understanding-credits).

## Fix a source

Jellypod extracts a source's content before the AI can use it. Each source shows its state in the chat.

| State | What you see |
| --- | --- |
| Uploading | The file is still being sent. |
| Processing | A spinner while content is extracted. |
| Ready | No indicator. Extraction finished. |
| Error | A warning icon on the thumbnail and the reason under the source name. Hover the source to read a cut-off message. |

Episodes, videos and Voiceovers can start generating before Processing finishes and wait for extraction. An episode shows "Waiting for your sources to finish processing." meanwhile.

If a source fails or gets stuck, match the reason under the source name:

| Reason | Fix |
| --- | --- |
| Paywalled or login-only page | Paste the article text as a source. |
| "File type not supported" | Upload a [supported format](#file-types). |
| 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. |
| "This source took longer than 12 minutes to read. Remove it and add a smaller file." | Split the file into smaller parts and add those. |
| "This link took longer than 12 minutes to read. Remove it and try another link." | Use a different link. |
| "Processing timed out. Remove this source and upload it again." | The source stalled for more than 15 minutes. Remove it and add it again. |

If generation stopped because a source failed, fix or remove the source, then retry. See [if episode generation fails](/podcasts-and-episodes/episode-generation-failed), or [video generation failures](/video-generation-failures) for videos, Shorts and Voiceovers (the Review sources button).

## Remove a source

Click the `x` on the source in the chat to remove it from that content. While a source is uploading or processing, hover its spinner to reveal the `x`.

- A failed source is deleted when you remove it, because failed sources aren't kept in your Asset Library.
- Podcast sources can't be removed from the chat. Choose Podcast Sources from the podcast's actions menu.
- To delete a source everywhere, see [delete a source](/sources/source-library#delete-a-source).

Sources don't refresh in place. To use changed content, remove the source and add the URL or file again.
