10

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

wardz
  • 349
  • 2
  • 10

2 Answers2

13

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.

stvar
  • 6,551
  • 2
  • 13
  • 28
  • 2
    I went through the complex and lengthy process to get my app verified. It was finally verified but still my videos are being set to Private after uploading via the app. I've sent a reply to YouTube about this but am not holding my breath waiting for a reply. Anyone have an idea? – Faraz H Dec 21 '20 at 02:14
  • Are new uploads (those occurring upon verification) locked as private? The quote from Google staff above indicates that upon verification, one must re-upload previously locked as private videos. – stvar Dec 21 '20 at 08:19
  • This is new uploads. YouTube folks replied back and asked for a demo video that shows where/how this is occurring. – Faraz H Dec 22 '20 at 04:36
  • 2
    Did you ever solve this? I submitted the quota form and the response they sent me didn't tell me whether they approved it or denied it, and my videos are still getting locked for "spam, deceptive practices and scams". It seems nearly impossible to contact YT through any other means other than the quota form. – unex Mar 05 '21 at 15:10
  • 1
    Did you guys ever solve this ? I have the same issue of videos still being private even after going through the verification process and receiving a email telling me that the process was completed. – Matthieu Veron Oct 04 '21 at 15:51
10

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!