The YouTube Data API v3 is an API that provides access to YouTube data, such as videos, playlists, and channels.
Bring your own key. This API needs your own YouTube Data API v3 key - get one from the provider, add it once below, and the proxy injects it on every call. Your OmniStream plan covers the unified SDK, key storage, and proxy - the provider's own rate limits still apply to your key.
This is a community listing. If you own this API, you can request ownership.
npm install omnistream-sdkimport { OmniClient } from "omnistream-sdk";
const omni = new OmniClient({ token: process.env.OMNI_KEY! });
// One key reaches every API on the marketplace.
const data = await omni.call("youtube-data/youtube.abuseReports.insert");One install, one key - the same client calls every API on the marketplace.
V1 error format.
OAuth access token.
Data format for response.
JSONP
Selector specifying which fields to include in a partial response.
API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
OAuth 2.0 token for the current user.
Returns response with indentations and line breaks.
Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
Upload protocol for media (e.g. "raw", "multipart").
Legacy upload protocol for media (e.g. "media", "multipart").
The *part* parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response will include.
Inserts a new resource into this collection.
Retrieves a list of resources, possibly filtered.
Retrieves a list of resources, possibly filtered.
/**
* YouTubeDataAPIv3 - generated by OmniStream from YouTube Data API v3's OpenAPI spec.
* One typed method per endpoint. A single Omni key reaches the API.
*/
const DEFAULT_BASE = "https://grid.skinvaults.online/v1/proxy/youtube-data";
export class YouTubeDataAPIv3Error extends Error {
status: number;
code?: string;
constructor(status: number, code: string | undefined, message?: string) {
super(message || `YouTubeDataAPIv3 error ${status}`);
this.name = "YouTubeDataAPIv3Error";
this.status = status;
this.code = code;
}
}
export interface YouTubeDataAPIv3Options {
baseUrl?: string;
fetch?: typeof fetch;
timeoutMs?: number;
}
export class YouTubeDataAPIv3 {
/** @param token Your OmniStream key (one key for every API). */
constructor(private token: string, private opts: YouTubeDataAPIv3Options = {}) {
if (!token) throw new Error("YouTubeDataAPIv3: token is required");
}
rateLimit: { remainingMinute?: number; remainingDay?: number } | null = null;
private async _request(method: string, path: string, { params, body }: { params?: Record<string, unknown>; body?: unknown } = {}): Promise<any> {
const f = this.opts.fetch ?? globalThis.fetch;
const url = new URL((this.opts.baseUrl ?? DEFAULT_BASE).replace(/\/+$/, "") + path);
if (params) for (const [k, v] of Object.entries(params)) if (v != null) url.searchParams.set(k, String(v));
const headers: Record<string, string> = { "x-omni-key": this.token };
if (body !== undefined) headers["content-type"] = "application/json";
const res = await f(url, { method, headers, body: body !== undefined ? JSON.stringify(body) : undefined });
this.rateLimit = {
remainingMinute: Number(res.headers.get("x-ratelimit-remaining-minute")) || undefined,
remainingDay: Number(res.headers.get("x-ratelimit-remaining-day")) || undefined,
};
const data = await res.json().catch(() => ({}));
if (!res.ok) throw new YouTubeDataAPIv3Error(res.status, data?.error?.code, data?.error?.message);
return data.data ?? data;
}
/** Inserts a new resource into this collection. */
youtubeAbuseReportsInsert(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/abuseReports", { body, params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeActivitiesList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "channelId"?: string; "home"?: boolean; "maxResults"?: number; "mine"?: boolean; "pageToken"?: string; "publishedAfter"?: string; "publishedBefore"?: string; "regionCode"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/activities", { params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeCaptionsList(params: { "part": unknown[]; "videoId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "id"?: unknown[]; "onBehalfOf"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/captions", { params });
}
/** Inserts a new resource into this collection. */
youtubeCaptionsInsert(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOf"?: string; "onBehalfOfContentOwner"?: string; "sync"?: boolean }): Promise<any> {
return this._request("POST", "/youtube/v3/captions", { params });
}
/** Updates an existing resource. */
youtubeCaptionsUpdate(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOf"?: string; "onBehalfOfContentOwner"?: string; "sync"?: boolean }): Promise<any> {
return this._request("PUT", "/youtube/v3/captions", { params });
}
/** Deletes a resource. */
youtubeCaptionsDelete(params: { "id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOf"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("DELETE", "/youtube/v3/captions", { params });
}
/** Downloads a caption track. */
youtubeCaptionsDownload(params: { "id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOf"?: string; "onBehalfOfContentOwner"?: string; "tfmt"?: string; "tlang"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/captions/{id}", { params });
}
/** Inserts a new resource into this collection. */
youtubeChannelBannersInsert(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "channelId"?: string; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/channelBanners/insert", { params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeChannelSectionsList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "channelId"?: string; "hl"?: string; "id"?: unknown[]; "mine"?: boolean; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/channelSections", { params });
}
/** Inserts a new resource into this collection. */
youtubeChannelSectionsInsert(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/channelSections", { body, params });
}
/** Updates an existing resource. */
youtubeChannelSectionsUpdate(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("PUT", "/youtube/v3/channelSections", { body, params });
}
/** Deletes a resource. */
youtubeChannelSectionsDelete(params: { "id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("DELETE", "/youtube/v3/channelSections", { params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeChannelsList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "categoryId"?: string; "forUsername"?: string; "hl"?: string; "id"?: unknown[]; "managedByMe"?: boolean; "maxResults"?: number; "mine"?: boolean; "mySubscribers"?: boolean; "onBehalfOfContentOwner"?: string; "pageToken"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/channels", { params });
}
/** Updates an existing resource. */
youtubeChannelsUpdate(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("PUT", "/youtube/v3/channels", { body, params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeCommentThreadsList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "allThreadsRelatedToChannelId"?: string; "channelId"?: string; "id"?: unknown[]; "maxResults"?: number; "moderationStatus"?: string; "order"?: string; "pageToken"?: string; "searchTerms"?: string; "textFormat"?: string; "videoId"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/commentThreads", { params });
}
/** Inserts a new resource into this collection. */
youtubeCommentThreadsInsert(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/commentThreads", { body, params });
}
/** Updates an existing resource. */
youtubeYoutubeV3UpdateCommentThreads(body: unknown, params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "part"?: unknown[] }): Promise<any> {
return this._request("PUT", "/youtube/v3/commentThreads", { body, params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeCommentsList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "id"?: unknown[]; "maxResults"?: number; "pageToken"?: string; "parentId"?: string; "textFormat"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/comments", { params });
}
/** Inserts a new resource into this collection. */
youtubeCommentsInsert(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/comments", { body, params });
}
/** Updates an existing resource. */
youtubeCommentsUpdate(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("PUT", "/youtube/v3/comments", { body, params });
}
/** Deletes a resource. */
youtubeCommentsDelete(params: { "id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("DELETE", "/youtube/v3/comments", { params });
}
/** Expresses the caller's opinion that one or more comments should be flagged as spam. */
youtubeCommentsMarkAsSpam(params: { "id": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/comments/markAsSpam", { params });
}
/** Sets the moderation status of one or more comments. */
youtubeCommentsSetModerationStatus(params: { "id": unknown[]; "moderationStatus": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "banAuthor"?: boolean }): Promise<any> {
return this._request("POST", "/youtube/v3/comments/setModerationStatus", { params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeI18nLanguagesList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "hl"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/i18nLanguages", { params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeI18nRegionsList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "hl"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/i18nRegions", { params });
}
/** Retrieve the list of broadcasts associated with the given channel. */
youtubeLiveBroadcastsList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "broadcastStatus"?: string; "broadcastType"?: string; "id"?: unknown[]; "maxResults"?: number; "mine"?: boolean; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string; "pageToken"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/liveBroadcasts", { params });
}
/** Inserts a new stream for the authenticated user. */
youtubeLiveBroadcastsInsert(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/liveBroadcasts", { body, params });
}
/** Updates an existing broadcast for the authenticated user. */
youtubeLiveBroadcastsUpdate(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string }): Promise<any> {
return this._request("PUT", "/youtube/v3/liveBroadcasts", { body, params });
}
/** Delete a given broadcast. */
youtubeLiveBroadcastsDelete(params: { "id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string }): Promise<any> {
return this._request("DELETE", "/youtube/v3/liveBroadcasts", { params });
}
/** Bind a broadcast to a stream. */
youtubeLiveBroadcastsBind(params: { "id": string; "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string; "streamId"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/liveBroadcasts/bind", { params });
}
/** Insert cuepoints in a broadcast */
youtubeLiveBroadcastsInsertCuepoint(body: unknown, params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "id"?: string; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string; "part"?: unknown[] }): Promise<any> {
return this._request("POST", "/youtube/v3/liveBroadcasts/cuepoint", { body, params });
}
/** Transition a broadcast to a given status. */
youtubeLiveBroadcastsTransition(params: { "broadcastStatus": string; "id": string; "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/liveBroadcasts/transition", { params });
}
/** Inserts a new resource into this collection. */
youtubeLiveChatBansInsert(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/liveChat/bans", { body, params });
}
/** Deletes a chat ban. */
youtubeLiveChatBansDelete(params: { "id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("DELETE", "/youtube/v3/liveChat/bans", { params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeLiveChatMessagesList(params: { "liveChatId": string; "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "hl"?: string; "maxResults"?: number; "pageToken"?: string; "profileImageSize"?: number }): Promise<any> {
return this._request("GET", "/youtube/v3/liveChat/messages", { params });
}
/** Inserts a new resource into this collection. */
youtubeLiveChatMessagesInsert(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/liveChat/messages", { body, params });
}
/** Deletes a chat message. */
youtubeLiveChatMessagesDelete(params: { "id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("DELETE", "/youtube/v3/liveChat/messages", { params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeLiveChatModeratorsList(params: { "liveChatId": string; "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "maxResults"?: number; "pageToken"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/liveChat/moderators", { params });
}
/** Inserts a new resource into this collection. */
youtubeLiveChatModeratorsInsert(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/liveChat/moderators", { body, params });
}
/** Deletes a chat moderator. */
youtubeLiveChatModeratorsDelete(params: { "id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("DELETE", "/youtube/v3/liveChat/moderators", { params });
}
/** Retrieve the list of streams associated with the given channel. -- */
youtubeLiveStreamsList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "id"?: unknown[]; "maxResults"?: number; "mine"?: boolean; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string; "pageToken"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/liveStreams", { params });
}
/** Inserts a new stream for the authenticated user. */
youtubeLiveStreamsInsert(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/liveStreams", { body, params });
}
/** Updates an existing stream for the authenticated user. */
youtubeLiveStreamsUpdate(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string }): Promise<any> {
return this._request("PUT", "/youtube/v3/liveStreams", { body, params });
}
/** Deletes an existing stream for the authenticated user. */
youtubeLiveStreamsDelete(params: { "id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string }): Promise<any> {
return this._request("DELETE", "/youtube/v3/liveStreams", { params });
}
/** Retrieves a list of members that match the request criteria for a channel. */
youtubeMembersList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "filterByMemberChannelId"?: string; "hasAccessToLevel"?: string; "maxResults"?: number; "mode"?: string; "pageToken"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/members", { params });
}
/** Retrieves a list of all pricing levels offered by a creator to the fans. */
youtubeMembershipsLevelsList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/membershipsLevels", { params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubePlaylistItemsList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "id"?: unknown[]; "maxResults"?: number; "onBehalfOfContentOwner"?: string; "pageToken"?: string; "playlistId"?: string; "videoId"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/playlistItems", { params });
}
/** Inserts a new resource into this collection. */
youtubePlaylistItemsInsert(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/playlistItems", { body, params });
}
/** Updates an existing resource. */
youtubePlaylistItemsUpdate(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("PUT", "/youtube/v3/playlistItems", { body, params });
}
/** Deletes a resource. */
youtubePlaylistItemsDelete(params: { "id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("DELETE", "/youtube/v3/playlistItems", { params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubePlaylistsList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "channelId"?: string; "hl"?: string; "id"?: unknown[]; "maxResults"?: number; "mine"?: boolean; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string; "pageToken"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/playlists", { params });
}
/** Inserts a new resource into this collection. */
youtubePlaylistsInsert(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/playlists", { body, params });
}
/** Updates an existing resource. */
youtubePlaylistsUpdate(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("PUT", "/youtube/v3/playlists", { body, params });
}
/** Deletes a resource. */
youtubePlaylistsDelete(params: { "id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("DELETE", "/youtube/v3/playlists", { params });
}
/** Retrieves a list of search resources */
youtubeSearchList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "channelId"?: string; "channelType"?: string; "eventType"?: string; "forContentOwner"?: boolean; "forDeveloper"?: boolean; "forMine"?: boolean; "location"?: string; "locationRadius"?: string; "maxResults"?: number; "onBehalfOfContentOwner"?: string; "order"?: string; "pageToken"?: string; "publishedAfter"?: string; "publishedBefore"?: string; "q"?: string; "regionCode"?: string; "relatedToVideoId"?: string; "relevanceLanguage"?: string; "safeSearch"?: string; "topicId"?: string; "type"?: unknown[]; "videoCaption"?: string; "videoCategoryId"?: string; "videoDefinition"?: string; "videoDimension"?: string; "videoDuration"?: string; "videoEmbeddable"?: string; "videoLicense"?: string; "videoSyndicated"?: string; "videoType"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/search", { params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeSubscriptionsList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "channelId"?: string; "forChannelId"?: string; "id"?: unknown[]; "maxResults"?: number; "mine"?: boolean; "myRecentSubscribers"?: boolean; "mySubscribers"?: boolean; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string; "order"?: string; "pageToken"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/subscriptions", { params });
}
/** Inserts a new resource into this collection. */
youtubeSubscriptionsInsert(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/subscriptions", { body, params });
}
/** Deletes a resource. */
youtubeSubscriptionsDelete(params: { "id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("DELETE", "/youtube/v3/subscriptions", { params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeSuperChatEventsList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "hl"?: string; "maxResults"?: number; "pageToken"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/superChatEvents", { params });
}
/** POST method. */
youtubeTestsInsert(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "externalChannelId"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/tests", { body, params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeThirdPartyLinksList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "externalChannelId"?: string; "linkingToken"?: string; "type"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/thirdPartyLinks", { params });
}
/** Inserts a new resource into this collection. */
youtubeThirdPartyLinksInsert(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "externalChannelId"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/thirdPartyLinks", { body, params });
}
/** Updates an existing resource. */
youtubeThirdPartyLinksUpdate(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "externalChannelId"?: string }): Promise<any> {
return this._request("PUT", "/youtube/v3/thirdPartyLinks", { body, params });
}
/** Deletes a resource. */
youtubeThirdPartyLinksDelete(params: { "linkingToken": string; "type": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "externalChannelId"?: string; "part"?: unknown[] }): Promise<any> {
return this._request("DELETE", "/youtube/v3/thirdPartyLinks", { params });
}
/** As this is not an insert in a strict sense (it supports uploading/setting of a thumbnail for multiple videos, which doesn't result in creation of a single resource), I use a custom verb here. */
youtubeThumbnailsSet(params: { "videoId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/thumbnails/set", { params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeVideoAbuseReportReasonsList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "hl"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/videoAbuseReportReasons", { params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeVideoCategoriesList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "hl"?: string; "id"?: unknown[]; "regionCode"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/videoCategories", { params });
}
/** Retrieves a list of resources, possibly filtered. */
youtubeVideosList(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "chart"?: string; "hl"?: string; "id"?: unknown[]; "locale"?: string; "maxHeight"?: number; "maxResults"?: number; "maxWidth"?: number; "myRating"?: string; "onBehalfOfContentOwner"?: string; "pageToken"?: string; "regionCode"?: string; "videoCategoryId"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/videos", { params });
}
/** Inserts a new resource into this collection. */
youtubeVideosInsert(params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "autoLevels"?: boolean; "notifySubscribers"?: boolean; "onBehalfOfContentOwner"?: string; "onBehalfOfContentOwnerChannel"?: string; "stabilize"?: boolean }): Promise<any> {
return this._request("POST", "/youtube/v3/videos", { params });
}
/** Updates an existing resource. */
youtubeVideosUpdate(body: unknown, params: { "part": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("PUT", "/youtube/v3/videos", { body, params });
}
/** Deletes a resource. */
youtubeVideosDelete(params: { "id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("DELETE", "/youtube/v3/videos", { params });
}
/** Retrieves the ratings that the authorized user gave to a list of specified videos. */
youtubeVideosGetRating(params: { "id": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("GET", "/youtube/v3/videos/getRating", { params });
}
/** Adds a like or dislike rating to a video or removes a rating from a video. */
youtubeVideosRate(params: { "id": string; "rating": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/videos/rate", { params });
}
/** Report abuse for a video. */
youtubeVideosReportAbuse(body: unknown, params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/videos/reportAbuse", { body, params });
}
/** Allows upload of watermark image and setting it for a channel. */
youtubeWatermarksSet(params: { "channelId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/watermarks/set", { params });
}
/** Allows removal of channel watermark. */
youtubeWatermarksUnset(params: { "channelId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "onBehalfOfContentOwner"?: string }): Promise<any> {
return this._request("POST", "/youtube/v3/watermarks/unset", { params });
}
}
export default YouTubeDataAPIv3;
No reviews yet. Be the first to rate this API.
Yes. YouTube Data API v3 uses apiKey authentication, so you bring your own key from the provider. You store it once on OmniStream and the proxy injects it into every call, so your code only ever sends your Omni key.
The YouTube Data API v3 is an API that provides access to YouTube data, such as videos, playlists, and channels. It exposes 76 endpoints over POST, GET, PUT, DELETE, including POST /youtube/v3/abuseReports, GET /youtube/v3/activities, GET /youtube/v3/captions.
Install the OmniStream SDK for your language and call YouTube Data API v3 through it. The client is generated from this API's OpenAPI spec, so parameters and responses are fully typed, and the same client also calls every other API in the marketplace.
You can start on the free plan. OmniStream charges for the unified SDK, key storage and proxy rather than for YouTube Data API v3 itself, and YouTube Data API v3's own rate limits still apply to your provider key.
Giphy: Search, translate, trending, and random GIFs and stickers from the GIPHY library.
Inserts a new resource into this collection.
Updates an existing resource.
Deletes a resource.
Downloads a caption track.
Inserts a new resource into this collection.
Retrieves a list of resources, possibly filtered.
Inserts a new resource into this collection.
Updates an existing resource.
Deletes a resource.
Retrieves a list of resources, possibly filtered.
Updates an existing resource.
Retrieves a list of resources, possibly filtered.
Inserts a new resource into this collection.
Updates an existing resource.
Retrieves a list of resources, possibly filtered.
Inserts a new resource into this collection.
Updates an existing resource.
Deletes a resource.
Expresses the caller's opinion that one or more comments should be flagged as spam.
Sets the moderation status of one or more comments.
Retrieves a list of resources, possibly filtered.
Retrieves a list of resources, possibly filtered.
Retrieve the list of broadcasts associated with the given channel.
Inserts a new stream for the authenticated user.
Updates an existing broadcast for the authenticated user.
Delete a given broadcast.
Bind a broadcast to a stream.
Insert cuepoints in a broadcast
Transition a broadcast to a given status.
Inserts a new resource into this collection.
Deletes a chat ban.
Retrieves a list of resources, possibly filtered.
Inserts a new resource into this collection.
Deletes a chat message.
Retrieves a list of resources, possibly filtered.
Inserts a new resource into this collection.
Deletes a chat moderator.
Retrieve the list of streams associated with the given channel. --
Inserts a new stream for the authenticated user.
Updates an existing stream for the authenticated user.
Deletes an existing stream for the authenticated user.
Retrieves a list of members that match the request criteria for a channel.
Retrieves a list of all pricing levels offered by a creator to the fans.
Retrieves a list of resources, possibly filtered.
Inserts a new resource into this collection.
Updates an existing resource.
Deletes a resource.
Retrieves a list of resources, possibly filtered.
Inserts a new resource into this collection.
Updates an existing resource.
Deletes a resource.
Retrieves a list of search resources
Retrieves a list of resources, possibly filtered.
Inserts a new resource into this collection.
Deletes a resource.
Retrieves a list of resources, possibly filtered.
POST method.
Retrieves a list of resources, possibly filtered.
Inserts a new resource into this collection.
Updates an existing resource.
Deletes a resource.
As this is not an insert in a strict sense (it supports uploading/setting of a thumbnail for multiple videos, which doesn't result in creation of a single resource), I use a custom verb here.
Retrieves a list of resources, possibly filtered.
Retrieves a list of resources, possibly filtered.
Retrieves a list of resources, possibly filtered.
Inserts a new resource into this collection.
Updates an existing resource.
Deletes a resource.
Retrieves the ratings that the authorized user gave to a list of specified videos.
Adds a like or dislike rating to a video or removes a rating from a video.
Report abuse for a video.
Allows upload of watermark image and setting it for a channel.
Allows removal of channel watermark.