Get This Tool
E3d-pod2vid
Pricing
- Model
- Free
Summary
You export a NotebookLM conversation, drop it into a folder, and then spend the next four hours wrestling ffmpeg, subtitle libraries, and YouTube's OAuth dance before anything goes live — e3d-pod2vid exists to collapse that entire chain into one scripted run.
The pipeline takes a diarized audio file and works through four distinct steps: GPT-4o-mini selects semantically matched Pexels B-roll per utterance, subtitles are burned in via Pillow so you skip the libass dependency nightmare, voices can be swapped to OpenAI TTS, and the finished MP4 uploads directly to YouTube with description and thumbnail. It runs locally, costs nothing to host, and every component is a visible Python script you can audit or modify. The ceiling appears fast: there is no GUI, no retry logic documented for API failures, and wiring up credentials across Pexels, OpenAI, and YouTube requires reading the source. Teams producing more than a handful of videos per week will hit the absence of a job queue.
Bottom line: Pick this for turning a weekly NotebookLM export into a YouTube-ready video without standing up infrastructure — hit a wall when you need parallel runs, error recovery, or anything beyond the fixed linear pipeline.
Community Performance Report Card
No community ratings yet. Be the first to rate this tool!
Community Benchmarks Community
Sign in to submit a benchmarkNo community benchmarks yet. Be the first to share a real-world data point.
Pros
Sign in to edit- Pillow-based subtitle burning instead of ffmpeg libass, which means the setup step that silently fails on half of developer machines is gone before you start.
- GPT-4o-mini picks B-roll clips per utterance from Pexels, so you avoid the manual clip-matching session that makes one-off video production feel slower than the recording itself.
- Optional TTS voice replacement via OpenAI, so you can swap NotebookLM's synthetic voices for a consistent branded voice without re-recording the source audio.
- Full source code with no hosted dependency, which means the pipeline runs on your own hardware, your API keys stay local, and nothing breaks because a vendor changed a pricing tier.
- signal_short.py provides a path to generating YouTube Shorts from live data signals, so the same codebase covers both long-form episodic content and short-form automated posts without a second tool.
Cons
Sign in to edit- The pipeline is strictly linear with no documented error recovery: if the Pexels B-roll fetch or the OpenAI call fails mid-run, there is no checkpoint or retry — you restart the full run from the beginning, which matters the moment your audio files exceed a few minutes.
- Credential wiring spans Python and Node.js runtimes simultaneously — Pexels, OpenAI, and Google OAuth must all be configured before a single test run completes, and a setup error in any one of them produces a runtime failure with no graceful fallback.
- There is no job queue, no concurrency, and no web interface: one video runs at a time, triggered manually; teams producing daily content or running multiple pipelines in parallel abandon this in favor of a hosted video automation service or a queue-backed workflow tool.
Community Reviews
Sign in to write a reviewNo reviews yet. Be the first to share your experience.
About
- Platforms
- Cross-platform (Python + Node.js)
- API Available
- No
- Self-Hosted
- Yes
- Last Updated
- 2026-06-30T08:16:04.197Z
Best For
Who it's for
- Podcasters and NotebookLM users
- Content creators needing quick video pipelines
What it does well
- Converting NotebookLM or podcast episodes to video
- Adding semantic B-roll and subtitles to audio content
- Replacing AI voices with custom OpenAI TTS
- Automating YouTube Shorts from live signal data
Integrations
Discussion Community
Sign in to commentNo discussion yet. Sign in to start the conversation.
Spotted incorrect or missing data? Join our community of contributors.
Sign Up to ContributeCommunity Notes & Tips Community
Sign in to contributeBe the first to contribute. General notes, observations, gotchas, and tips from people who use this tool day-to-day.
Frequently Asked Questions
- Is E3d-pod2vid free?
- Yes — E3d-pod2vid is fully free to use. There is no paid tier.
- Is E3d-pod2vid open source?
- Yes. E3d-pod2vid is open source.
- Can I self-host E3d-pod2vid?
- Yes. E3d-pod2vid supports self-hosting on your own infrastructure.
- What platforms does E3d-pod2vid support?
- E3d-pod2vid is available on: Cross-platform (Python + Node.js).
Hours Saved & ROI Stories Community
Sign in to contributeBe the first to contribute. Concrete time/cost savings, with context. e.g. "Cut my code review backlog from 4h to 45m per week."
Best E3d-pod2vid alternatives →
Curated lists that include this category
e3d-pod2vid is an open-source scripted pipeline that converts a diarized audio file — the kind exported from NotebookLM, a podcast editor, or an interview recording — into a YouTube-ready MP4. The core script, pod2vid.py, calls GPT-4o-mini to match each utterance to a Pexels B-roll clip, burns subtitles directly into the video frame using Pillow rather than ffmpeg’s libass renderer, optionally replaces the source audio with OpenAI TTS voices via tts_replace.py, and uploads the finished file to YouTube through a dedicated upload script. Separate utilities handle thumbnail generation, LinkedIn announcements, and a signal_short.py path for automating YouTube Shorts from live data.
The most distinctive choice here is the subtitle renderer. By routing subtitle composition through Pillow instead of ffmpeg’s libass, the tool sidesteps one of the most environment-sensitive dependencies in video toolchains — the one that behaves differently on every Linux distro and silently produces blank subtitles on macOS. That single decision removes a class of setup failures that eat hours.
This tool fits a specific slot: a solo creator or small team that produces episodic audio content and wants a repeatable, self-hosted pipeline without paying for a SaaS wrapper. It does not fit production workflows that require parallel processing, failure recovery between steps, or dynamic branching based on content type. The pipeline is linear and sequential — if the Pexels API call fails mid-run, the docs describe no automatic retry. Teams scaling beyond a few videos per week typically reach for a proper job queue or a hosted video automation service, at which point the value of this codebase shifts from production runner to reference implementation.
Credential setup spans three external services at minimum: Pexels for B-roll, OpenAI for GPT-4o-mini and optionally TTS, and Google OAuth for YouTube upload. The repository includes a .env.example file and separate auth scripts (yt_auth.js, linkedin_auth.js) built on Node.js alongside the Python core, so the runtime environment requires both Python and Node dependencies — requirements.txt covers the Python side, package.json the Node side.
