source-lm
sourceInstall free

Blog

How to save a ChatGPT conversation to NotebookLM

ChatGPT is a poor place to keep a ChatGPT conversation: the sidebar is a list of titles, search matches only words you already remember, and the answer you need is forty turns deep in a chat from March. NotebookLM — now also branded Gemini Notebook — is the opposite: give it thirty conversations as sources and it answers with a citation into the exact turn.

ChatGPT’s own export is an account-wide zip that arrives by email; copy-paste flattens code blocks and loses who said what; “print to PDF” puts the sidebar in the document. source-lm takes one click on the open chat, and the chat lands in the notebook as a Markdown transcript. Below: the steps on chatgpt.com, the same route on Claude, Gemini and Perplexity, and what the result looks like.

Export a ChatGPT conversation to NotebookLM

  1. Open the conversation on chatgpt.com in one tab and the notebook in another (NotebookLM or Gemini Notebook — the same product since the rename).
  2. Open the source-lm popup and click Add page as .md. Pick the notebook from the list, or type a title to create a new one.
  3. source-lm captures the chat and uploads it as a Markdown source named [chatgpt.com]-<chat-title>: the site, then the chat title.
The Link tab of the source-lm popup: an optional new-notebook title field, a notebook picker set to New notebook, the Add link button and, next to it, Add page as .md. Below: Last run: 1 added, 0 failed.

Nothing is downloaded, so there is no file in Downloads to drag back into a browser tab. Nothing leaves the browser except the upload to Google’s own notebook host — the host you are signed into. The capture runs on Chrome’s activeTab permission: the extension gets access to chatgpt.com only when you click, and only for that tab.

Repeat for the next chat: one conversation is one source, so ten chats about the same project become ten sources in one notebook.

Claude to NotebookLM

Same three steps on claude.ai. The source appears as [claude.ai]-<chat-title>; turns are labelled **You:** and **Claude:**.

Gemini to NotebookLM

Same three steps on gemini.google.com. The source appears as [gemini.google.com]-<chat-title>; turns are labelled **You:** and **Gemini:**.

Gemini and Gemini Notebook are both Google products, and neither UI has a button that moves a chat into a notebook.

Perplexity to NotebookLM

Same three steps on perplexity.ai. The source appears as [www.perplexity.ai]-<thread-title>; turns are labelled **You:** and **Perplexity:**.

A Perplexity answer is mostly a summary of the pages it cites. If you want those pages in the notebook rather than the summary, add them as web sources through the popup’s Link tab: NotebookLM then fetches the original text and cites it instead of a paraphrase.

Only part of a chat: Add selection to Notebook

When one answer is the point and the rest of the chat is noise: select the text — on any of the four sites, or any page — right-click, and choose Add selection to Notebook with the notebook name from the submenu. The selection becomes a source. A selection spanning several paragraphs keeps its line breaks, so a long answer arrives as the paragraphs it was written in, not one block.

The two are separate: Add page as .md in the popup takes the whole page, the context menu item takes only the selection.

What the source looks like

The source is a Markdown transcript:

  • Every turn is on its own, labelled **You:** and **ChatGPT:** — or **Claude:**, **Gemini:**, **Perplexity:** — so a citation names who said it.
  • Code blocks keep their language label and indentation, so a Python snippet still reads as code. The ``` fences themselves are not preserved.
  • The sidebar, the suggested follow-ups and the input box are excluded.
  • The source is named after the chat title, prefixed with the site ([chatgpt.com]-…), so the Sources panel stays readable without renaming anything.

Unlike a folder of PDFs, the notebook answers a question across all the chats at once, cites the turn it drew on, and feeds the same sources into an Audio Overview or a study guide. Claude Code can query it as well, through the NotebookLM MCP server.

Limits

  • One conversation per click. The extension captures the chat in the active tab, not your whole history. Thirty chats is thirty clicks — a minute or two, not a batch job.
  • ChatGPT’s official export is not parsed yet. Settings → Data controls → Export data gives you a zip with a conversations.json inside; source-lm’s JSON tab does not read that format today, so there is no one-run import of your entire history yet.
  • Long chats are captured as rendered. The capture takes what the site has drawn in the tab, so on a long conversation scroll to the top once before you click, to load the earliest turns.
  • NotebookLM’s per-source cap applies: 500,000 words per source. A chat will not get near it; the cap that bites is sources per notebook — 50 on the free plan — see NotebookLM (Gemini Notebook) limits for the per-plan numbers.
  • Free tier: a single page or a selection is unmetered. Bulk actions — one click adding more than one source — are 5 a calendar month; after that, $29 once, no subscription, no account.

FAQ

How do I export a ChatGPT conversation? Two ways. ChatGPT’s own: Settings → Data controls → Export data, which emails a zip of your entire account with conversations.json and an HTML view — not one chat, and not in a shape NotebookLM takes. Per conversation: open the chat and capture it with an extension; source-lm’s Add page as .md puts it into a NotebookLM notebook as a Markdown transcript in one click.

Can I export a ChatGPT conversation to Markdown? Yes. The capture is Markdown: each turn is labelled **You:** or **ChatGPT:**, code blocks keep their language label and indentation, and the source is named after the chat title. It goes straight into the notebook as a source; the extension does not write a file to disk.

Does this work for Claude, Gemini and Perplexity too? Yes, with the same button and the same three steps. The turn labels follow the assistant — **Claude:**, **Gemini:**, **Perplexity:** — and the source is named after the chat’s title on each site.

Can I add my whole ChatGPT history at once? Not yet. The extension captures one conversation per click and does not read the conversations.json from ChatGPT’s account export. A notebook of your important chats is thirty clicks; a notebook of every chat you ever had is not possible in one run today.

Is it free? A single conversation or a selection is always free and unmetered. The free tier meters bulk actions only — 5 a calendar month; beyond that, $29 once.

Not affiliated with Google or OpenAI. NotebookLM and Gemini are Google trademarks; ChatGPT is an OpenAI trademark; Claude is an Anthropic trademark; this is an independent extension that automates a signed-in session.

← All posts

Save the whole conversation to NotebookLM in one click.

Install source-lm

5 bulk actions a month, free. Single sources always free.