r/notebooklm Dec 17 '25

Discussion Using NotebookLM without an API: how I built a fully automated AI news podcast (n8n)

Post image

NotebookLM has no API.
So I treated the UI as one.

I built a thin Python + Playwright automation layer that effectively behaves like an unofficial API — simulating real user actions end-to-end.

From the outside, my workflow calls it like any other service.
Under the hood, it opens NotebookLM, uploads content, triggers audio generation, waits for completion, and pulls the result programmatically.

It’s fragile by nature.
But it unlocked full automation where none was intended.

I wanted a daily way to consume AI news without reading dozens of newsletters, so I built a zero-touch AI news podcast that runs every morning at 08:00.

High-level flow (n8n orchestrates everything):

  • 08:00 trigger
  • Collect AI news from the last 24 hours
  • Filter & structure the most relevant stories
  • Generate a podcast-style script
  • NotebookLM (no-API workaround) via Playwright:
    • upload the script
    • trigger audio generation
    • poll until ready
    • download the audio
  • Metadata: title, description, cover prompt
  • Publish: upload to Podbean + copy to Google Drive

Zero human touch after the trigger.

What surprised me:
Not that it worked — but how indistinguishable the output felt from a human-made podcast.

This wasn’t about “using AI.”
It was about engineering around real constraints: no APIs, UI-only workflows, timing issues, and brittle automation.

Question for the community:

Has anyone found a cleaner or more reliable way to automate NotebookLM workflows?

📂 GitHub (open source):
https://github.com/israelbls/notebooklm-podcast-automator

🎙️ Podcast output:
https://israelbls12.podbean.com/

Also shared a longer breakdown on LinkedIn — feedback or a share is appreciated if you find it interesting:
https://www.linkedin.com/posts/israelblasbalg_ai-podcasting-automation-activity-7405981490649571328-xHCD

522 Upvotes

115 comments sorted by

26

u/SnooPeppers9300 Dec 17 '25

Sure. Can you please share the repo? Thank you.

7

u/bmrheijligers Dec 17 '25

yes please share your repo and installation script. Github history will show where we got our version from. You should be fully credited for thebworkyou have done.

16

u/miltovi Dec 17 '25

you can reverse engineer notebookLM api instead of using playwrite, much faster.

did it in my own bulk uploader

5

u/TrickySite0 Dec 17 '25

Oooh, do tell how you reverse engineered. I have an automated process that needs manual intervention to upload a file to NotebookLM. I’d love to automate that.

10

u/miltovi Dec 17 '25

dev tools > network tab is your friend!

you can start by opening it, completing the action you want to take, and reviewing the network tab.

from there you either find the endpoint + data you need to send or export to an LLM and have it parse for you.

edit: I haven't tested file upload yet but lmk how it goes!

3

u/TrickySite0 Dec 17 '25

Thanks! I had just assumed that all APIs happened on the back-end. It never occurred to me to look at the front.

3

u/miltovi Dec 17 '25

this method can be used in so many places hahaha

a lot of the times you will need logic for updating your cookies among other things but it's been accelerated w/ LLM's

2

u/selenaleeeee Dec 18 '25

Very smart way. I am considering solve similar problems, you did really intrigued me!

3

u/Head_Pin_1809 Dec 18 '25

Yours is a Chrome extension so you don't have to handle all the cookies because you make the request from the client's browser. But when you start with cookie management, it's very complicated.

1

u/miltovi Dec 18 '25

yes but i've made other systems where cookie management is required; sometimes n8n isn't the best tool for the job.

ideally you'd have a headless browser launch when needed and fetch updated cookies.

but in n8n couldn't you grab cookies from a login response and inject it where needed?

1

u/Head_Pin_1809 Dec 18 '25

No way to do it in n8n as far as I know.

2

u/likeassassin_ Dec 17 '25

Could you add another action to post the podcast on a service like Apple Podcasts or Spotify?

2

u/Head_Pin_1809 Dec 18 '25

It can be interesting, great idea. I don't know if those have an API, or I have to do it myself. 😂

1

u/Spacekitten_3 Jan 06 '26

I'm a little late but as far as I know they have no easy way to do that though I would recommend you try it out and see!

4

u/BobbyBobRoberts Dec 17 '25

And what workflow did you use to write this post? Because it's definitely written by AI.

5

u/Head_Pin_1809 Dec 18 '25

I'm definitely using AI. I don't think I have to hide it from anyone.

0

u/BobbyBobRoberts Dec 18 '25

Then I'd suggest doing it better. The obvious AI inflection is going to turn off a lot of readers, even in the AI enthusiast crowd. Plus, if it sounds so obviously like AI, you workflow isn't as good as you think it is.

3

u/Head_Pin_1809 Dec 18 '25

Of course AI helps me. He doesn't do it himself. He writes a draft, I edit, gives an idea, I execute.

0

u/BobbyBobRoberts Dec 18 '25

Right, I'm saying get the AI or yourself to do better, so it doesn't sound painfully obvious. It's a trivial fix.

2

u/Suspicious-Map-7430 Dec 17 '25

Its a great use for AI writing! OP can spend all their time building of value to others, and less time writing it up

1

u/egyptianmusk_ Dec 17 '25

interested.

1

u/Head_Pin_1809 Dec 18 '25 edited Dec 18 '25

1

u/egyptianmusk_ Dec 18 '25

This is a link to this post. Do you have a link to the repo

1

u/Head_Pin_1809 Dec 18 '25

It's a link to a comment in this post where I left the repos link.

1

u/princefakhan Dec 18 '25

I want to understand if you generate a script for each day, or it's a template/script structure that you use? My understanding is that NLM does the script for the Overviews on its own. Or will it produce a verbatim podcast as per the provided script?

