Byron/google-apis-rs

syncrecognize API seems out of date (404 on method call)

happysalada opened this issue ยท 17 comments

calling the syncrecognize method (on the beta speech api), I'm getting thefollowing failure

Failure(Response { status: 404, version: HTTP/2.0, headers: {"date": "Tue, 24 Jan 2023 01:12:43 GMT", "content-type": "text/html; charset=UTF-8", "server": "ESF", "content-length": "1598", "x-xss-protection": "0", "x-frame-options": "SAMEORIGIN", "x-content-type-options": "nosniff", "alt-svc": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000,h3-Q050=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,quic=\":443\"; ma=2592000; v=\"46,43\""}, body: Body(Full(b"<!DOCTYPE html>\n<html lang=en>\n  <meta charset=utf-8>\n  <meta name=viewport content=\"initial-scale=1, minimum-scale=1, width=device-width\">\n  <title>Error 404 (Not Found)!!1</title>\n  <style>\n    *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}\n  </style>\n  <a href=//www.google.com/><span id=logo aria-label=Google></span></a>\n  <p><b>404.</b> <ins>That\xe2\x80\x99s an error.</ins>\n  <p>The requested URL <code>/v1beta1/speech:syncrecognize?alt=json</code> was not found on this server.  <ins>That\xe2\x80\x99s all we know.</ins>\n")) }))

the api must have been updated in the meanwhile, maybe it's time to regenerate the code ?

looking at the official docs, it seems to be just recognize https://cloud.google.com/speech-to-text/docs/reference/rest/v1p1beta1/speech/recognize

Byron commented

Indeed, regeneration is overdue and I will try to get to it. The way it's currently implemented makes it somewhat hard to only update one API at a time.

Thank you for your quick response! Happy to test whenever you've had a moment.

hey just saying I've got another one of these

7:41.737455Z ERROR media_summary: Failed to list operations: Gcloud api error: `Http status indicates failure: Response { status: 404, version: HTTP/2.0, headers: {\"date\": \"Wed, 25 Jan 2023 01:57:41 GMT\", \"content-type\": \"text/html; charset=UTF-8\", \"server\": \"ESF\", \"content-length\": \"1588\", \"x-xss-protection\": \"0\", \"x-frame-options\": \"SAMEORIGIN\", \"x-content-type-options\": \"nosniff\", \"alt-svc\": \"h3=\\\":443\\\"; ma=2592000,h3-29=\\\":443\\\"; ma=2592000,h3-Q050=\\\":443\\\"; ma=2592000,h3-Q046=\\\":443\\\"; ma=2592000,h3-Q043=\\\":443\\\"; ma=2592000,quic=\\\":443\\\"; ma=2592000; v=\\\"46,43\\\"\"}, body: Body(Full(b\"<!DOCTYPE html>\\n<html lang=en>\\n  <meta charset=utf-8>\\n  <meta name=viewport content=\\\"initial-scale=1, minimum-scale=1, width=device-width\\\">\\n  <title>Error 404 (Not Found)!!1</title>\\n  <style>\\n    *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}\\n  </style>\\n  <a href=//www.google.com/><span id=logo aria-label=Google></span></a>\\n  <p><b>404.</b> <ins>That\\xe2\\x80\\x99s an error.</ins>\\n  <p>The requested URL <code>/v1beta1/operations?alt=json</code> was not found on this server.  <ins>That\\xe2\\x80\\x99s all we know.</ins>\\n\")) }"}

It's on the list operations request.

I can imagine it must be painful to regenerate all the code, so no worries if you need time. I'm just leaving this here for information.

Byron commented

It's easy to regenerate, just checking what compiles and what doesn't is quite laborious.

You can give it a go as well, here is how to update schemas, then run make cargo-api ARGS=check and each time that fails, add it to the list of forbidden APIs along with a note as to why it fails.

When done, the changes to the shared.yml file are the value to send over in a PR - the rest I would have to re-validate, but that's fully automatic.

Byron commented

I am closing this issue as I thought why not just get this done. You should soon find a more recent version of this API on crates.io.

hey thanks a lot! I'll know for next time!

hey, I've just tried again today and the speech_beta api still doesn't work. It's still trying to call asyncrecognize endpoint which doesn't exist.
And the list operations doesn't work either.
I've changed my cargo dependency to point to master of this repo.
Did I miss / forget anything ?
(the errors are the same that I posted before).

Byron commented

I checked and it looks like google-speech1-beta1 v5 was published and is available on crates.io. If used directly from source, it will definitely be the most recently generated version. If it still doesn't work I presume it doesn't work for other reasons than just being out of date.

I'm not sure which library you are talking about, I've checked and I can't find it
https://crates.io/search?q=google%20speech%20beta

if you had a link, I would be happy to try.

Byron commented

I am referring to this crate. Also I am not quite sure what you have actually been using, maybe it was something else entirely?

I've been using master

google-speech1_beta1 = { git = "https://github.com/Byron/google-apis-rs" }

there is something wrong with the api generation, I'm not sure what, but both of the errors I got are still there.
If I had to take a guess, it would have to do with the 2018 number that is there. I think the api has changed since then and I'm not sure why the changes are not being picked up.

Byron commented

That's a lead!

The beta versions are only good for a while, then betas become production versions, drop the beta, and that's where these APIs are then maintained.

Thus I think you'd want to use the released version of the crate.

It looks like it's working now.
this is the version I had to use

google-speech1 = "5.0.2-beta-1"

and not the google-speech1-beta1 like I previously did.
It was a bit confusing, but it looks fixed now, thanks!

Thank you for your contributions.
google-translate3: 5.0.2-beta-1+20230106 doesn't seem to work either.
when I call hub.projects().translate_text(request, project_id).doit().await?,
got this following failure Failure(Response { status: 404, version: HTTP/1.1, headers: {"date": ~~~.
Is there something I missed?

Byron commented

It doesn't look like there is a new major version of this API, and the version of the API looks recent from this year. I don't think there is anything you are missing - maybe study the official docs to see how one is supposed to do things, and compare with what actually happens.

Thanks a lot!! I did make a mistake in my usage.
The failure message was hard to read, so I looked at the github issue first ๐Ÿ˜‚