Youtube API Quota Limit Exceeding Too Fast (100x) - google-api

I am currently using the "Search by Keyword" sample at the following link. I am implementing this solution in NET Core (c#), utilising the Youtube API.
The issue I am having is that my used quota allowance, which is 10,000 queries per day, is increasing by 100x each time this code is executed.
I have tried limiting my search to only Videos and not Playlist/Channels using the following code:
searchListRequest.Type = "video";
I am using API authentication, not OAuth. I have restricted the usage of the API key on the developer console also.
I have ensured that the following line is only called once and not inside a loop etc:
// Call the search.list method to retrieve results matching the specified query term.
var searchListResponse = await searchListRequest.ExecuteAsync();
The sample is provided at the following link:
https://developers.google.com/youtube/v3/code_samples/dotnet
Any help or advice would be appreciated.
Thanks

As it turns out, each call has a "Quota Cost". So one call does not necessarily equal one of your quota amount.
There is a calculator at the following link:
https://developers.google.com/youtube/v3/determine_quota_cost
Hope this helps someone.

Related

YouTube API is adding 101 uses for each request instead of one

I am using the YouTube API to search for information about videos and to search for videos. However, whenever I make a request, it charges 101 uses instead of 1, and I am reaching the daily quota quickly. I have only made about 27 requests, but as you can see
,
I have already used 2,727 requests out of my daily 10,000 limit. I've tried to figure out why this is happening, but I haven't found anything. Why is this happening? Any help is greatly appreciated. Please help, as this is negatively affecting this program. Thanks!
I am using Unirest to get the data, and this is what the code is:
var req = unirest("GET", `https://www.googleapis.com/youtube/v3/search?q=${query}&part=snippet&maxResults=1&key=${API_KEY}&type=video`)

Concrete price for YouTube API-Calls

In the quota calculation for YouTube, there is neither a currency nor a volume that the price refers to. Where do I find the pricing per API call?
Thank you!
The YouTube API quota calculator can be complicated thats why they created the calculator
YouTube Data API (v3) - Quota Calculator
This tool lets you estimate the quota cost for an API query. All API requests, including invalid requests, incur a quota cost of at least one point.
To use the tool, select the appropriate resource, method, and part parameter values for your request, and the approximate quota cost will display in the table. Please remember that quota costs can change without warning, and the values shown here may not be exact.
The cost is against your quota found in the developer console
I am not sure i understand what you mean by currency. The YouTube api is a free api it doesnt cost anything to use.

YouTube V3 api returns considerably different LIKEs and Comments results from numbers on the Web

YouTube v3 api returns significantly different LIKEs count from what is on the web version of YouTube.
Compare these:
https://monosnap.com/file/EdtDNTTGDK06zoCZ7IXkMdzn6WuyOo
https://monosnap.com/file/CcJOiKl9CBMyncHQSrPv3lkLOuqeDD
To replicate:
https://www.googleapis.com/youtube/v3/videos?id=jWnhFM1Ttwg&key={api_key}&maxResults=50&part=statistics (https://console.developers.google.com/apis/credentials - use your Youtube V3 key)
Any ideas?
Many thanks!
Since I don't have any documentation (from the YouTube Data API v3) that backs me up for what I going to say, I'll drop some thoughts about why the API returns different values in the "likeCount" section comparing to the YouTube actual video (saw in the main website):
I think that the differences in the results returned by the API and the results shown in the website are due to:
YouTube has its own calculations for set the values in the website, the API results and in the YouTube Analytics1.
It would be possible that those additional "likes" retrieved in the API aren't exposed to the calculations made by YouTube.
1 Extracted from this answer in the Google Support webpage:
The number of likes/dislikes in YouTube Analytics may be different than what you see on the watch page under the video. This
is a known issue and our team is working to fix this. In the meantime,
please refer to the counts on the watch page under the video for the most accurate count.
And
In rare instances, you might see more likes/dislikes than views since these metrics are adjusted by different verification
systems.
For the specific videoId you posted in your question, I did check at 2019-01-25 and the results were:
likeCount "by the API": 1341
likeCount "in the YouTube website": 851
Check again at 2019-01-28 the numbers did changed:
likeCount "by the API": 1367
likeCount "in the YouTube website": 877
You can try here the API request for get these results - (results for current day).
If you make a substract from the likeCount values gotten above, you'll get 26.
Maybe it is futile try make any mathematical operation for set the "correct" value shown in the YouTube website (using the likeCount result from the YouTube Data API), but if anyone want give it a try, I encourage you to share your answer.

Google Places webservice returns nextpage token as 0x0 after two requests

I have written a d code to retrieve the available places (like hospitals in US) from google places web service. I am able to retrieve place details only continuously for 2 requests only. afterwards the pagination token is set as 0x0 in the json response.
But if i manually do the search in the google then it keep on moving more than that. What is wrong am i doing here. Google says that it allows 1000 request per day limit for free. But it doesn't serve more than 2 requests. I have used d lang "requests" module for making the http request.
You only get 60 results across three pages, because that's the maximum provided by the API.
Nearby Search and Text Search requests in the Google Places API web service return a maximum of 60 results. See the Accessing Additional Results section of the documentation, which says:
each search can return as many as 60 results, split across three pages.
(Emphasis mine.)
dlang-requests can display (to stdout) detailed info on request and response if you use verbosity=3.
Also you can compile sources it with -debug=requests and set globalLogLevel(LogLevel.trace) to produce even more detailed log information. If this doesn't help, then please give me detailed info on failed API call so that I can reproduce problem.

Exhaustive Search on Google Places

I'm trying to use Google Places API for a business locator app, but am having trouble creating an exhaustive database of business.
1.The API call only returns 20 results back.
2.The "type" restriction (e.g. type=restaurant) does not pick up all businesses by type in a given zip. I could use "keyword" but not all restaurants have restaurant in their name, and not all spas have "spa" in their name.
3. Each call produces the same set of results from day to day, and with only 20 returns per call, how am I to get a more exhaustive database of businesses?
I can try to get around the above three constraints by looping through a very well degraded search of businesses: say by zip code, some list of keywords, category type. But I still won't get close to picking up the 50 million or so businesses in google places.
In fact, even when I make a call for restaurants and bars in my own neighborhood, I don't pick up popular places down the block from me.
How is the API usable for an app that locates places then?
Any suggestions on how to create a more exhaustive search?
Thanks,
Nad
I'm not able to answer your question regarding Google Places API.
But for your requirements ('business locator app', 'I don't pick up popular places down the block from me') I suggest you try Yelp Search API:
Yelp's API program enables you to access trusted Yelp information in real time, such as business listing info, overall business ratings and review counts, deals and recent review excerpts.
Yelp is a popular review website with a capable API and you may test the quality of database and the devoted user base they have at Yelp homepage.
Note:
They keep some data for themselves and do not return everything in response.
The (free) dev account has a limit of 100 calls per 24 hours.
I know I'm late but maybe it helps someone these days.
By default, each Nearby Search or Text Search returns up to 20
establishment results per query; however, each search can return as
many as 60 results, split across three pages.
You need to use the field nextPageToken that you will receive on the first search to get the next page.
https://developers.google.com/places/web-service/search
An issue in stack overflow says:
There is no way to get more than 60 results in Places API. Some people
tried to file a feature request in Google issue tracker, but Google
rejected it with the following comment Unfortunately Places API is not
in a position to return more than 60 results. Besides technical
reasons (latency, among others) returning more than 60 results would
make the API be more like a database or general-purpose search engine.
We'd rather improve search quality so that users don't need to go so
far down a long list of results.
google places api more than 60 results
I faced the same difficulties that you did and decided to use the Yelp API instead. It is free, very complete and returns up to 1000 results. You should however check the terms of service before doing anything. It does not provide the website of the business (only the Yelp website link).
https://www.yelp.com/developers/documentation/v3/business_search
Other options I investigated at that time:
Foursquare ventures. (It was very expensive, and only returned up to around 100 results)
Here places API
Factual Places (I don't think this one is an API)
Sygic Travel API (Specific for touristical spots)
Planet.osm (OpenStreetMap)

Resources