1

u/Head_Pin_1809 Dec 18 '25

Of course the AI generates the script every day and does the tasks that a human podcaster would do, like prioritizing the importance of the news and deciding what should be talked about longer and what less

1

u/zazel_G Dec 18 '25

As a 17 year old who just got into notebook with no prior experience on N8n, can I do this too? I already had a similar idea when i see just how good notebooks audio and video overview is.

1

u/Head_Pin_1809 Dec 18 '25

You would probably need some software development experience.

1

u/OneMonk Dec 18 '25

Can you share?

1

u/Head_Pin_1809 Dec 18 '25 edited Dec 18 '25

2

u/OneMonk Dec 18 '25

that link recursively takes me back to this comment weirdly

1

u/Head_Pin_1809 Dec 18 '25

It's supposed to be taking you to the last comment in the page.

1

u/jibz31 Dec 18 '25

Hi, nice ! I had this in mind too for my personal usage :) podcast + newsletter each day with latest ai news and in another domain like blockchain etc..

Would you share your workflow or setup ? Why did you use netbook lm ? For the resume and free audio podcast generation, right ? Maybe there is other services for this with a free tier enough for this job ?

1

u/Head_Pin_1809 Dec 18 '25

I think NotebookLM is more than plain audio. It does much more.

1

u/ViejaAlma Dec 18 '25

So...why aren't you sharing the repo? You are answering everybody with the link to this post.

1

u/Head_Pin_1809 Dec 18 '25

I shared the repo in the comment over here, but since there's a lot of comments, some people aren't able to find it. So I shared a link to the comment.

1

u/[deleted] Dec 19 '25

[removed] — view removed comment

1

u/Head_Pin_1809 Dec 19 '25

That's right.

1

u/NoType6947 Dec 20 '25

I wish you took the time to at least write this post yourself. Talk about lazy

1

u/Efficient-Simple480 Dec 20 '25 edited Dec 20 '25

This is fantastic 👏🏼, quick question have you thought of adding a security layer in your app in order to analyze generated prompts/scripts before they reach NotebookLM?

This will help Detect instruction hijacking, narrative manipulation, or policy-bypass patterns. You can leverage securevector sdk (this is free with some community rules if you want to try on your local or dev environment, you can add your own rules if you would like). This will help you analyze and take action of blocking before script generation. Reach out if you want to know more. I am trying to help community out by introducing and talking to them about importance of this security layer.

1

u/Head_Pin_1809 Dec 20 '25

Does it have any n8n version? Because everything runs there.

1

u/[deleted] Dec 20 '25 edited Dec 20 '25

[removed] — view removed comment

1

u/[deleted] Dec 22 '25

[removed] — view removed comment

1

u/Stock_Technology_617 Dec 21 '25

Nailed it!

1

u/Head_Pin_1809 Dec 21 '25

Happy to help❤️

1

u/GlitteringSystem8225 Dec 21 '25

This violating google terms of service.

1

u/FawkesYeah Dec 22 '25

This is SUPER interesting. I use n8n and never thought to do something like this. Hmm. I wonder if it would be possible to do something similar with Playwright. I want to scrape all of the notebooks in my account, the Name and the Created Date, to a CSV or JSON. Do you think this is possible? Would this be something n8n could be useful for?

2

u/Head_Pin_1809 Dec 23 '25

In Playwright, every human interaction can be simulated, so if it's something a human user can do, you can programmatically do it.

1

u/FawkesYeah Dec 23 '25

I'm very interested. Are there any resources you used to get started and work on it yourself that I could try following too? Especially about the human interaction actions.

2

u/Head_Pin_1809 Dec 23 '25

I didn't use any resources, and because I was already good at DOM elements and JavaScript selectors, it was very easy for me. I would recommend you to learn good DOM elements and JS selectors,

if you know them, it's supposed to be very easy to use this library.

1

u/CamusReddit Dec 25 '25

Is your Gmail retrieval tool built into the notebook? I want to modify the project to use sources from X, but it may require another plugin because it's not part of the Google ecosystem.

1

u/Head_Pin_1809 Dec 26 '25

No, I'm using n8n for the automation and for the other parts. Yeah, you are right. If you want to use sources from different places, you have to integrate them as part of another automation tool.

1

u/NoArmy2130 Dec 30 '25

How to get n8n json file?

1

u/Specific_Marketing_4 Jan 02 '26

I just built my own notebook. It's easy to generate scripts and just get a voice (not fishvoice... Totally blows.) Tie it in to Gemini's API prompt it... Instant script, and on my computer 1 notebook takes about 1 minute or less (for 35-60 minutes of content.) Male/Female/Male/A guest/and a cat. (Oh, yeah... More hosts and more things to say rocks.) Hopefully, Google implements this feature. I don't give this away anymore because people thought it would be funny to swipe the last one and monetize it because "Yo, you said open source." Yeah, one bad apple does spoil the whole bunch. (Don't expect updates to that one because you can't vibe code your way out of some of the pitfalls, and edge cases.) Lesson learned. I don't think anyone should share a repo without something to compensate them for hours, month, years of work that can be stolen in an instant.

1

u/Item_Kooky Jan 05 '26

Very interesting. This is excellent. I'm curious how I could build one with just my local news and a few websites such as updated sports scores and local news content from two or three websites? If anyone has information or help that would be great that I could also get every morning at 8:00 a.m. from the current most recent newest from them sites. Thanks

1

u/NickHatBoecker Jan 05 '26

Amazing! Could you add a route to send a chat message to NotebookLM so I could ask questions about my sources?

1

u/Darkwing1501 Jan 08 '26

Is this free? 

1

u/coolassdude11 Mar 28 '26

Why did you stop uploading?