Overview
Configuration is provided for establishing connections with the YouTube service. The provided configuration includes also definitions for working with YouTube Analytics service. The configuration is used in the REST Connection Manager.
Setup
Press icon to get more information about the connection parameters.
Obtain data
Use REST Source component to get data from service resource.
Insert data
Use REST Destination component to insert data into service resource.
Quick Start
In this task, we will show you step-by-step how to create a connection to YouTube REST API using COZYROC's REST Connection Manager.
Congratulations! You have now established a connection to your YouTube instance.
In this guide, we will show how to read data from the YouTube service resource using the COZYROC REST Source component.
In this guide, we will show how to write data to the YouTube service resource using the COZYROC REST Destination component.
In this guide, we will provide steps to upload a video to YouTube. For novice users, we recommend you first review "Push data to service" guide.
Step 1. You have to provide input for the following required columns:
- snippet.title - The video's title.
- snippet.description - The video's description.
- snippet.tags - A list of keyword tags associated with the video.
- snippet.categoryId - The YouTube video category associated with the video.
- status.privacyStatus - The video's privacy status. Valid values: private, public, unlisted
- content - the video file content. Use the standard "Import Column" transformation to load the file content into a data flow column. Here you can find one reference how to configure the "Import Column" transformation.
Configuration
Base URL address: https://www.googleapis.com/youtube/v3
.
- OAuth
-
The authentication uses an authorized token. The token will be refreshed with the following expression:
{{=Date.now() + (response.expires_in - 300) * 1000}}
.The authentication has the following user-defined parameters:
- client_id: Required. Identifier of application that is associated with the authentication token.
- client_secret: Required. Specify application client secret.
- redirect_uri: Required. Specify redirect_uri
- Scope:
The following request parameters will be automatically processed during the authentication process:
-
Authorization:
Bearer {{=token.Access}}
Documentation: https://developers.google.com/youtube/v3/guides/auth/server-side-web-apps.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/activities
.Documentation: https://developers.google.com/youtube/v3/docs/activities/list.
- [Create] action
-
Endpoint URL address:
/activities
.Documentation: https://developers.google.com/youtube/v3/docs/activities/insert.
- id
A key field. Template: ShortText.
- snippet
Field components:
-
Uses template:
DateTime
. - Contains the following components: publishedAt, channelId, title, description, thumbnails, channelTitle, type, groupId.
-
Uses template:
- contentDetails
Field components:
- Contains the following components: upload, like, favorite, comment, subscription, playlistItem, recommendation, bulletin, social, channelItem.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/captions
.The action has the following user-defined parameters:
- videoId: Required. Specify video identifier.
Documentation: https://developers.google.com/youtube/v3/docs/captions/list.
- [Create] action
-
Endpoint URL address:
/captions
.The following request parameters will be automatically processed:
-
file:
{{=item.content}}
Documentation: https://developers.google.com/youtube/v3/docs/captions/insert.
-
file:
- [Update] action
-
Endpoint URL address:
/captions
.The following request parameters will be automatically processed:
-
file:
{{=item.content}}
Documentation: https://developers.google.com/youtube/v3/docs/captions/update.
-
file:
- [Delete] action
-
Endpoint URL address:
/captions
.Documentation: https://developers.google.com/youtube/v3/docs/captions/delete.
- id
Template: ShortText.
- snippet
Field components:
-
Uses template:
ShortText
. - Contains the following components: videoId, lastUpdated, trackKind, language, name, audioTrackType, isCC, isLarge, isEasyReader, isDraft, isAutoSynced, status, failureReason.
-
Uses template:
- content
Data type: DT_IMAGE The value is gathered from
/captions/{{=item.id}}
address.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/channels
.Documentation: https://developers.google.com/youtube/v3/docs/channels/list.
- [Update] action
-
Endpoint URL address:
/channels
.The following request parameters will be automatically processed:
-
part:
{{=_.filter(parameters.fields, function(item) { return item.indexOf('.') == -1; }).join()}}
Documentation: https://developers.google.com/youtube/v3/docs/channels/update.
-
part:
- id
Template: ShortText.
- snippet
A read-only field. Field components:
-
Uses template:
ShortText
. - Contains the following components: title, description, customUrl, publishedAt, thumbnails, defaultLanguage, localized, country.
-
Uses template:
- contentDetails
A read-only field. Field components:
- Contains the following components: relatedPlaylists.
- statistics
A read-only field. Field components:
-
Uses template:
ShortText
. - Contains the following components: viewCount, commentCount, subscriberCount, hiddenSubscriberCount, videoCount.
-
Uses template:
- topicDetails
A read-only field. Field components:
-
Uses template:
LongText
. - Contains the following components: topicIds, topicCategories.
-
Uses template:
- status
A read-only field. Field components:
-
Uses template:
ShortText
. - Contains the following components: privacyStatus, isLinked, longUploadsStatus, madeForKids, selfDeclaredMadeForKids.
-
Uses template:
- brandingSettings
Field components:
- Contains the following components: channel, watch, image, hints.
- invideoPromotion
Field components:
- Contains the following components: defaultTiming, position, items, useSmartTiming.
- auditDetails
A read-only field. Field components:
- Contains the following components: overallGoodStanding, communityGuidelinesGoodStanding, copyrightStrikesGoodStanding, contentIdClaimsGoodStanding.
- contentOwnerDetails
A read-only field. Field components:
-
Uses template:
ShortText
. - Contains the following components: contentOwner, timeLinked.
-
Uses template:
- localizations
The gathered value is processed with
{{=_.map(value, function(v, k) { return _.extend({ code: k }, v); })}}
expression. Field components:- An array.
- Contains the following components: code, title, description.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/channelSections
.Documentation: https://developers.google.com/youtube/v3/docs/channelSections/list.
- [Create] action
-
Endpoint URL address:
/channelSections
.Documentation: https://developers.google.com/youtube/v3/docs/channelSections/insert.
- [Update] action
-
Endpoint URL address:
/channelSections
.Documentation: https://developers.google.com/youtube/v3/docs/channelSections/update.
- [Delete] action
-
Endpoint URL address:
/channelSections
.Documentation: https://developers.google.com/youtube/v3/docs/channelSections/delete.
- id
Template: ShortText.
- snippet
Field components:
-
Uses template:
ShortText
. - Contains the following components: type, style, channelId, title, position, defaultLanguage, localized.
-
Uses template:
- contentDetails
Field components:
-
Uses template:
LongText
. - Contains the following components: playlists, channels.
-
Uses template:
- localizations
The gathered value is processed with
{{=_.map(value, function(v, k) { return _.extend({ code: k }, v); })}}
expression. Field components:- An array.
- Contains the following components: code, title.
- targeting
Field components:
-
Uses template:
LongText
. - Contains the following components: languages, regions, countries.
-
Uses template:
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/comments
.Documentation: https://developers.google.com/youtube/v3/docs/comments/list.
- [Create] action
-
Endpoint URL address:
/comments
.Documentation: https://developers.google.com/youtube/v3/docs/comments/insert.
- [Update] action
-
Endpoint URL address:
/comments
.Documentation: https://developers.google.com/youtube/v3/docs/comments/update.
- [Delete] action
-
Endpoint URL address:
/comments
.Documentation: https://developers.google.com/youtube/v3/docs/comments/delete.
The resource includes the fields from the Comment template.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/commentThreads
.Documentation: https://developers.google.com/youtube/v3/docs/commentThreads/list.
- [Create] action
-
Endpoint URL address:
/commentThreads
.Documentation: https://developers.google.com/youtube/v3/docs/commentThreads/insert.
- [Update] action
-
Endpoint URL address:
/commentThreads
.Documentation: https://developers.google.com/youtube/v3/docs/commentThreads/update.
- id
Template: ShortText.
- snippet
Field components:
-
Uses template:
ShortText
. - Contains the following components: channelId, videoId, topLevelComment, canReply, totalReplyCount, isPublic.
-
Uses template:
- replies
A read-only field. Field components:
- Contains the following components: comments.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/guideCategories
.Documentation: https://developers.google.com/youtube/v3/docs/guideCategories/list.
- id
Template: ShortText.
- snippet
Field components:
-
Uses template:
ShortText
. - Contains the following components: channelId, title.
-
Uses template:
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/i18nLanguages
.Documentation: https://developers.google.com/youtube/v3/docs/i18nLanguages/list.
- id
Template: ShortText.
- snippet
Field components:
-
Uses template:
ShortText
. - Contains the following components: hl, name.
-
Uses template:
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/i18nRegions
.Documentation: https://developers.google.com/youtube/v3/docs/i18nRegions/list.
- id
Template: ShortText.
- snippet
Field components:
-
Uses template:
ShortText
. - Contains the following components: gl, name.
-
Uses template:
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/playlistItems
.Documentation: https://developers.google.com/youtube/v3/docs/playlistItems/list.
- [Create] action
-
Endpoint URL address:
/playlistItems
.Documentation: https://developers.google.com/youtube/v3/docs/playlistItems/insert.
- [Update] action
-
Endpoint URL address:
/playlistItems
.Documentation: https://developers.google.com/youtube/v3/docs/playlistItems/update.
- [Delete] action
-
Endpoint URL address:
/playlistItems
.Documentation: https://developers.google.com/youtube/v3/docs/playlistItems/delete.
- id
Template: ShortText.
- snippet
Field components:
-
Uses template:
DateTime
. - Contains the following components: publishedAt, channelId, title, description, thumbnails, channelTitle, playlistId, position, resourceId.
-
Uses template:
- contentDetails
Field components:
-
Uses template:
ShortText
. - Contains the following components: videoId, startAt, endAt, note, videoPublishedAt.
-
Uses template:
- status
A read-only field. Field components:
-
Uses template:
ShortText
. - Contains the following components: privacyStatus.
-
Uses template:
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/playlists
.Documentation: https://developers.google.com/youtube/v3/docs/playlists/list.
- [Create] action
-
Endpoint URL address:
/playlists
.Documentation: https://developers.google.com/youtube/v3/docs/playlists/insert.
- [Update] action
-
Endpoint URL address:
/playlists
.Documentation: https://developers.google.com/youtube/v3/docs/playlists/update.
- [Delete] action
-
Endpoint URL address:
/playlists
.Documentation: https://developers.google.com/youtube/v3/docs/playlists/delete.
- id
Template: ShortText.
- snippet
Field components:
-
Uses template:
DateTime
. - Contains the following components: publishedAt, channelId, title, description, thumbnails, channelTitle, tags, defaultLanguage, localized.
-
Uses template:
- status
Field components:
-
Uses template:
ShortText
. - Contains the following components: privacyStatus.
-
Uses template:
- contentDetails
A read-only field. Field components:
- Contains the following components: itemCount.
- player
A read-only field. Field components:
-
Uses template:
ShortText
. - Contains the following components: embedHtml.
-
Uses template:
- localizations
The gathered value is processed with
{{=_.map(value, function(v, k) { return _.extend({ code: k }, v); })}}
expression. Field components:- An array.
- Contains the following components: code, title, description.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/search
.Documentation: https://developers.google.com/youtube/v3/docs/search/list.
- id
Field components:
-
Uses template:
ShortText
. - Contains the following components: kind, videoId, channelId, playlistId.
-
Uses template:
- snippet
Field components:
-
Uses template:
DateTime
. - Contains the following components: publishedAt, channelId, title, description, thumbnails.
-
Uses template:
- channelTitle
Template: ShortText.
- liveBroadcastContent
Template: ShortText.
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/subscriptions
.Documentation: https://developers.google.com/youtube/v3/docs/subscriptions/list.
- [Create] action
-
Endpoint URL address:
/subscriptions
.Documentation: https://developers.google.com/youtube/v3/docs/subscriptions/insert.
- [Delete] action
-
Endpoint URL address:
/subscriptions
.Documentation: https://developers.google.com/youtube/v3/docs/subscriptions/delete.
- id
Template: ShortText.
- snippet
Field components:
-
Uses template:
DateTime
. - Contains the following components: publishedAt, channelTitle, title, description, resourceId, channelId, thumbnails.
-
Uses template:
- contentDetails
A read-only field. Field components:
-
Uses template:
ShortText
. - Contains the following components: totalItemCount, newItemCount, activityType.
-
Uses template:
- subscriberSnippet
A read-only field. Field components:
-
Uses template:
ShortText
. - Contains the following components: title, description, channelId, thumbnails.
-
Uses template:
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/videoAbuseReportReasons
.Documentation: https://developers.google.com/youtube/v3/docs/videoAbuseReportReasons/list.
- id
Template: ShortText.
- snippet
Field components:
-
Uses template:
ShortText
. - Contains the following components: label, secondaryReasons.
-
Uses template:
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/videoCategories
.Documentation: https://developers.google.com/youtube/v3/docs/videoCategories/list.
- id
Template: ShortText.
- snippet
Field components:
-
Uses template:
ShortText
. - Contains the following components: channelId, title, assignable.
-
Uses template:
Based on resource template Base.
- [Read] action
-
Endpoint URL address:
/videos
.Documentation: https://developers.google.com/youtube/v3/docs/videos/list.
- [Create] action
-
Endpoint URL address:
.
The result is extracted from:{{=YouTube.uploadVideo(item)}}
.Documentation: https://developers.google.com/youtube/v3/docs/videos/insert.
- [Update] action
-
Endpoint URL address:
/videos
.Documentation: https://developers.google.com/youtube/v3/docs/videos/update.
- [Delete] action
-
Endpoint URL address:
/videos
.Documentation: https://developers.google.com/youtube/v3/docs/videos/delete.
- id
Template: ShortText.
- snippet
Field components:
-
Uses template:
DateTime
. - Contains the following components: publishedAt, channelId, title, description, thumbnails, channelTitle, tags, categoryId, liveBroadcastContent, defaultLanguage, localized, defaultAudioLanguage.
-
Uses template:
- contentDetails
A read-only field. Field components:
-
Uses template:
ShortText
. - Contains the following components: duration, dimension, definition, caption, licensedContent, regionRestriction, contentRating, projection, hasCustomThumbnail.
-
Uses template:
- status
Field components:
-
Uses template:
ShortText
. - Contains the following components: uploadStatus, failureReason, rejectionReason, privacyStatus, publishAt, license, embeddable, publicStatsViewable, madeForKids, selfDeclaredMadeForKids.
-
Uses template:
- statistics
A read-only field. Field components:
-
Uses template:
ShortText
. - Contains the following components: viewCount, likeCount, dislikeCount, favoriteCount, commentCount.
-
Uses template:
- player
Field components:
-
Uses template:
ShortText
. - Contains the following components: embedHtml, embedHeight, embedWidth.
-
Uses template:
- topicDetails
Field components:
-
Uses template:
LongText
. - Contains the following components: topicIds, relevantTopicIds, topicCategories.
-
Uses template:
- recordingDetails
Field components:
-
Uses template:
ShortText
. - Contains the following components: recordingDate.
-
Uses template:
- fileDetails
A read-only field. Field components:
-
Uses template:
ShortText
. - Contains the following components: fileName, fileSize, fileType, container, videoStreams, audioStreams, durationMs, bitrateBps, creationTime.
-
Uses template:
- processingDetails
A read-only field. Field components:
-
Uses template:
ShortText
. - Contains the following components: processingStatus, processingProgress, processingFailureReason, fileDetailsAvailability, processingIssuesAvailability, tagSuggestionsAvailability, editorSuggestionsAvailability, thumbnailsAvailability.
-
Uses template:
- suggestions
A read-only field. Field components:
-
Uses template:
LongText
. - Contains the following components: processingErrors, processingWarnings, processingHints, tagSuggestions, editorSuggestions.
-
Uses template:
- liveStreamingDetails
A read-only field. Field components:
-
Uses template:
DateTime
. - Contains the following components: actualStartTime, actualEndTime, scheduledStartTime, scheduledEndTime, concurrentViewers, activeLiveChatId.
-
Uses template:
- localizations
The gathered value is processed with
{{=_.map(value, function(v, k) { return _.extend({ code: k }, v); })}}
expression. Field components:- An array.
- Contains the following components: code, title, description.
- content
Data type: DT_IMAGE
Based on resource template Analytics.
- [Read] action
-
Endpoint URL address:
/groups
.Documentation: https://developers.google.com/youtube/analytics/reference/groups/list.
- [Create] action
-
Endpoint URL address:
/groups
.Documentation: https://developers.google.com/youtube/analytics/reference/groups/insert.
- [Update] action
-
Endpoint URL address:
/groups
.Documentation: https://developers.google.com/youtube/analytics/reference/groups/update.
- [Delete] action
-
Endpoint URL address:
/groups
.Documentation: https://developers.google.com/youtube/analytics/reference/groups/delete.
- id
Template: ShortText.
- kind
Template: ShortText. A read-only field.
- etag
Template: ShortText. A read-only field.
- snippet
Field components:
-
Uses template:
DateTime
. - Contains the following components: publishedAt, title.
-
Uses template:
- contentDetails
Field components:
-
Uses template:
ShortText
. - Contains the following components: itemCount, itemType.
-
Uses template:
Based on resource template Analytics.
- [Read] action
-
Endpoint URL address:
/groupItems
.Documentation: https://developers.google.com/youtube/analytics/reference/groupItems/list.
- [Create] action
-
Endpoint URL address:
/groupItems
.Documentation: https://developers.google.com/youtube/analytics/reference/groupItems/insert.
- [Delete] action
-
Endpoint URL address:
/groupItems
.Documentation: https://developers.google.com/youtube/analytics/reference/groupItems/delete.
- id
Template: ShortText.
- kind
Template: ShortText. A read-only field.
- etag
Template: ShortText. A read-only field.
- groupId
Template: ShortText.
- resource
Field components:
-
Uses template:
ShortText
. - Contains the following components: id, kind.
-
Uses template:
Based on resource template Report.
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- metrics:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- filters:
- metrics:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- filters:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- filters:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- filters:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- filters:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- filters:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- filters:
- metrics:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- filters:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- filters:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- filters:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- metrics:
- sort:
Based on resource template Report.
- [Read] action
-
The action has the following user-defined parameters:
- dimensions:
- filters:
- metrics:
- [Read] action
-
The result is extracted from:{{=response.items}}
.
The result is paginated.The following request parameters will be automatically processed:
-
pageToken:
{{=parameters.iterator}}
-
maxResults:
{{=parameters.batchSize}}
-
part:
{{=parameters.fields.join()}}
-
_includeUserParameters:
{{=parameters}}
-
pageToken:
- [Create] action
-
The action uses POST method.The following request parameters will be automatically processed:
-
application/json:
{{=item}}
-
part:
id
-
_includeUserParameters:
{{=parameters}}
-
application/json:
- [Update] action
-
The action uses PUT method.The following request parameters will be automatically processed:
-
application/json:
{{=item}}
-
part:
id
-
_includeUserParameters:
{{=parameters}}
-
application/json:
- [Delete] action
-
The action uses DELETE method.The following request parameters will be automatically processed:
-
id:
{{=item.id}}
-
id:
- kind
Template: ShortText. A read-only field.
- etag
Template: ShortText. A read-only field.
- [Read] action
-
The result is extracted from:{{=response.items}}
.
The result is paginated.The following request parameters will be automatically processed:
-
pageToken:
{{=parameters.iterator}}
-
maxResults:
{{=parameters.batchSize}}
-
_includeUserParameters:
{{=parameters}}
-
pageToken:
- [Create] action
-
The action uses POST method.The following request parameters will be automatically processed:
-
application/json:
{{=item}}
-
part:
id
-
_includeUserParameters:
{{=parameters}}
-
application/json:
- [Update] action
-
The action uses PUT method.The following request parameters will be automatically processed:
-
application/json:
{{=item}}
-
part:
id
-
_includeUserParameters:
{{=parameters}}
-
application/json:
- [Delete] action
-
The action uses DELETE method.The following request parameters will be automatically processed:
-
id:
{{=item.id}}
-
id:
Based on resource template Analytics.
- [Read] action
-
Endpoint URL address:
/reports
.
The result is extracted from:{{=YouTube.getReportData(response)}}
.The action has the following user-defined parameters:
- endDate: Required. Specify tThe end date.
- ids: Required. Specify channel identifier.
- metrics: Required. Specify a comma-separated list of YouTube Analytics metrics.
- startDate: Required. Specify the start date.
- dimensions: Specify a comma-separated list of YouTube Analytics dimensions.
- filters: Specify a list of filters.
- sort: Specify a comma-separated list of dimensions or metrics
- [External]
-
The external fields URL address:
/reports
. The external fields list is extracted from:{{=response.columnHeaders}}
.- {{=external.name}}
Data type: {{=YouTube.getDataType(external.dataType)}} ( length {{=250}} )
- ShortText
Data type: DT_WSTR ( length 250 )
- LongText
Data type: DT_WSTR ( length 1000 )
- DateTime
Data type: DT_DBTIMESTAMP
- Image
Field components:
-
Uses template:
ShortText
. - Contains the following components: url, width, height.
-
Uses template:
- Thumbnails
Field components:
-
Uses template:
Image
. - Contains the following components: default, medium, high, standard, maxres.
-
Uses template:
- Resource
Field components:
-
Uses template:
ShortText
. - Contains the following components: kind, videoId, channelId, playlistId.
-
Uses template:
- Comment
Field components:
-
Uses template:
ShortText
. - Contains the following components: id, snippet.
-
Uses template:
What's New
- New: Introduced parameters for specifying client id/secret during the authentication token generation.
- New: Introduced connection.
Related documentation
COZYROC SSIS+ Components Suite is free for testing in your development environment.
A licensed version can be deployed on-premises, on Azure-SSIS IR and on COZYROC Cloud.