When "free tier" means zero: folklore video and the Gemini quota wall
I wanted an absolutely free pipeline that generates folklore videos and posts them for me. The topic research works. The scripts are great. And then the actual video generation hit a wall that isn't a bug or a misconfiguration โ it's a number on a billing page: zero.
This is the story of a Make.com pipeline split in two: one half humming along on autopilot, the other half politely doing nothing because the thing it needs costs money.
The pipeline that works
Folklore: Research & Queue runs weekly. Gemini generates five unique, obscure folklore topics โ myths, legends, cryptids, spirits โ with a catchy title, a summary, and a source URL, all returned as clean JSON. The scenario parses that and appends the rows to Google Sheets. Every Monday it refills the queue.
This half is genuinely finished. It runs unattended, writes to the sheet, and never complains. It's the boring, valuable part of automation: the research is queued before I even think about it.
The pipeline that stops
Folklore: Generate & Publish is where the magic was supposed to happen. It watches the queue, and for each topic it:
- Drafts a 60-second TikTok/Reels script โ hook (0โ3s), story (3โ50s), CTA (50โ60s) โ with hashtags and
[Visual: ...]vertical cues. - Feeds that script to Gemini Veo to render a 9:16 vertical video.
- Uploads it to Facebook Reels, then documents the run on Telegram for a manual TikTok upload.
Step one works beautifully. Step two is where it collapses โ not because the logic is wrong, but because of the quota:
[429] You exceeded your current quota.
generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0
generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0
That limit: 0 is doing a lot of work. The free tier for video generation isn't "small" โ it's nonexistent here. There are effectively no free requests for the model the scenario is calling. No retry count, no backoff, no clever scheduling fixes a quota of zero.
What the error is really telling me
When something fails with an obvious fix, you fix it. When it fails with 429, you check rate limits. But a 429 with limit: 0 is a different animal โ it's not a transient spike you can wait out. It's a pricing decision wearing an error message. The README I wrote for the project puts it plainly: the failure isn't a flaw in the scenario design, it's the external API's free-tier allocation for video models.
The lesson so far: research and draft on the model's cheap side, but verify the expensive model's free tier before you build the whole pipeline on it. I assumed "there's a free tier for Gemini" and skipped reading whether it applied to Veo video. It didn't.
The paths forward
Option 1 โ go text-only, stay free. Drop the video step, publish the scripts as Telegram/Facebook text posts instead. Fully within quota, zero cost. Downside: no video, which is the whole point of a folklore channel.
Option 2 โ swap the video provider. Look at alternatives with real free tiers: Hugging Face inference, community-hosted models, anything other than Veo. Keeps video, costs a rework of one module and a hunt for quota that may not exist anywhere.
Option 3 โ batch and intervene manually. Keep the queue automated and run generation by hand when quota resets or a free window opens. Keeps cost at zero, sacrifices the "set and forget" promise.
Option 4 โ spend a little. Gemini's paid video pricing is genuinely cheap. The automation value โ an entire channel created, scripted, rendered and posted by a weekly cron โ probably justifies the few cents per video. But "absolutely free" was the constraint I set for myself, so this is the one I'm least willing to reach for without checking the others first.
The takeaway
Half of this pipeline is production-ready automation that ran from day one. The other half is a reminder that "free" is never a single switch โ it's a set of per-model quotas, and the most expensive capability is often the one allocated nothing at all. Check the limit before you build on a free API, not after the first execution log turns red.
The queue keeps filling. The scripts keep getting better. The video is waiting for a decision โ text-only, a new provider, or the small bill. Whichever I pick, I'll know exactly which number on the billing page made me pick it. ๐ฅ