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 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.
How do I make requests to the YouTube API (uploading a YouTube video) with a logged in Google User (using Passport's Google Auth)?
The Google API docs only show a way in which you have a pre-setup .json File with your personal credentials - I want users to log into my service and upload Videos onto YouTube via my NodeJS server, how would I handle this?
Thank you for any hints/tips/answers!
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!
How can I verify whether a user has "YouTube Premium" account via YouTube Data API. I've gone through all the APIs listed in the reference, but couldn't find any.
https://developers.google.com/youtube/v3/docs/
The Youtube api is channel based. This means that all the information is about a specific channel there is no information about the user themselves. That information is not currently available in the YouTube api. You should consider submitting a featuer request to google requesting that they add this information to the api.
You can find the YouTube issue forum here. feature request