I have a specific requirement to capture YouTube Channel video and all its related comments/replies description etc for multiple companies/customers.
I will easily breach the daily quota limit, if i use only one Google account to fetch the data through Youtube Data API.
Can i use multiple google account and utilize free credit, will this be a breach or consider a DDOS attack?
If you try using multiple Google projects (I think it's quite similar for multiple accounts even if it may have lenient triggers) you will have your projects suspended. More precisely you will receive this email:
Immediate action required: Your Google Cloud Platform / API project
YOUR_PROJECT_NAME (id: YOUR_PROJECT_ID) is being suspended
Dear Developer,
We have recently detected your Google Cloud Project YOUR_PROJECT_NAME
(id: YOUR_PROJECT_ID) has been circumventing our quota restrictions
via multiple projects acting as one and is violating our Terms of
Service. Your project YOUR_PROJECT_NAME (id: YOUR_PROJECT_ID) has been
suspended.
You can request here a free quota increase.
Otherwise as of today as the process above is quite long AFAIK, you can use my open-source no-key service:
To make any YouTube Data API v3 request without any key/using your quota you can use: https://yt.lemnoslife.com/noKey/YOUR_REQUEST
For instance you can use: https://yt.lemnoslife.com/noKey/videos?part=snippet&id=VIDEO_ID instead of https://www.googleapis.com/youtube/v3/videos?part=snippet&id=VIDEO_ID
Related
I have two different apps using a single YouTube API quota and each one is using its own key.
Is there a way to define that Key A may use X% of the quota and Key B may use Y%?
It is easy to see metrics by API key, but I have not been able to find a way to set a limit per key.
Thanks!
Quota for the Google apis is based upon the project. So when you create a new project in Google cloud console. All clients wither they be web, installed, mobile clients as well as service accounts. This includes api keys will all be under the same quota allowance.
If you want to be able to analytics requests you should know that the metrics shown in google cloud console are estimations they are not prefect.
There is no way to limit how many requests each key can make or even each client can make.
I'm building an Android app which embeds YouTube videos. I'm confused on how the billing works for the YouTube Data API v3. Is it dependent on whether the APIs are called from GCP server or AWS server?
The YouTube Data API, is a free API Google does not charge you for accessing this API. You are free to use it. Therefore no billing account is needed in order to access this API.
You do have a quota which limits the number of request that you can make to the API over a period of time.
Useful links
Quota cost calculator
YouTube API and cost based quota demystified
The current youtube API quota is 10,000 units/day.
So what if I created an app and this app has 100 copies installed on different 100 devices and all of them use different IPs, would the quota be 10,000 units/day for every device (1M/day) or the 10,000 units would be distributed among the different copies?
Note that the requests will be executed on different devices. this is an embedded app., not a cloud one.
10,000 units/day is project based, not user based. IP address won't affect anything.
As you can see from the above image on the Queries per minute per user is user based, and detected via ip address, sending the quotauser parameter along with the request or sending an authorization header containing an access token.
In order to get around your 10k quota in this manner you would need to create 100 projects on google developer console and create credietnals for each of those projects and then each project would have 10k quota. However the drawback would be trying to get 100 projects though the google verification process.
You could just request an extension of your quota if you need more quota. 😊
Additional Clarifications
API key Used to access public data only and identifies your application to google
Client id and client secrete used to create a access token, will identify both the application and the user to google once a user is authorized and you are sending an access token authorization header with your request.
The quotaUser and userIp parameters can only be used for anonymous requests with some Google apis this has changed recently i am not sure if it still works with YouTube api private calls. userIp allows you to send any ip address with the request, and QuotaUser allows you to send any string for example your internal user id for the user making the requests. In the past this allowed for some hacking / work around for the per user quotas.
None of the above information will really help you as the quota you are trying to get around is a project based quota and not a user based quota. Its detecting the project associated with your client id / api key (depending upon what you are using) changing the IP or generating a new client under your project isnt going to help.
Really just request more quota
There are two ways an app is identified by the API:
the API key that the app uses when invoking the API endpoints (for reading only public data), or
the credentials data (i.e. access token) the app makes use of when calling in various endpoints (for reading only public data pertaining to any YouTube channel, or, otherwise, for reading/updating/deleting public and/or private data pertaining the YouTube account/channel that granted permissions of operation to the respective app).
Therefore, from the point of view of the API, it doesn't really matter if you are running N different instances of your app (i.e. programs running on concrete computers). The API accounts for the quota consumption of a given project created through Google developers console.
In this context of an app (as a concrete program) running on several machines that share API keys and/or credentials data, I recommend warmly to get familiar with the content of the DTOS specifications.
I was using Youtube Data APIto get youtube video but after getting mail from youtube which says api is disable due to inactive.
Youtube Data api not working since it was disabled by youtube because of inactive for 90 Days. I am not able to call(It is enable in API Console) it even with delete and add new delete back. Please help.
Error shows when i am calling from Web Browsers with api Key i also tried to generate new API key also delete and regenerate new api key but still no luck.
"Access Not Configured. YouTube Data API has not been used in project
264969722993 before or it is disabled. Enable it by visiting
https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=264969722993
then retry. If you enabled this API recently, wait a few minutes for
the action to propagate to our systems and retry."
There are things you can do to try and solve this issue. This first option is to apply for an API exception by filling out this out this form. I've filled out this form and am waiting for a response.
The second option is to create a new project and use that project to generate an API key. Because Google has only disabled access to the Youtube Data API for your current project, the new project's API key should work just fine. I've tried this and can confirm this works. This is probably the more hassle-free option if you have extra projects to spare as Google only allows 10 projects at any point in time.
I'm in the same position, disabled for no calls in 90 days. You can request an exemption but after about 25 back and forth emails it's clear that it is just a smokescreen. After explaining what it's used for they then wanted screenshots, then videos of you using the application, how we use the videos we pull up, and then a shot of the room where it was being used. They even asked who made the video we were looking at (we have no idea!). They want your whole business model and what you do. It was just never ending questions and more stuff to send them. After about 2 1/2 months of slow back and forth, I get a message saying I am out of compliance.
Our application uses YouTube to pull up videos for manufacturers product for research and training in a small training/conference room for internal use only. That's all!
Nothing was out of compliance.
This is the email we received:
Hello ,
We have reviewed your quota extension request for project number
#### and have revoked the allocated quota for your API Client(s) as it is out of compliance on the following YouTube API Services -
Developer Policy:
Policy F. 1 (User Experience - YouTube Look and Feel) Please do not
reply to this email, you may complete and submit this form to re-apply
once the above concern has been addressed.
Thanks, YouTube API Services team
The form link in the email is just a link to start the whole process over again.
According to YouTube policy
If your API Client's quota is reduced or eliminated, you may reapply for quota or a quota extension, and YouTube will review that application based on YouTube’s determination of your expected use of the YouTube API Services.
https://developers.google.com/youtube/terms/developer-policies
I suggest reapplying.
To add to avatarhzh's answer:
If you have already used up your initial cap of max. 12 projects and your channel is a brand account and you do not want to go through the process of applying for more quota/getting back your previous quota, you can also create new projects on a different google account and then add that account to your channel as a manager. It is then possible to access your channel through this new account via the youtube data API.
If your channel is not a brand account yet, you can move your channel to a brand account. This allows you to add different google accounts as managers/co-owners of the channel. Warning: certain things (e.g. comments) cannot be transferred when moving to a brand account.
I'm building a suite of tools that integrate with Asana. These tools comprise a web browser extension and a web app (or Chrome packaged app). Do the browser extension and web app share the same API call quota?
Right now, API rate limits are enforced per-user. Until we released OAuth support, there was no way to distinguish between different apps (since users were always authorized by the same API key). In future, each app will get its own rate limit quota (per user). If you intend to make them separate apps (and have users authorize them separately) they would then get separate quotas - but if you're either using an API key for both, or sharing one OAuth app, they'll end up sharing their quota, too, even if we roll out the change I mentioned earlier.