DC 5.9 YouTube Service
This page describes how to configure the YouTube Service to upload videos to YouTube and delete videos from YouTube. Two steps are required, namely Google configuration and Digizuite configuration. Be aware of the limitations and important knowledge. In particular, note the limit on the number of daily uploads from the quota system. A user must be an administrator or have the role “Youtube_Admin” to be able to do this. Be aware that a full configuration might take at least a few days due to a required compliance audit.
Google configuration
Project setup
Some preliminary configuration must be done with Google:
Part 1
Go to https://console.developers.google.com/, and ensure that you are logged in with the Google account that videos should be uploaded with. Thus, if you are setting this up for a customer, it should be the Google account they use for YouTube.
Part 2
If you don’t already have a project, create a new project. Ensure that the appropriate project is selected in the top menu.
Part 3
Enable “YouTube Data API v3” for the project.
Select “Library” in the left menu.
Search for “YouTube Data API v3”.
Select the search result and enable the API.
Part 4
Set up an OAuth Consent Screen.
In the left menu, select “OAuth Consent Screen”.
Give the application a name.
In “Authorized Domains” enter the “top domain” of the DAM Center installation.
For customer sites maintained by Digizuite, this will always be “digizuite.app“
For development sites, “digizuite.dev“
If you manage the site yourself, if you, e.g., have a site named “dam.mydomain.com“, “mydomain.com“ will be the URL to insert.
Save.
Part 5
Create credentials.
In the left menu, select “Credentials”.
Click “Create Credentials” in the top menu, and choose “OAuth Client ID” (see image below).
Choose “Web application”.
Give the web application a name.
In “Authorized redirect URIs” enter: “https://api-[GUID].digizuite.app/DigizuiteCore/YoutubeService/api/v1/YoutubeClients/OAuth2Callback”.
For example, if the DAM Center has been installed at “https://api-1cd509e4-ae20-47c9-a692-35bc6b7b3b58.digizuite.app”, the entry should be: “https://api-1cd509e4-ae20-47c9-a692-35bc6b7b3b58.digizuite.app/DigizuiteCore/YoutubeService/api/v1/YoutubeClients/OAuth2Callback”.
NOTE: It is important that the DAM Center installation is the same that was registered in Part 4, step 3.
Create the credentials.
You have now obtained a ClientId and a ClientSecret. If they aren’t immediately visible, they can be found by clicking the newly created entry in “OAuth 2.0 Client IDs” in the “Credentials” section. These will be needed later.
Project compliance audit
YouTube has three privacy categories for uploaded videos: “private”, “unlisted”, and “public” (see https://support.google.com/youtube/answer/157177?co=GENIE.Platform%3DDesktop&hl=en for more information).
All projects created after July 28, 2020 must undergo a compliance audit to be able to make uploaded videos “unlisted” or “public”. If this is not done, videos will be forced to be “private” when uploaded with the YouTube service. The compliance audit process can be initiated from https://support.google.com/youtube/contact/yt_api_form. Consider choosing the “Quota Extension Request” reason, to also increase the quota limit. See the “Important knowledge” section below for more information about this. It might be a good idea to actually reach the daily limit before applying for an increased quota. Thus, you can skip this step initially, and then return once you have validated that you are able to upload videos.
When filling in the form for the compliance audit, please feel free to be inspired by the following request example:
Your full legal name. Your own name.
Your organization's name. Digizuite ApS
Your organization's website. https://www.digizuite.com/
Your organization's address. Ryttergade 12, 1, 5000 Odense C, Denmark
Does your API Client commercialize YouTube Data? No.
Organization contact email address. Your email address.
Describe your organization's work as it relates to YouTube. Our DAM solution enables clients to upload videos to YouTube directly from our DAM software with a simple drag-and-drop functionality. Furthermore, clients are able to delete videos, which have been uploaded with our integration, directly from our software.
Google representative email address. Can be skipped.
Content Owner ID (if available). Can be skipped.
Please list all your API Client(s). The URL of the DAM Center.
Please list all the project numbers used for each of your API Client(s). This is VERY important. Go to https://console.developers.google.com/ and ensure that you are logged in with the correct user (top right corner) and that the correct project is chosen (top left corner). Then, in the top right corner, click the burger menu and select “Project settings”. Copy the project number into this entry in the form.
Is this a publicly or privately available API Client? Internal use only.
Where can we find each API Client(s)? The URL of the DAM Center.
If there is a log-in required to access the API client, please provide a demo account and instructions on how to access the API Client. Can be skipped.
Does your API Client commercialize YouTube Data? No.
Choose the option that best resembles your API Client's use case. YouTube video uploads.
Specify all YouTube API Services used by this API Client. Data API.
Select the primary audience for your API Client. Creators.
Approximately how many users use your API Client? Typically not that many.
Explain how your API Client is used by your users. Use the description from “Describe your organization's work as it relates to YouTube” above.
Does your API Client use multiple projects to access YouTube APIs? No.
Does this API Client create, access or use any metrics derived from YouTube data? No.
Does this API Client display data from, or provide features or services across, multiple platforms (ex: Facebook, Twitter, etc.)? No.
Do you create/provide any type of reports using YouTube API Data? No.
How long do you store YouTube API Data? <24 hours.
How often do you refresh YouTube API Data? Never.
Does this API Client allow users to authenticate with their Google credentials. No.
Screencast of API usage:
If the “Quota Extension Request” type was chosen in the top:
Which API Client are you requesting a quota increase for? The URL of the DAM Center.
What API project number are you requesting increased quota for? Use the project number found above.
Which YouTube API Service(s) are you requesting a quota increase for? Data API.
How much "Additional Quota" are you requesting? 500 000 quota points should do.
Justification for requesting additional quota? A larger daily quota is needed to be able to test our YouTube integration properly. With the current quota, we are not able to test it thoroughly, since we reach the daily limitation after a few uploads. This requires us to distribute the testing over multiple days.
Explain in detail how you use YouTube API Services today. Use the description from “Describe your organization's work as it relates to YouTube” above.
What functionality would your API client be lacking without more quota? Use the description from “Justification for requesting additional quota?” above.
What potential workarounds would you use to compensate for less quota? (ex. decreased feature set, estimations, smaller sampling). Use the description from “Justification for requesting additional quota?” above.
Expect the compliance audit process to take at least a few days. The remaining configuration steps can be followed while waiting for the compliance audit response.
In regards to how much one should apply for with the “Additional Quota“, you can try to find out what works for you, by using the following site: https://developers.google.com/youtube/v3/determine_quota_cost . Expect video upload to cost around 1600 quota points. 500 000 would thus enable one to upload a little over 300 videos a day.
Digizuite configuration
YouTube channel creation
A specific channel for videos should be created in the DAM Center. If you already have the ChannelId of the channel to use, you can skip this step.
Go to the DAM Center used in the configuration above.
In “Channels”, create a new folder by right-clicking the channels area.
Give the channel a name. E.g. “YouTube”.
The ChannelId will be needed in a moment. This can be found by right-clicking the created channel, and selecting “Edit folder rights” (see image below).
YouTube client creation
A YouTube client can now be created in MM5.
Firstly, make sure that you are logged in with a user that has the “Youtube_Admin” role. Administrators and Super Administrators have this role by default.
Then, click the Settings icon on the top-right corner and select General Settings.
Click YouTube in the Settings menu on the left side of the screen to access the YouTube configuration settings.
At the top center of the screen in green letters, click on Create a new YouTube client. The ClientID, ClientSecret, and ChannelId from the configuration above will be needed here. There are two parameters with default values:
Search Name. The name of the search used to fetch the title and description of an asset. By default, the “GetYoutubeInformation” search is used, which fetches the standard asset title and description. A custom search can be created and used, or the “GetYoutubeInformation” search can be customized. See below for more information.
Default Privacy Status. The default privacy status to use when uploading videos to YouTube. By default, this is set to “private”. Other possible values are “public” and “unlisted”. See https://support.google.com/youtube/answer/157177?co=GENIE.Platform%3DDesktop&hl=en for more information. Please be aware of the potentially required compliance audit, described above, when configuring this.
Once a YouTube client has been created, it needs to be authorized. This can be done via the UI in the settings section in MM5. After successful authorization, videos will automatically be uploaded to YouTube, when they are published to the created YouTube channel. A video, which has been published to the YouTube channel in the DAM Center and has been successfully uploaded, will be deleted from YouTube if it is either deleted from the DAM Center or unpublished.
An overview of the uploaded videos can be found by going to https://studio.youtube.com/. Ensure that a channel is created before trying to upload any videos with the YouTube service.
Videos can be uploaded to YouTube by simply dragging them to the YouTube channel in the DAM Center. Once they have been successfully uploaded, they can be deleted from YouTube again by unpublishing them from the YouTube channel in the DAM Center. A workflow can, of course, also be set up for this.
Search configuration
This step is optional.
As mentioned above, it is possible to configure the search used for retrieving information about a video when uploading it. By default, the “GetYoutubeInformation” search is used, and this search fetches the title and the description of the asset by default.
It is possible to also fetch the privacy status when uploading an asset. This will override the default privacy status on the assets where it is set. This can be done with the following steps:
In the DAM Center, find the “GetYoutubeInformation” search for the DAM Center in the ConfigManager.
Add an output field with id “privacyStatus”. The field could for instance be a ComboValue with the options “private”, “unlisted”, and “public”. Be aware that the privacy status from the search is ignored if it is invalid. The default privacy status is used as a fallback.
Save the search.
It is now possible to set the privacy status for each asset.
The “GetYoutubeInformation” search can be freely configured. However, the search must include at least two output fields with ids:
“title”
“description”
Limitations
The YouTube Service has the following limitations:
A video is not necessarily uploaded completely to YouTube when it appears as published to the YouTube channel in the DAM Center. Thus, the green check-mark in the DAM Center does not reflect the upload status. A consequence of this is that unpublishing a video from the YouTube channel in the DAM Center immediately after it has been published might not prevent the video from being uploaded.
If something goes wrong while a video is being uploaded, the upload will automatically be retried. However, this might result in some failed “ghost” videos appearing in YouTube. These failed videos will not be visible for others, and they can safely be manually deleted.
Republishing a video in the YouTube channel in the DAM Center has no effect on YouTube. If the video should be uploaded again, a workaround is to unpublish and then publish the video.
When a video has been uploaded to YouTube with the YouTube Service, changes to the video metadata in the DAM Center does not affect the uploaded video. Thus, changing e.g. the description of an uploaded video in the DAM Center does not change the description on YouTube. Similarly, changing the video description from YouTube Studio does not change the description in the DAM Center. If a metafield has been created for fetching the privacy status, changing the value of this metafield for an uploaded video does not change the actual privacy status on YouTube. Either change the value from YouTube Studio, or unpublish the video, change the metafield value, and then publish the video to the YouTube channel again.
Replacing a video that has been uploaded to YouTube with the YouTube Service does not replace the video on YouTube. A workaround is to unpublish the video from the YouTube channel, replace it, and then publish it to the YouTube channel again.
Important knowledge
At most 1 YouTube client should be created per ClientId from Google.
All non-recoverable errors are collected in the error queue “YoutubeService.error” in RabbitMQ.
Videos uploaded with the YouTube Service should also be deleted with the YouTube Service by unpublishing or deleting the video in the DAM Center. If a video has been deleted manually from YouTube, the video will still appear as published in the DAM Center.
Google has a “Quota” system that limits the number of calls to their APIs. For a new project, the default limit is 10,000 per day for the YouTube API, which amounts to approximately 6 video uploads per day. If the limit is reached when trying to upload a video, the upload will end up in the error queue in RabbitMQ, from where it can be retried when more quota is available. It is, of course, also always possible to retry an upload by unpublishing and publishing the video again when more quota is available. The quota usage can be monitored from https://console.developers.google.com/apis/api/youtube.googleapis.com/overview. It is possible to apply for an increased daily quota from https://support.google.com/youtube/contact/yt_api_form. See the “Project compliance audit” section on this page for more information.