12/11/2025 at 5:01:09 AM
I was recently (vibe)-coding some games with my kid, and we wanted some basic text-to-speech functionality. We tested Google's Gemini models in-browser, and they worked great, so we figured we'd add them to the app. Some fun learnings:1. You can access those models via three APIs: the Gemini API (which it turns out is only for prototyping and returned errors 30% of the time), the Vertex API (much more stable but lacking in some functionality), and the TTS API (which performed very poorly despite offering the same models). They also have separate keys (at least, Gemini vs Vertex).
2. Each of those APIs supports different parameters (things like language, whether you can pass a style prompt separate from the words you want spoken, etc). None of them offered the full combination we wanted.
3. To learn this, you have to spend a couple hours reading API docs, or alternatively, just have Claude Code read the docs then try all different combinations and figure out what works and what doesn't (with the added risk that it might hallucinate something).
by Ozzie_osman
12/11/2025 at 5:06:54 AM
Some other fun things you'll find:- The models perform differently when called via the API vs in the Gemini UI.
- The Gemini API will randomly fail about 1% of the time, retry logic is basically mandatory.
- API performance is heavily influenced by the whims of the Google we've observed spreads between 30 seconds and 4 minutes for the same query depending on how Google is feeling that day.
by CSMastermind
12/11/2025 at 9:17:47 AM
> The Gemini API will randomly fail about 1% of the time, retry logic is basically mandatory.That is sadly true across the board for AI inference API providers. OpenAI and Anthropic API stability usually suffers around launch events. Azure OpenAI/Foundry serving regularly has 500 errors for certain time periods.
For any production feature with high uptime guarantees I would right now strongly advise for picking a model you can get from multiple providers and having failover between clouds.
by hobofan
12/11/2025 at 10:12:19 AM
Yeah at $WORK we use various LLM APIs to analyze text; it's not heavy usage in terms of tokens but maybe 10K calls per day. We've found that response times vary a lot, sometimes going over a minute for simple tasks, and random fails happen. Retry logic is definitely mandatory, and it's good to have multiple providers ready. We're abstracting calls across three different APIs (openai, gemini and mistral, btw we're getting pretty good results with mistral!) so we can switch workloads quickly if needed.by downsplat
12/11/2025 at 3:59:14 PM
I've been impressed by ollama running locally for my work, involving grouping short text snippets by semantic meaning, using embeddings, as well as summarization tasks. Depending on your needs, a local GPU can sometimes beat the cloud. (I get no failures and consistent response times with no extra bill.) Obviously YMMV, and not ideal for scaling up unless you love hardware.by jwillp
12/11/2025 at 5:34:25 PM
Which models have you been using?by duckmysick
12/11/2025 at 7:58:10 PM
It'd be kinda nice if they exposed whatever queuing is going on behind the scenes, so you could at least communicate that to your users.by phantasmish
12/13/2025 at 4:40:23 PM
IIRC this is almost exactly the use case for OpenRouter, down to provider fallback https://openrouter.ai/docs/guides/best-practices/uptime-opti...by aamoscodes
12/11/2025 at 6:48:58 AM
I have also had some super weird stuff in my output (2.5-flash).I'm passing docs for bulk inference via Vertex, and a small number of returned results will include gibberish in Japanese.
by specproc
12/11/2025 at 9:04:30 AM
I had this last night from flash lite! My results were interspersed with random snippets of legible, non-gibberish English language. It was like my results had got jumbled with somenone else's.by walthamstow
12/13/2025 at 2:40:54 AM
I’ve gotten Arabic randomly in Claude Code. Programming is becoming more and more like magic.by gfdvgfffv
12/11/2025 at 9:40:00 AM
I get this a lot too, have made most of the Gemini models essentially unusable for agent-esque tasks. I tested with 2.5 pro and it still sometimes devolved into random gibberish pretty frequently.by ashwindharne
12/11/2025 at 10:14:23 AM
"The models perform differently when called via the API vs in the Gemini UI."This shouldn't be surprised, e.g. the model != the product. The same way GPT4o behaves differently than the ChatGPT product when using GPT4o.
by halflings
12/11/2025 at 12:32:55 PM
> The models perform differently when called via the API vs in the Gemini UI.This difference between API vs UI responses being different is common across all the big players (Claude, GPT models, etc.)
The consumer chat interfaces are designed for a different experience than a direct API call, even if pinging the same model.
by akhilnchauhan
12/11/2025 at 5:55:12 AM
So, not something for a production app yet.by DANmode
12/11/2025 at 6:31:35 AM
Even funnier, when Pro 3 answers to a previous message in my chat. Just making a duplicate answer with different words. Retry helps, but…by ianberdin
12/11/2025 at 8:30:36 AM
[dead]by YouAreWRONGtoo
12/11/2025 at 10:31:08 AM
The way the models behave in Vertex AI Studio vs the API is unforgivable. Totally different.by te_chris
12/11/2025 at 8:40:29 AM
Also, usage and billing takes a DAY to update. On top of that, there are no billing caps or credit-based billing. They put the entire burden on users not to ensure that they don't have a mega bill.by prodigycorp
12/13/2025 at 11:07:12 PM
Usage updates much quicker in the AI Studio UI, near realtime (but can take ~5 min in edge cases).We are working on billing caps along with credits right now. Billing caps will land first in Jan!
by logankilpatrick
12/11/2025 at 9:11:15 AM
> there are no billing caps or credit-based billing.Was really curious about that when I saw this in the posted article:
> I had some spare cash to burn on this experiment,
Hopefully the article's author is fully aware of the real risk of giving Alphabet his CC details on a project which has no billing caps.
by paganel
12/11/2025 at 10:39:19 AM
there's prob a couple ppl out there with an Amex Black parked on a cloud acct, lolby nacozarina
12/11/2025 at 10:32:02 AM
Trying to implement their gRPC api from their specs and protobufs for Live is an exercise in immense frustration and futility. I wanted to call it from Elixir, even with our strong AI I wasted days then gave up.by te_chris
12/13/2025 at 11:08:21 PM
We are updating the API to be REST centric. Very fair feedback, see the new Interactions API we just shipped, very REST centric and all future work we do will be REST centric : )by logankilpatrick
12/11/2025 at 10:52:22 AM
Oh man let me add onto that!4. If you read about a new Gemini model, you might want to use it - but are you using @google/genai, @google/generative-ai (wow finally deprecated) or @google-ai/generativelanguage? Silly mistake, but when nano banana dropped it was highly confusing image gen was available only through one of these.
5. Gemini supports video! But that video first has to be uploaded to "Google GenAI Drive" which will then splices it into 1 FPS images and feeds it to the LLM. No option to improve the FPS, so if you want anything properly done, you'll have to splice it yourself and upload it to generativelanguage.googleapis.com which is only accessible using their GenAI SDK. Don't ask which one, I'm still not sure.
6. Nice, it works. Let's try using live video. Open the docs, you get it mentioned a bunch of times but 0 documentation on how to actually do it. Only suggestions for using 3rd party services. When you actually find it in the docs, it says "To see an example of how to use the Live API in a streaming audio and video format, run the "Live API - Get Started" file in the cookbooks repository". Oh well, time to read badly written python.
7. How about we try generating a video - open up AI studio, see only Veo 2 available from the video models. But, open up "Build" section, and I can have Gemini 3 build me a video generation tool that will use Veo 3 via API by clicking on the example. But wait why cant we use Veo 3 in the AI studio with the same API key?
8. Every Veo 3 extended video has absolutely garbled sound and there is nothing you can do about it, or maybe there is, but by this point I'm out of willpower to chase down edgy edge cases in their docs.
9. Let's just mention one semi-related thing - some things in the Cloud come with default policies that are just absurdly limiting, which means you have to create a resource/account, update policies related to whatever you want to do, which then tells you these are _old policies_ and you want to edit new ones, but those are impossible to properly find.
10. Now that we've setup our accounts, our AI tooling, our permissions, we write the code which takes less than all of the previous actions in the list. Now, you want to test it on Android? Well, you can:
- A. Test it with your account by signing in into emulators, be it local or cloud, manually, which means passing 2FA every time if you want to automate this and constantly risking your account security/ban.
- B. Create a google account for testing which you will use, add it to Licensed Testers on the play store, invite it to internal testers, wait for 24-48 hours to be able to use it, then if you try to automate testing, struggle with having to mock a whole Google Account login process which every time uses some non-deterministic logic to show a random pop-up. Then, do the same thing for the purchase process, ending up with a giant script of clicking through the options
11. Congratulations, you made it this far and are able to deploy your app to Beta. Now, find 12 testers to actively use your app for free, continuously for 14 days to prove its not a bad app.
At this point, Google is actively preventing you from shipping at every step, causing more and more issues the deeper down the stack you go.
by thecupisblue
12/11/2025 at 1:29:58 PM
12. Release your first version.13. Get your whole google account banned.
by egorfine
12/11/2025 at 2:20:15 PM
14. Ask why it was banned and they respond with something like "oh you know what you did".by davidmurdoch
12/11/2025 at 5:46:01 PM
Ha, bold of you to assume they'll respond!by short_sells_poo
12/13/2025 at 11:21:11 PM
> 4. If you read about a new Gemini model, you might want to use it - but are you using @google/genai, @google/generative-ai (wow finally deprecated) or @google-ai/generativelanguage? Silly mistake, but when nano banana dropped it was highly confusing image gen was available only through one of these.?Yeah, I hear you, open to suggestions to make this more clear, but it is google/genai going forward. Switching packages sucks.
> Gemini supports video! But that video first has to be uploaded to "Google GenAI Drive" which will then splices it into 1 FPS images and feeds it to the LLM. No option to improve the FPS, so if you want anything properly done, you'll have to splice it yourself and upload it to generativelanguage.googleapis.com which is only accessible using their GenAI SDK. Don't ask which one, I'm still not sure.
We have some work ongoing (should launch in the next 3-4 weeks) which will let you reference files (video included) from links directly so you don't need to upload to the File API. We do also support custom FPS: https://ai.google.dev/gemini-api/docs/video-understanding#cu...
> 6. Nice, it works. Let's try using live video. Open the docs, you get it mentioned a bunch of times but 0 documentation on how to actually do it. Only suggestions for using 3rd party services. When you actually find it in the docs, it says "To see an example of how to use the Live API in a streaming audio and video format, run the "Live API - Get Started" file in the cookbooks repository". Oh well, time to read badly written python.
Just pinged the team, we will get a live video example added here: https://ai.google.dev/gemini-api/docs/live?example=mic-strea... should have it live Monday, not sure why that isn't there, sorry for the miss!
> 7. How about we try generating a video - open up AI studio, see only Veo 2 available from the video models. But, open up "Build" section, and I can have Gemini 3 build me a video generation tool that will use Veo 3 via API by clicking on the example. But wait why cant we use Veo 3 in the AI studio with the same API key?
We are working on adding Veo 3.1 into the drop down, I think it is being tested by QA right now, pinged the team to get ETA, should be rolling out ASAP though, sorry for the confusing experience. Hoping this is fixed by Monday EOD!
> 8. Every Veo 3 extended video has absolutely garbled sound and there is nothing you can do about it, or maybe there is, but by this point I'm out of willpower to chase down edgy edge cases in their docs.
Checking on this, haven't used extend a lot but will see if there is something missing we can clarify.
On some of the later points, I don't have enough domain expertise to weight in but will forward to folks n the Android / Play side to see what we can do to streamline things!
Thank you for taking the time to write up this feedback : ) hoping we can make the product better based on this.
by logankilpatrick
12/15/2025 at 10:26:09 AM
Didn't catch in the updates that the custom FPS was released, amazing. Seems like the limit is just 20MB, but can use custom splitting for larger ones.Trying to split all videos into frames was a PITA mostly due to weird inputs from different Android phones requiring handling all kinds of edge cases, then uploading each to Upload API with retry was also adding a lag + complexity, so doing it all in one go will save me both time and nerves (and tokens).
Thanks for listening and all the great work you do, since you came in the experience improved by an immeasurable amount.
by thecupisblue
12/13/2025 at 11:06:08 PM
Will take a pass with the team to see what we can do to tighten up this experience, very valid feedback on the confusion between the three APIs.by logankilpatrick
12/12/2025 at 7:07:15 AM
What stack are you using?by marqueewinq