what it does
paste a youtube url, get back:
- a publish-ready blog post with section structure, headings, and copy shaped for the platform you write on
- a newsletter draft in your tone, length-tuned for an inbox
- a clutch of social posts (twitter / linkedin), each with the framing that platform actually rewards
- a clean, timestamped, searchable transcript
connect your channel and that whole pipeline runs automatically every time you publish a new video. nothing to remember, nothing to paste.
channel connection
link your youtube channel once and vidpipe takes it from there. every time you publish a new video, the pipeline kicks off automatically and you get:
- a full blog post / article generated from the video
- a newsletter draft ready to send
- a set of social posts (twitter / linkedin) shaped for each platform
- a clean, timestamped transcript
ownership is verified through google oauth (youtube.readonly). no
attestation checkboxes, no “trust me i own this.” once you connect,
new uploads flow through the system without you touching anything.
drafts land in your dashboard for review. you decide what ships and what gets edited or trashed. the goal is to take the friction down to zero, not to take you out of the loop.
auto-publishing (coming soon)
the next phase: push the generated content straight to where you actually publish. no copy-paste, no reformatting, no “let me just open another tab.”
planned destinations:
- wordpress: direct publish to a connected wp site (self-hosted or wordpress.com), with category and tag mapping
- medium: push as a draft or a published story under your account
- ghost: connect a ghost site and publish to a tag/collection
- dev.to / hashnode: community platforms via their api
- more to come based on what people actually want to ship to
connect a destination once, choose per-channel defaults (auto-publish vs hold-as-draft), and the pipeline carries the post all the way to your audience. this is the work that turns “vidpipe makes the post” into “vidpipe ships the post.”
why i built it
i’ve shipped hundreds of long-form videos. every one of them is also a blog post, a newsletter, a thread, and a transcript that someone could search. but the cost of producing those side artifacts manually is high enough that they mostly don’t get made. when they do, they’re an afterthought.
vidpipe inverts that. the video is the source. everything else is generated, reviewed, and published from the same surface.
how it’s built
a quick tour:
- next.js app on vercel for the marketing site, dashboard, and api routes
- postgres (neon) for accounts, generations, channels, articles
- bullmq worker on a separate droplet that polls connected channels and queues per-video generation jobs (added during the pipeline pivot in early may)
- anthropic + openrouter for model routing. different stages of the pipeline use different models depending on length and quality ceiling
- stripe for both billing modes: credit packs that never expire, and monthly subscriptions
- google oauth (
youtube.readonly) to verify channel ownership before any auto-generation flows
the system has two distinct shapes (a synchronous “paste-a-url” generator, and an async “connected-channel” pipeline) sharing the same generation core. that split is the heart of the product, and also where most of the recent engineering effort has gone.
the recent arc
shipped to a soft launch in early may behind a preview banner. the build-up looked roughly like this:
- prelaunch hardening: multi-model routing through openrouter, abuse protection on free generation, transcript validator unblocked, full admin user-detail surface
- pipeline pivot: the schema, backend api, frontend, and async worker for connected channels. shipped in two phases on a feature branch, fully gated behind an env flag until oauth landed
- oauth + soft launch: replaced the temporary “i confirm i own this channel” attestation with a real google oauth verification, then flipped the preview banner on
- pricing rework + payment audit: locked in solo / pro / studio tiers across both billing modes, then audited and patched 11 bugs across the consume / refund / webhook paths
the next thing isn’t a bigger model or a fancier ui. it’s making the connected-channel flow feel like infrastructure, not a feature.