I am using the OAuth Functionality in a local Console Program to request the Videos for my Youtube Channel and upload Videos to Youtube.
For the Example which Google gives OAuth is used to authenticate to be able to retrieve the wanted data. But the Videos I am uploading keep getting put to private because my API Service is not verified.
Now I want to verify my API Service but I dont have a website for it so I can't provide any links for data security information or the main page of it. I mean it is a desktop app which only I am using and which is not meant to be publicly available.
How can I fulfill the verification process without any option to provide this informations?
private videos
If you check the top of the page for Videos: insert you will find that your videos are being uploaded private because your app has not been though a security audit.
app verification
In order to apply for app verification there are a number of urls that you need to supply
You will need to register a domain and claim it in web masters and then you will be able to add them.
If you want to be able to upload public videos via the YouTube Data api your app needs to be verified. In order to verify it you need to be able to show the TOS, privacy policy and the application home page. There is no way around this even if its a desktop app. Even if its single user you still need to do this.
I have a video which shows you what you need to know to verify your app.
What you need to know about Google verification in 2021.
Related
I have added a non-renewable subscription for one of my projects. We also started implementing the Google play developer API to get the subscription latest status from the Play Store. For that we have done the below steps as per this blog:
Linked the developer account to a new Google Cloud Project.
Enabled the Google Play Developer API for the Google Cloud Project.
Created a service account and created a key for the service account.
I have below clarifications related to this implementation:
I tried to Grant Access for the following permissions: But the corresponding checkmark is not clickable.
View financial data, orders, and cancellation survey responses
Manage orders and subscriptions
The 3rd step as per the blog is to Authorize an API key, but I didn't get a clear idea of that.
We are going to implement this API on the back end side as a corn job, do we need to generate a JWT token for accessing this API? Is this possible to call without a Token? I found 2 types of implementations from this blog, which one is easy and secure?
"Your application can complete these tasks either by using the Google APIs client library for your language or by directly interacting with the OAuth 2.0 system using HTTP."
From where we get the get API path and other details. I found a similar get API from AppStore like this. Is the play store providing a similar kind of get API?
We need the latest purchase status API and for that what parameters do we need to pass?
I have developed an app for a company that generates personalized videos and needs to publish them to Youtube. Everything works fine except I can't publish videos to youtube do to the following rules loop:
If your app is not validated (by google for authentication) it can't upload videos to youtube.
If you app is not public it can't be validated.
How can I exit the loop and publish the videos?
Note: the app needs to publish the videos to an account that is a #gmail account.
Thanks
You may have miss understood something if you check the documentation for Video.insert at the top you will see the following
All videos uploaded via the videos.insert endpoint from unverified API projects created after 28 July 2020 will be restricted to private viewing mode. To lift this restriction, each API project must undergo an audit to verify compliance with the Terms of Service. Please see the API Revision History for more details.
So you can upload videos to YouTube without your app being verified. They will just be uploaded as private.
After consulting with my contact at google. They cleared something up for us.
There is apparently a difference between OAuth verification and the YouTube compliance audit. I assumed they were the same thing.
OAuth verification (requested through Google Cloud Console) This verifies your Oauth2 consent screen.
Compliance Audit (requested through YouTube API form) this will give you the ability to post public videos.
So the team is correct you don't need to Oauth2 verify your app as it is used for internal project. You do however need to go though the YouTube compliance audit which you need to do even if its an internal app.
I've just made an "app" that uploads videos in a given folder, the program works, however whenever I upload a video through my program, it makes the video private (locked). I then get a mail saying that my program has not yet been approved. I have tried setting status.privacyStatus to both unlisted and public, without succes.
Any idea on how to get my application approved so I can upload public videos?
I suspect it might have to do with Oauth, however I am not sure where I went wrong
According to Google support's article Videos locked as private, the issue that you've described happens by design:
For videos that have been locked as private due to upload via an unverified API service, you will not be able to appeal. You’ll need to re-upload the video via a verified API service or via the YouTube app/site. The unverified API service can also apply for an API audit.
To ensure your video isn’t locked private again, don’t post content that:
[...]
Has been uploaded by an unverified third party API service.
As unfortunate as it is, until your app gets approved by Google, if needing to make video content publicly available, you have no other option than to upload that content manually by means of YouTube's Web UI (or use a tool that accesses that UI programmatically; but, as far as I know, this kind of activity is forbidden by the TOS docs).
The official document of the Videos.insert API endpoint specifies the very same requirement as above:
All videos uploaded via the videos.insert endpoint from unverified API projects created after 28 July 2020 will be restricted to private viewing mode. To lift this restriction, each API project must undergo an audit to verify compliance with the Terms of Service. Please see the API Revision History for more details.
The entry of API Revision History related to this issue reads as follows:
All videos uploaded via the videos.insert endpoint from unverified API projects created after 28 July 2020 will be restricted to private viewing mode. To lift this restriction, each project must undergo an audit to verify compliance with the Terms of Service.
Creators who use an unverified API client to upload video will receive an email explaining that their video is locked as private, and that they can avoid the restriction by using an official or audited client.
API projects created prior to 28 July 2020 are not currently affected by this change. However, we strongly recommend that all developers complete a compliance audit for their projects to ensure continued access to the YouTube API Services.
If your app is inteded for private usage, they won't approve it.
The only solution is not to use their API, but luckily there are some good modules to upload without API.
Here's one I made (node.js): https://www.npmjs.com/package/node-apiless-youtube-upload
import YoutubeUploader from 'node-apiless-youtube-upload'
const youtubeUploader = new YoutubeUploader()
youtubeUploader.promptLoginAndGetCookies().then(() => {
youtubeUploader.uploadVideo({
videoPath: 'C:/PATH/TO/VIDEO.mp4',
title: 'TITLE',
description: 'DESCRIPTION',
thumbnailPath: 'C:/PATH/TO/THUMBNAIL.mp4',
visibility: 'public'
})
})
Also there's one for python if you search for it (it's selenium based).
Good luck!
I've just made an "app" that uploads videos in a given folder, the program works, however whenever I upload a video through my program, it makes the video private (locked). I then get a mail saying that my program has not yet been approved. I have tried setting status.privacyStatus to both unlisted and public, without succes.
Any idea on how to get my application approved so I can upload public videos?
I suspect it might have to do with Oauth, however I am not sure where I went wrong
According to Google support's article Videos locked as private, the issue that you've described happens by design:
For videos that have been locked as private due to upload via an unverified API service, you will not be able to appeal. You’ll need to re-upload the video via a verified API service or via the YouTube app/site. The unverified API service can also apply for an API audit.
To ensure your video isn’t locked private again, don’t post content that:
[...]
Has been uploaded by an unverified third party API service.
As unfortunate as it is, until your app gets approved by Google, if needing to make video content publicly available, you have no other option than to upload that content manually by means of YouTube's Web UI (or use a tool that accesses that UI programmatically; but, as far as I know, this kind of activity is forbidden by the TOS docs).
The official document of the Videos.insert API endpoint specifies the very same requirement as above:
All videos uploaded via the videos.insert endpoint from unverified API projects created after 28 July 2020 will be restricted to private viewing mode. To lift this restriction, each API project must undergo an audit to verify compliance with the Terms of Service. Please see the API Revision History for more details.
The entry of API Revision History related to this issue reads as follows:
All videos uploaded via the videos.insert endpoint from unverified API projects created after 28 July 2020 will be restricted to private viewing mode. To lift this restriction, each project must undergo an audit to verify compliance with the Terms of Service.
Creators who use an unverified API client to upload video will receive an email explaining that their video is locked as private, and that they can avoid the restriction by using an official or audited client.
API projects created prior to 28 July 2020 are not currently affected by this change. However, we strongly recommend that all developers complete a compliance audit for their projects to ensure continued access to the YouTube API Services.
If your app is inteded for private usage, they won't approve it.
The only solution is not to use their API, but luckily there are some good modules to upload without API.
Here's one I made (node.js): https://www.npmjs.com/package/node-apiless-youtube-upload
import YoutubeUploader from 'node-apiless-youtube-upload'
const youtubeUploader = new YoutubeUploader()
youtubeUploader.promptLoginAndGetCookies().then(() => {
youtubeUploader.uploadVideo({
videoPath: 'C:/PATH/TO/VIDEO.mp4',
title: 'TITLE',
description: 'DESCRIPTION',
thumbnailPath: 'C:/PATH/TO/THUMBNAIL.mp4',
visibility: 'public'
})
})
Also there's one for python if you search for it (it's selenium based).
Good luck!
I'm trying to figure out wheter it is possible to have a private video on youtube that I could share with particular Google Accounts through API.
I would have a separate web application that would have a Google signup and after signup I would enable that Google Account to watch my private video.
Ideally I would also want to embed the video to the web application (but I think I can do this rather easily if I'm an owner of the video).
Ispossible to have a private video on YouTube that I could share with particular google accounts through API.
No you cant directly share a video with another user like you could a file on google drive.
You could show the video on your own site, but I am not sure its something I would want to try. The thing is being that its a private video you and you alone have access to see it. Your going to have to authenticate your application and get a refresh token back which will allow you to access the account and the videos on the account.
Then you will be able to use that refresh token to get an access token to show other people the video via your website. The problem you will have is if the refresh token stops working (rarely happens but can happen) you will have to authenticate it again before your solution will work.
Note: Service accounts don't work with YouTube API. So don't bother going down that road.
If you know the ID of a video, you can access it. You can share the ID,or an embedded link with someone.
The api only hides the info, not blocks it. So you would need to hold the info elsewhere for referencing.
So as long as you know the id's of the related video's, you can do what you want with them.
However, if you are wanting to monetise them on the side, I would recommend against it. Best to read the user agreement you have with YouTube.