innertuber-rn
Version:
A wrapper around YouTube's private API. Supports YouTube, YouTube Music, YouTube Kids and YouTube Studio (WIP).
1,206 lines (1,190 loc) • 1.02 MB
JavaScript
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
// node_modules/tslib/tslib.es6.mjs
function __rest(s, e) {
var t = {};
for (var p in s)
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
}
__name(__rest, "__rest");
function __setFunctionName(f, name, prefix) {
if (typeof name === "symbol")
name = name.description ? "[".concat(name.description, "]") : "";
return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
}
__name(__setFunctionName, "__setFunctionName");
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) {
return value instanceof P ? value : new P(function(resolve) {
resolve(value);
});
}
__name(adopt, "adopt");
return new (P || (P = Promise))(function(resolve, reject) {
function fulfilled(value) {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
}
__name(fulfilled, "fulfilled");
function rejected(value) {
try {
step(generator["throw"](value));
} catch (e) {
reject(e);
}
}
__name(rejected, "rejected");
function step(result) {
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
}
__name(step, "step");
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
__name(__awaiter, "__awaiter");
function __values(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m)
return m.call(o);
if (o && typeof o.length === "number")
return {
next: function() {
if (o && i >= o.length)
o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
__name(__values, "__values");
function __await(v) {
return this instanceof __await ? (this.v = v, this) : new __await(v);
}
__name(__await, "__await");
function __asyncGenerator(thisArg, _arguments, generator) {
if (!Symbol.asyncIterator)
throw new TypeError("Symbol.asyncIterator is not defined.");
var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
return this;
}, i;
function verb(n) {
if (g[n])
i[n] = function(v) {
return new Promise(function(a, b) {
q.push([n, v, a, b]) > 1 || resume(n, v);
});
};
}
__name(verb, "verb");
function resume(n, v) {
try {
step(g[n](v));
} catch (e) {
settle(q[0][3], e);
}
}
__name(resume, "resume");
function step(r) {
r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
}
__name(step, "step");
function fulfill(value) {
resume("next", value);
}
__name(fulfill, "fulfill");
function reject(value) {
resume("throw", value);
}
__name(reject, "reject");
function settle(f, v) {
if (f(v), q.shift(), q.length)
resume(q[0][0], q[0][1]);
}
__name(settle, "settle");
}
__name(__asyncGenerator, "__asyncGenerator");
function __asyncValues(o) {
if (!Symbol.asyncIterator)
throw new TypeError("Symbol.asyncIterator is not defined.");
var m = o[Symbol.asyncIterator], i;
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
return this;
}, i);
function verb(n) {
i[n] = o[n] && function(v) {
return new Promise(function(resolve, reject) {
v = o[n](v), settle(resolve, reject, v.done, v.value);
});
};
}
__name(verb, "verb");
function settle(resolve, reject, d, v) {
Promise.resolve(v).then(function(v2) {
resolve({ value: v2, done: d });
}, reject);
}
__name(settle, "settle");
}
__name(__asyncValues, "__asyncValues");
function __classPrivateFieldGet(receiver, state, kind, f) {
if (kind === "a" && !f)
throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}
__name(__classPrivateFieldGet, "__classPrivateFieldGet");
function __classPrivateFieldSet(receiver, state, value, kind, f) {
if (kind === "m")
throw new TypeError("Private method is not writable");
if (kind === "a" && !f)
throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
throw new TypeError("Cannot write private member to an object whose class did not declare it");
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
}
__name(__classPrivateFieldSet, "__classPrivateFieldSet");
// dist/src/utils/Utils.js
var Utils_exports = {};
__export(Utils_exports, {
ChannelError: () => ChannelError,
InnertubeError: () => InnertubeError,
MissingParamError: () => MissingParamError,
OAuthError: () => OAuthError,
ParsingError: () => ParsingError,
Platform: () => Platform,
PlayerError: () => PlayerError,
SessionError: () => SessionError,
base64ToU8: () => base64ToU8,
concatMemos: () => concatMemos,
debugFetch: () => debugFetch,
deepCompare: () => deepCompare,
escapeStringRegexp: () => escapeStringRegexp,
generateRandomString: () => generateRandomString,
generateSidAuth: () => generateSidAuth,
getRandomUserAgent: () => getRandomUserAgent,
getStringBetweenStrings: () => getStringBetweenStrings,
hasKeys: () => hasKeys,
isTextRun: () => isTextRun,
streamToIterable: () => streamToIterable,
throwIfMissing: () => throwIfMissing,
timeToSeconds: () => timeToSeconds,
u8ToBase64: () => u8ToBase64
});
// dist/src/parser/helpers.js
var helpers_exports = {};
__export(helpers_exports, {
Maybe: () => Maybe,
Memo: () => Memo,
SuperParsedResult: () => SuperParsedResult,
YTNode: () => YTNode,
observe: () => observe
});
// dist/src/utils/Log.js
var _a;
var Log = class {
static doLog(level, tag, args) {
if (!this.log_map_[level] || !this.log_level_.includes(level))
return;
const tags = [`[${this.YTJS_TAG}]`];
if (tag)
tags.push(`[${tag}]`);
this.log_map_[level](`${tags.join("")}:`, ...args || []);
}
static setLevel(...args) {
this.log_level_ = args;
}
};
__name(Log, "Log");
_a = Log;
Log.YTJS_TAG = "YOUTUBEJS";
Log.Level = {
NONE: 0,
ERROR: 1,
WARNING: 2,
INFO: 3,
DEBUG: 4
};
Log.log_map_ = {
[Log.Level.ERROR]: (...args) => console.error(...args),
[Log.Level.WARNING]: (...args) => console.warn(...args),
[Log.Level.INFO]: (...args) => console.info(...args),
[Log.Level.DEBUG]: (...args) => console.debug(...args)
};
Log.log_level_ = [Log.Level.WARNING];
Log.one_time_warnings_issued_ = /* @__PURE__ */ new Set();
Log.warnOnce = (id, ...args) => {
if (_a.one_time_warnings_issued_.has(id))
return;
_a.doLog(Log.Level.WARNING, id, args);
_a.one_time_warnings_issued_.add(id);
};
Log.warn = (tag, ...args) => _a.doLog(Log.Level.WARNING, tag, args);
Log.error = (tag, ...args) => _a.doLog(Log.Level.ERROR, tag, args);
Log.info = (tag, ...args) => _a.doLog(Log.Level.INFO, tag, args);
Log.debug = (tag, ...args) => _a.doLog(Log.Level.DEBUG, tag, args);
var Log_default = Log;
// dist/src/parser/helpers.js
var _YTNode_instances;
var _YTNode_is;
var _Maybe_instances;
var _Maybe_TAG;
var _Maybe_value;
var _Maybe_checkPrimative;
var _Maybe_assertPrimative;
var _SuperParsedResult_result;
var isObserved = Symbol("ObservedArray.isObserved");
var YTNode = class {
constructor() {
_YTNode_instances.add(this);
this.type = this.constructor.type;
}
is(...types2) {
return types2.some((type) => __classPrivateFieldGet(this, _YTNode_instances, "m", _YTNode_is).call(this, type));
}
as(...types2) {
if (!this.is(...types2)) {
throw new ParsingError(`Cannot cast ${this.type} to one of ${types2.map((t) => t.type).join(", ")}`);
}
return this;
}
hasKey(key) {
return Reflect.has(this, key);
}
key(key) {
if (!this.hasKey(key)) {
throw new ParsingError(`Missing key ${key}`);
}
return new Maybe(this[key]);
}
};
__name(YTNode, "YTNode");
_YTNode_instances = /* @__PURE__ */ new WeakSet(), _YTNode_is = /* @__PURE__ */ __name(function _YTNode_is2(type) {
return this.type === type.type;
}, "_YTNode_is");
YTNode.type = "YTNode";
var Maybe = class {
constructor(value) {
_Maybe_instances.add(this);
_Maybe_TAG.set(this, "Maybe");
_Maybe_value.set(this, void 0);
__classPrivateFieldSet(this, _Maybe_value, value, "f");
}
get typeof() {
return typeof __classPrivateFieldGet(this, _Maybe_value, "f");
}
string() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_assertPrimative).call(this, "string");
}
isString() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_checkPrimative).call(this, "string");
}
number() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_assertPrimative).call(this, "number");
}
isNumber() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_checkPrimative).call(this, "number");
}
bigint() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_assertPrimative).call(this, "bigint");
}
isBigint() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_checkPrimative).call(this, "bigint");
}
boolean() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_assertPrimative).call(this, "boolean");
}
isBoolean() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_checkPrimative).call(this, "boolean");
}
symbol() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_assertPrimative).call(this, "symbol");
}
isSymbol() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_checkPrimative).call(this, "symbol");
}
undefined() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_assertPrimative).call(this, "undefined");
}
isUndefined() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_checkPrimative).call(this, "undefined");
}
null() {
if (__classPrivateFieldGet(this, _Maybe_value, "f") !== null)
throw new TypeError(`Expected null, got ${typeof __classPrivateFieldGet(this, _Maybe_value, "f")}`);
return __classPrivateFieldGet(this, _Maybe_value, "f");
}
isNull() {
return __classPrivateFieldGet(this, _Maybe_value, "f") === null;
}
object() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_assertPrimative).call(this, "object");
}
isObject() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_checkPrimative).call(this, "object");
}
function() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_assertPrimative).call(this, "function");
}
isFunction() {
return __classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_checkPrimative).call(this, "function");
}
array() {
if (!Array.isArray(__classPrivateFieldGet(this, _Maybe_value, "f"))) {
throw new TypeError(`Expected array, got ${typeof __classPrivateFieldGet(this, _Maybe_value, "f")}`);
}
return __classPrivateFieldGet(this, _Maybe_value, "f");
}
arrayOfMaybe() {
const arrayProps = [];
return new Proxy(this.array(), {
get(target, prop) {
if (Reflect.has(arrayProps, prop)) {
return Reflect.get(target, prop);
}
return new Maybe(Reflect.get(target, prop));
}
});
}
isArray() {
return Array.isArray(__classPrivateFieldGet(this, _Maybe_value, "f"));
}
node() {
if (!(__classPrivateFieldGet(this, _Maybe_value, "f") instanceof YTNode)) {
throw new TypeError(`Expected YTNode, got ${__classPrivateFieldGet(this, _Maybe_value, "f").constructor.name}`);
}
return __classPrivateFieldGet(this, _Maybe_value, "f");
}
isNode() {
return __classPrivateFieldGet(this, _Maybe_value, "f") instanceof YTNode;
}
nodeOfType(...types2) {
return this.node().as(...types2);
}
isNodeOfType(...types2) {
return this.isNode() && this.node().is(...types2);
}
observed() {
if (!this.isObserved()) {
throw new TypeError(`Expected ObservedArray, got ${typeof __classPrivateFieldGet(this, _Maybe_value, "f")}`);
}
return __classPrivateFieldGet(this, _Maybe_value, "f");
}
isObserved() {
var _a4;
return (_a4 = __classPrivateFieldGet(this, _Maybe_value, "f")) === null || _a4 === void 0 ? void 0 : _a4[isObserved];
}
parsed() {
if (!(__classPrivateFieldGet(this, _Maybe_value, "f") instanceof SuperParsedResult)) {
throw new TypeError(`Expected SuperParsedResult, got ${typeof __classPrivateFieldGet(this, _Maybe_value, "f")}`);
}
return __classPrivateFieldGet(this, _Maybe_value, "f");
}
isParsed() {
return __classPrivateFieldGet(this, _Maybe_value, "f") instanceof SuperParsedResult;
}
any() {
Log_default.warn(__classPrivateFieldGet(this, _Maybe_TAG, "f"), "This call is not meant to be used outside of debugging. Please use the specific type getter instead.");
return __classPrivateFieldGet(this, _Maybe_value, "f");
}
instanceof(type) {
if (!this.isInstanceof(type)) {
throw new TypeError(`Expected instance of ${type.name}, got ${__classPrivateFieldGet(this, _Maybe_value, "f").constructor.name}`);
}
return __classPrivateFieldGet(this, _Maybe_value, "f");
}
isInstanceof(type) {
return __classPrivateFieldGet(this, _Maybe_value, "f") instanceof type;
}
};
__name(Maybe, "Maybe");
_Maybe_TAG = /* @__PURE__ */ new WeakMap(), _Maybe_value = /* @__PURE__ */ new WeakMap(), _Maybe_instances = /* @__PURE__ */ new WeakSet(), _Maybe_checkPrimative = /* @__PURE__ */ __name(function _Maybe_checkPrimative2(type) {
if (typeof __classPrivateFieldGet(this, _Maybe_value, "f") !== type) {
return false;
}
return true;
}, "_Maybe_checkPrimative"), _Maybe_assertPrimative = /* @__PURE__ */ __name(function _Maybe_assertPrimative2(type) {
if (!__classPrivateFieldGet(this, _Maybe_instances, "m", _Maybe_checkPrimative).call(this, type)) {
throw new TypeError(`Expected ${type}, got ${this.typeof}`);
}
return __classPrivateFieldGet(this, _Maybe_value, "f");
}, "_Maybe_assertPrimative");
var SuperParsedResult = class {
constructor(result) {
_SuperParsedResult_result.set(this, void 0);
__classPrivateFieldSet(this, _SuperParsedResult_result, result, "f");
}
get is_null() {
return __classPrivateFieldGet(this, _SuperParsedResult_result, "f") === null;
}
get is_array() {
return !this.is_null && Array.isArray(__classPrivateFieldGet(this, _SuperParsedResult_result, "f"));
}
get is_node() {
return !this.is_array;
}
array() {
if (!this.is_array) {
throw new TypeError("Expected an array, got a node");
}
return __classPrivateFieldGet(this, _SuperParsedResult_result, "f");
}
item() {
if (!this.is_node) {
throw new TypeError("Expected a node, got an array");
}
return __classPrivateFieldGet(this, _SuperParsedResult_result, "f");
}
};
__name(SuperParsedResult, "SuperParsedResult");
_SuperParsedResult_result = /* @__PURE__ */ new WeakMap();
function observe(obj) {
return new Proxy(obj, {
get(target, prop) {
if (prop == "get") {
return (rule, del_item) => target.find((obj2, index) => {
const match = deepCompare(rule, obj2);
if (match && del_item) {
target.splice(index, 1);
}
return match;
});
}
if (prop == isObserved) {
return true;
}
if (prop == "getAll") {
return (rule, del_items) => target.filter((obj2, index) => {
const match = deepCompare(rule, obj2);
if (match && del_items) {
target.splice(index, 1);
}
return match;
});
}
if (prop == "matchCondition") {
return (condition) => target.find((obj2) => {
return condition(obj2);
});
}
if (prop == "filterType") {
return (...types2) => {
return observe(target.filter((node) => {
if (node.is(...types2))
return true;
return false;
}));
};
}
if (prop == "firstOfType") {
return (...types2) => {
return target.find((node) => {
if (node.is(...types2))
return true;
return false;
});
};
}
if (prop == "first") {
return () => target[0];
}
if (prop == "as") {
return (...types2) => {
return observe(target.map((node) => {
if (node.is(...types2))
return node;
throw new ParsingError(`Expected node of any type ${types2.map((type) => type.type).join(", ")}, got ${node.type}`);
}));
};
}
if (prop == "remove") {
return (index) => target.splice(index, 1);
}
return Reflect.get(target, prop);
}
});
}
__name(observe, "observe");
var Memo = class extends Map {
getType(...types2) {
types2 = types2.flat();
return observe(types2.flatMap((type) => this.get(type.type) || []));
}
};
__name(Memo, "Memo");
// dist/src/parser/misc.js
var misc_exports = {};
__export(misc_exports, {
Author: () => Author,
ChildElement: () => ChildElement_default,
EmojiRun: () => EmojiRun,
Format: () => Format_default,
Text: () => Text,
TextRun: () => TextRun,
Thumbnail: () => Thumbnail,
VideoDetails: () => VideoDetails
});
// dist/src/utils/Constants.js
var Constants_exports = {};
__export(Constants_exports, {
CLIENTS: () => CLIENTS,
INNERTUBE_HEADERS_BASE: () => INNERTUBE_HEADERS_BASE,
OAUTH: () => OAUTH,
STREAM_HEADERS: () => STREAM_HEADERS,
URLS: () => URLS
});
var URLS = Object.freeze({
YT_BASE: "https://www.youtube.com",
YT_MUSIC_BASE: "https://music.youtube.com",
YT_SUGGESTIONS: "https://suggestqueries.google.com/complete/",
YT_UPLOAD: "https://upload.youtube.com/",
API: Object.freeze({
BASE: "https://youtubei.googleapis.com",
PRODUCTION_1: "https://www.youtube.com/youtubei/",
PRODUCTION_2: "https://youtubei.googleapis.com/youtubei/",
STAGING: "https://green-youtubei.sandbox.googleapis.com/youtubei/",
RELEASE: "https://release-youtubei.sandbox.googleapis.com/youtubei/",
TEST: "https://test-youtubei.sandbox.googleapis.com/youtubei/",
CAMI: "http://cami-youtubei.sandbox.googleapis.com/youtubei/",
UYTFE: "https://uytfe.sandbox.google.com/youtubei/"
})
});
var OAUTH = Object.freeze({
SCOPE: "http://gdata.youtube.com https://www.googleapis.com/auth/youtube-paid-content",
GRANT_TYPE: "http://oauth.net/grant_type/device/1.0",
MODEL_NAME: "ytlr::",
HEADERS: Object.freeze({
"accept": "*/*",
"origin": "https://www.youtube.com",
"user-agent": "Mozilla/5.0 (ChromiumStylePlatform) Cobalt/Version",
"content-type": "application/json",
"referer": "https://www.youtube.com/tv",
"accept-language": "en-US"
}),
REGEX: Object.freeze({
AUTH_SCRIPT: /<script id="base-js" src="(.*?)" nonce=".*?"><\/script>/,
CLIENT_IDENTITY: /var .+?={clientId:"(?<client_id>.+?)",.+?:"(?<client_secret>.+?)".+?}/
})
});
var CLIENTS = Object.freeze({
iOS: {
NAME: "iOS",
VERSION: "18.06.35",
USER_AGENT: "com.google.ios.youtube/18.06.35 (iPhone; CPU iPhone OS 14_4 like Mac OS X; en_US)",
DEVICE_MODEL: "iPhone10,6"
},
WEB: {
NAME: "WEB",
VERSION: "2.20240111.09.00",
API_KEY: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8",
API_VERSION: "v1",
STATIC_VISITOR_ID: "6zpwvWUNAco"
},
WEB_KIDS: {
NAME: "WEB_KIDS",
VERSION: "2.20230111.00.00"
},
YTMUSIC: {
NAME: "WEB_REMIX",
VERSION: "1.20211213.00.00"
},
ANDROID: {
NAME: "ANDROID",
VERSION: "18.06.35",
SDK_VERSION: "29",
USER_AGENT: "com.google.android.youtube/18.06.35 (Linux; U; Android 10; US)"
},
YTSTUDIO_ANDROID: {
NAME: "ANDROID_CREATOR",
VERSION: "22.43.101"
},
YTMUSIC_ANDROID: {
NAME: "ANDROID_MUSIC",
VERSION: "5.34.51"
},
TV_EMBEDDED: {
NAME: "TVHTML5_SIMPLY_EMBEDDED_PLAYER",
VERSION: "2.0"
}
});
var STREAM_HEADERS = Object.freeze({
"accept": "*/*",
"origin": "https://www.youtube.com",
"referer": "https://www.youtube.com",
"DNT": "?1"
});
var INNERTUBE_HEADERS_BASE = Object.freeze({
"accept": "*/*",
"accept-encoding": "gzip, deflate",
"content-type": "application/json"
});
// dist/src/parser/parser.js
var parser_exports = {};
__export(parser_exports, {
addRuntimeParser: () => addRuntimeParser,
applyMutations: () => applyMutations,
getDynamicParsers: () => getDynamicParsers,
getParserByName: () => getParserByName,
hasParser: () => hasParser,
parse: () => parse,
parseActions: () => parseActions,
parseArray: () => parseArray,
parseC: () => parseC,
parseFormats: () => parseFormats,
parseItem: () => parseItem,
parseLC: () => parseLC,
parseRR: () => parseRR,
parseResponse: () => parseResponse,
sanitizeClassName: () => sanitizeClassName,
setParserErrorHandler: () => setParserErrorHandler,
shouldIgnore: () => shouldIgnore
});
// dist/src/parser/nodes.js
var nodes_exports = {};
__export(nodes_exports, {
AboutChannel: () => AboutChannel_default,
AboutChannelView: () => AboutChannelView_default,
AccountChannel: () => AccountChannel_default,
AccountItemSection: () => AccountItemSection_default,
AccountItemSectionHeader: () => AccountItemSectionHeader_default,
AccountSectionList: () => AccountSectionList_default,
AddBannerToLiveChatCommand: () => AddBannerToLiveChatCommand_default,
AddChatItemAction: () => AddChatItemAction_default,
AddLiveChatTickerItemAction: () => AddLiveChatTickerItemAction_default,
Alert: () => Alert_default,
AlertWithButton: () => AlertWithButton_default,
AnalyticsMainAppKeyMetrics: () => AnalyticsMainAppKeyMetrics_default,
AnalyticsRoot: () => AnalyticsRoot_default,
AnalyticsShortsCarouselCard: () => AnalyticsShortsCarouselCard_default,
AnalyticsVideo: () => AnalyticsVideo_default,
AnalyticsVodCarouselCard: () => AnalyticsVodCarouselCard_default,
AnchoredSection: () => AnchoredSection_default,
AppendContinuationItemsAction: () => AppendContinuationItemsAction_default,
AttributionView: () => AttributionView_default,
AudioOnlyPlayability: () => AudioOnlyPlayability_default,
AuthorCommentBadge: () => AuthorCommentBadge_default,
AutomixPreviewVideo: () => AutomixPreviewVideo_default,
AvatarView: () => AvatarView_default,
BackstageImage: () => BackstageImage_default,
BackstagePost: () => BackstagePost_default,
BackstagePostThread: () => BackstagePostThread_default,
BrowseFeedActions: () => BrowseFeedActions_default,
BrowserMediaSession: () => BrowserMediaSession_default,
Button: () => Button_default,
ButtonView: () => ButtonView_default,
C4TabbedHeader: () => C4TabbedHeader_default,
CallToActionButton: () => CallToActionButton_default,
Card: () => Card_default,
CardCollection: () => CardCollection_default,
CarouselHeader: () => CarouselHeader_default,
CarouselItem: () => CarouselItem_default,
CarouselLockup: () => CarouselLockup_default,
Channel: () => Channel_default,
ChannelAboutFullMetadata: () => ChannelAboutFullMetadata_default,
ChannelAgeGate: () => ChannelAgeGate_default,
ChannelExternalLinkView: () => ChannelExternalLinkView_default,
ChannelFeaturedContent: () => ChannelFeaturedContent_default,
ChannelHeaderLinks: () => ChannelHeaderLinks_default,
ChannelHeaderLinksView: () => ChannelHeaderLinksView_default,
ChannelMetadata: () => ChannelMetadata_default,
ChannelMobileHeader: () => ChannelMobileHeader_default,
ChannelOptions: () => ChannelOptions_default,
ChannelOwnerEmptyState: () => ChannelOwnerEmptyState_default,
ChannelSubMenu: () => ChannelSubMenu_default,
ChannelTagline: () => ChannelTagline_default,
ChannelThumbnailWithLink: () => ChannelThumbnailWithLink_default,
ChannelVideoPlayer: () => ChannelVideoPlayer_default,
Chapter: () => Chapter_default,
ChildVideo: () => ChildVideo_default,
ChipCloud: () => ChipCloud_default,
ChipCloudChip: () => ChipCloudChip_default,
ClipAdState: () => ClipAdState_default,
ClipCreation: () => ClipCreation_default,
ClipCreationScrubber: () => ClipCreationScrubber_default,
ClipCreationTextInput: () => ClipCreationTextInput_default,
ClipSection: () => ClipSection_default,
CollaboratorInfoCardContent: () => CollaboratorInfoCardContent_default,
CollageHeroImage: () => CollageHeroImage_default,
Command: () => Command_default,
Comment: () => Comment_default,
CommentActionButtons: () => CommentActionButtons_default,
CommentDialog: () => CommentDialog_default,
CommentReplies: () => CommentReplies_default,
CommentReplyDialog: () => CommentReplyDialog_default,
CommentSimplebox: () => CommentSimplebox_default,
CommentThread: () => CommentThread_default,
CommentsEntryPointHeader: () => CommentsEntryPointHeader_default,
CommentsEntryPointTeaser: () => CommentsEntryPointTeaser_default,
CommentsHeader: () => CommentsHeader_default,
CommentsSimplebox: () => CommentsSimplebox_default,
CompactChannel: () => CompactChannel_default,
CompactLink: () => CompactLink_default,
CompactMix: () => CompactMix_default,
CompactMovie: () => CompactMovie_default,
CompactPlaylist: () => CompactPlaylist_default,
CompactStation: () => CompactStation_default,
CompactVideo: () => CompactVideo_default,
ConfirmDialog: () => ConfirmDialog_default,
ContentMetadataView: () => ContentMetadataView_default,
ContentPreviewImageView: () => ContentPreviewImageView_default,
ContinuationItem: () => ContinuationItem_default,
ConversationBar: () => ConversationBar_default,
CopyLink: () => CopyLink_default,
CreatePlaylistDialog: () => CreatePlaylistDialog_default,
CreatorHeart: () => CreatorHeart_default,
CtaGoToCreatorStudio: () => CtaGoToCreatorStudio_default,
DataModelSection: () => DataModelSection_default,
DecoratedAvatarView: () => DecoratedAvatarView_default,
DecoratedPlayerBar: () => DecoratedPlayerBar_default,
DefaultPromoPanel: () => DefaultPromoPanel_default,
DescriptionPreviewView: () => DescriptionPreviewView_default,
DidYouMean: () => DidYouMean_default,
DimChatItemAction: () => DimChatItemAction_default,
DislikeButtonView: () => DislikeButtonView_default,
DownloadButton: () => DownloadButton_default,
Dropdown: () => Dropdown_default,
DropdownItem: () => DropdownItem_default,
DynamicTextView: () => DynamicTextView_default,
Element: () => Element_default,
EmergencyOnebox: () => EmergencyOnebox_default,
EmojiPicker: () => EmojiPicker_default,
EmojiPickerCategory: () => EmojiPickerCategory_default,
EmojiPickerCategoryButton: () => EmojiPickerCategoryButton_default,
EmojiPickerUpsellCategory: () => EmojiPickerUpsellCategory_default,
EndScreenPlaylist: () => EndScreenPlaylist_default,
EndScreenVideo: () => EndScreenVideo_default,
Endscreen: () => Endscreen_default,
EndscreenElement: () => EndscreenElement_default,
EngagementPanelSectionList: () => EngagementPanelSectionList_default,
EngagementPanelTitleHeader: () => EngagementPanelTitleHeader_default,
ExpandableMetadata: () => ExpandableMetadata_default,
ExpandableTab: () => ExpandableTab_default,
ExpandableVideoDescriptionBody: () => ExpandableVideoDescriptionBody_default,
ExpandedShelfContents: () => ExpandedShelfContents_default,
Factoid: () => Factoid_default,
FancyDismissibleDialog: () => FancyDismissibleDialog_default,
FeedFilterChipBar: () => FeedFilterChipBar_default,
FeedNudge: () => FeedNudge_default,
FeedTabbedHeader: () => FeedTabbedHeader_default,
FlexibleActionsView: () => FlexibleActionsView_default,
GameCard: () => GameCard_default,
GameDetails: () => GameDetails_default,
Grid: () => Grid_default,
GridChannel: () => GridChannel_default,
GridHeader: () => GridHeader_default,
GridMix: () => GridMix_default,
GridMovie: () => GridMovie_default,
GridPlaylist: () => GridPlaylist_default,
GridShow: () => GridShow_default,
GridVideo: () => GridVideo_default,
GuideCollapsibleEntry: () => GuideCollapsibleEntry_default,
GuideCollapsibleSectionEntry: () => GuideCollapsibleSectionEntry_default,
GuideDownloadsEntry: () => GuideDownloadsEntry_default,
GuideEntry: () => GuideEntry_default,
GuideSection: () => GuideSection_default,
GuideSubscriptionsSection: () => GuideSubscriptionsSection_default,
HashtagHeader: () => HashtagHeader_default,
HashtagTile: () => HashtagTile_default,
HeatMarker: () => HeatMarker_default,
Heatmap: () => Heatmap_default,
HeroPlaylistThumbnail: () => HeroPlaylistThumbnail_default,
HighlightsCarousel: () => HighlightsCarousel_default,
HistorySuggestion: () => HistorySuggestion_default,
HorizontalCardList: () => HorizontalCardList_default,
HorizontalList: () => HorizontalList_default,
HorizontalMovieList: () => HorizontalMovieList_default,
IconLink: () => IconLink_default,
ImageBannerView: () => ImageBannerView_default,
IncludingResultsFor: () => IncludingResultsFor_default,
InfoPanelContainer: () => InfoPanelContainer_default,
InfoPanelContent: () => InfoPanelContent_default,
InfoRow: () => InfoRow_default,
InteractiveTabbedHeader: () => InteractiveTabbedHeader_default,
ItemSection: () => ItemSection_default,
ItemSectionHeader: () => ItemSectionHeader_default,
ItemSectionTab: () => ItemSectionTab_default,
ItemSectionTabbedHeader: () => ItemSectionTabbedHeader_default,
KidsBlocklistPicker: () => KidsBlocklistPicker_default,
KidsBlocklistPickerItem: () => KidsBlocklistPickerItem_default,
KidsCategoriesHeader: () => KidsCategoriesHeader_default,
KidsCategoryTab: () => KidsCategoryTab_default,
KidsHomeScreen: () => KidsHomeScreen_default,
LikeButton: () => LikeButton_default,
LikeButtonView: () => LikeButtonView_default,
LiveChat: () => LiveChat_default,
LiveChatActionPanel: () => LiveChatActionPanel_default,
LiveChatAuthorBadge: () => LiveChatAuthorBadge_default,
LiveChatAutoModMessage: () => LiveChatAutoModMessage_default,
LiveChatBanner: () => LiveChatBanner_default,
LiveChatBannerHeader: () => LiveChatBannerHeader_default,
LiveChatBannerPoll: () => LiveChatBannerPoll_default,
LiveChatDialog: () => LiveChatDialog_default,
LiveChatHeader: () => LiveChatHeader_default,
LiveChatItemList: () => LiveChatItemList_default,
LiveChatMembershipItem: () => LiveChatMembershipItem_default,
LiveChatMessageInput: () => LiveChatMessageInput_default,
LiveChatPaidMessage: () => LiveChatPaidMessage_default,
LiveChatPaidSticker: () => LiveChatPaidSticker_default,
LiveChatParticipant: () => LiveChatParticipant_default,
LiveChatParticipantsList: () => LiveChatParticipantsList_default,
LiveChatPlaceholderItem: () => LiveChatPlaceholderItem_default,
LiveChatProductItem: () => LiveChatProductItem_default,
LiveChatRestrictedParticipation: () => LiveChatRestrictedParticipation_default,
LiveChatTextMessage: () => LiveChatTextMessage_default,
LiveChatTickerPaidMessageItem: () => LiveChatTickerPaidMessageItem_default,
LiveChatTickerPaidStickerItem: () => LiveChatTickerPaidStickerItem_default,
LiveChatTickerSponsorItem: () => LiveChatTickerSponsorItem_default,
LiveChatViewerEngagementMessage: () => LiveChatViewerEngagementMessage_default,
MacroMarkersInfoItem: () => MacroMarkersInfoItem_default,
MacroMarkersList: () => MacroMarkersList_default,
MacroMarkersListItem: () => MacroMarkersListItem_default,
MarkChatItemAsDeletedAction: () => MarkChatItemAsDeletedAction_default,
MarkChatItemsByAuthorAsDeletedAction: () => MarkChatItemsByAuthorAsDeletedAction_default,
Menu: () => Menu_default,
MenuNavigationItem: () => MenuNavigationItem_default,
MenuPopup: () => MenuPopup_default,
MenuServiceItem: () => MenuServiceItem_default,
MenuServiceItemDownload: () => MenuServiceItemDownload_default,
MerchandiseItem: () => MerchandiseItem_default,
MerchandiseShelf: () => MerchandiseShelf_default,
Message: () => Message_default,
MetadataBadge: () => MetadataBadge_default,
MetadataRow: () => MetadataRow_default,
MetadataRowContainer: () => MetadataRowContainer_default,
MetadataRowHeader: () => MetadataRowHeader_default,
MetadataScreen: () => MetadataScreen_default,
MicroformatData: () => MicroformatData_default,
Mix: () => Mix_default,
ModalWithTitleAndButton: () => ModalWithTitleAndButton_default,
Movie: () => Movie_default,
MovingThumbnail: () => MovingThumbnail_default,
MultiMarkersPlayerBar: () => MultiMarkersPlayerBar_default,
MultiPageMenu: () => MultiPageMenu_default,
MultiPageMenuNotificationSection: () => MultiPageMenuNotificationSection_default,
MusicCardShelf: () => MusicCardShelf_default,
MusicCardShelfHeaderBasic: () => MusicCardShelfHeaderBasic_default,
MusicCarouselShelf: () => MusicCarouselShelf_default,
MusicCarouselShelfBasicHeader: () => MusicCarouselShelfBasicHeader_default,
MusicDescriptionShelf: () => MusicDescriptionShelf_default,
MusicDetailHeader: () => MusicDetailHeader_default,
MusicDownloadStateBadge: () => MusicDownloadStateBadge_default,
MusicEditablePlaylistDetailHeader: () => MusicEditablePlaylistDetailHeader_default,
MusicElementHeader: () => MusicElementHeader_default,
MusicHeader: () => MusicHeader_default,
MusicImmersiveHeader: () => MusicImmersiveHeader_default,
MusicInlineBadge: () => MusicInlineBadge_default,
MusicItemThumbnailOverlay: () => MusicItemThumbnailOverlay_default,
MusicLargeCardItemCarousel: () => MusicLargeCardItemCarousel_default,
MusicMenuItemDivider: () => MusicMenuItemDivider_default,
MusicMultiRowListItem: () => MusicMultiRowListItem_default,
MusicMultiSelectMenu: () => MusicMultiSelectMenu_default,
MusicMultiSelectMenuItem: () => MusicMultiSelectMenuItem_default,
MusicNavigationButton: () => MusicNavigationButton_default,
MusicPlayButton: () => MusicPlayButton_default,
MusicPlaylistShelf: () => MusicPlaylistShelf_default,
MusicQueue: () => MusicQueue_default,
MusicResponsiveListItem: () => MusicResponsiveListItem_default,
MusicResponsiveListItemFixedColumn: () => MusicResponsiveListItemFixedColumn_default,
MusicResponsiveListItemFlexColumn: () => MusicResponsiveListItemFlexColumn_default,
MusicShelf: () => MusicShelf_default,
MusicSideAlignedItem: () => MusicSideAlignedItem_default,
MusicSortFilterButton: () => MusicSortFilterButton_default,
MusicTastebuilderShelf: () => MusicTastebuilderShelf_default,
MusicTastebuilderShelfThumbnail: () => MusicTastebuilderShelfThumbnail_default,
MusicThumbnail: () => MusicThumbnail_default,
MusicTwoRowItem: () => MusicTwoRowItem_default,
MusicVisualHeader: () => MusicVisualHeader_default,
NavigationEndpoint: () => NavigationEndpoint_default,
Notification: () => Notification_default,
OpenPopupAction: () => OpenPopupAction_default,
PageHeader: () => PageHeader_default,
PageHeaderView: () => PageHeaderView_default,
PageIntroduction: () => PageIntroduction_default,
PdgCommentChip: () => PdgCommentChip_default,
PivotButton: () => PivotButton_default,
PlayerAnnotationsExpanded: () => PlayerAnnotationsExpanded_default,
PlayerCaptionsTracklist: () => PlayerCaptionsTracklist_default,
PlayerControlsOverlay: () => PlayerControlsOverlay_default,
PlayerErrorMessage: () => PlayerErrorMessage_default,
PlayerLegacyDesktopYpcOffer: () => PlayerLegacyDesktopYpcOffer_default,
PlayerLegacyDesktopYpcTrailer: () => PlayerLegacyDesktopYpcTrailer_default,
PlayerLiveStoryboardSpec: () => PlayerLiveStoryboardSpec_default,
PlayerMicroformat: () => PlayerMicroformat_default,
PlayerOverflow: () => PlayerOverflow_default,
PlayerOverlay: () => PlayerOverlay_default,
PlayerOverlayAutoplay: () => PlayerOverlayAutoplay_default,
PlayerStoryboardSpec: () => PlayerStoryboardSpec_default,
Playlist: () => Playlist_default,
PlaylistCustomThumbnail: () => PlaylistCustomThumbnail_default,
PlaylistHeader: () => PlaylistHeader_default,
PlaylistInfoCardContent: () => PlaylistInfoCardContent_default,
PlaylistMetadata: () => PlaylistMetadata_default,
PlaylistPanel: () => PlaylistPanel_default,
PlaylistPanelVideo: () => PlaylistPanelVideo_default,
PlaylistPanelVideoWrapper: () => PlaylistPanelVideoWrapper_default,
PlaylistSidebar: () => PlaylistSidebar_default,
PlaylistSidebarPrimaryInfo: () => PlaylistSidebarPrimaryInfo_default,
PlaylistSidebarSecondaryInfo: () => PlaylistSidebarSecondaryInfo_default,
PlaylistVideo: () => PlaylistVideo_default,
PlaylistVideoList: () => PlaylistVideoList_default,
PlaylistVideoThumbnail: () => PlaylistVideoThumbnail_default,
Poll: () => Poll_default,
PollHeader: () => PollHeader_default,
Post: () => Post_default,
PostMultiImage: () => PostMultiImage_default,
ProductList: () => ProductList_default,
ProductListHeader: () => ProductListHeader_default,
ProductListItem: () => ProductListItem_default,
ProfileColumn: () => ProfileColumn_default,
ProfileColumnStats: () => ProfileColumnStats_default,
ProfileColumnStatsEntry: () => ProfileColumnStatsEntry_default,
ProfileColumnUserInfo: () => ProfileColumnUserInfo_default,
Quiz: () => Quiz_default,
RecognitionShelf: () => RecognitionShelf_default,
ReelItem: () => ReelItem_default,
ReelPlayerHeader: () => ReelPlayerHeader_default,
ReelPlayerOverlay: () => ReelPlayerOverlay_default,
ReelShelf: () => ReelShelf_default,
RelatedChipCloud: () => RelatedChipCloud_default,
RemoveBannerForLiveChatCommand: () => RemoveBannerForLiveChatCommand_default,
RemoveChatItemAction: () => RemoveChatItemAction_default,
RemoveChatItemByAuthorAction: () => RemoveChatItemByAuthorAction_default,
ReplaceChatItemAction: () => ReplaceChatItemAction_default,
ReplayChatItemAction: () => ReplayChatItemAction_default,
RichGrid: () => RichGrid_default,
RichItem: () => RichItem_default,
RichListHeader: () => RichListHeader_default,
RichMetadata: () => RichMetadata_default,
RichMetadataRow: () => RichMetadataRow_default,
RichSection: () => RichSection_default,
RichShelf: () => RichShelf_default,
SearchBox: () => SearchBox_default,
SearchFilter: () => SearchFilter_default,
SearchFilterGroup: () => SearchFilterGroup_default,
SearchFilterOptionsDialog: () => SearchFilterOptionsDialog_default,
SearchHeader: () => SearchHeader_default,
SearchRefinementCard: () => SearchRefinementCard_default,
SearchSubMenu: () => SearchSubMenu_default,
SearchSuggestion: () => SearchSuggestion_default,
SearchSuggestionsSection: () => SearchSuggestionsSection_default,
SecondarySearchContainer: () => SecondarySearchContainer_default,
SectionList: () => SectionList_default,
SegmentedLikeDislikeButton: () => SegmentedLikeDislikeButton_default,
SegmentedLikeDislikeButtonView: () => SegmentedLikeDislikeButtonView_default,
SettingBoolean: () => SettingBoolean_default,
SettingsCheckbox: () => SettingsCheckbox_default,
SettingsOptions: () => SettingsOptions_default,
SettingsSidebar: () => SettingsSidebar_default,
SettingsSwitch: () => SettingsSwitch_default,
SharedPost: () => SharedPost_default,
Shelf: () => Shelf_default,
ShowCustomThumbnail: () => ShowCustomThumbnail_default,
ShowLiveChatActionPanelAction: () => ShowLiveChatActionPanelAction_default,
ShowLiveChatDialogAction: () => ShowLiveChatDialogAction_default,
ShowLiveChatTooltipCommand: () => ShowLiveChatTooltipCommand_default,
ShowingResultsFor: () => ShowingResultsFor_default,
SimpleCardContent: () => SimpleCardContent_default,
SimpleCardTeaser: () => SimpleCardTeaser_default,
SimpleMenuHeader: () => SimpleMenuHeader_default,
SimpleTextSection: () => SimpleTextSection_default,
SingleActionEmergencySupport: () => SingleActionEmergencySupport_default,
SingleColumnBrowseResults: () => SingleColumnBrowseResults_default,
SingleColumnMusicWatchNextResults: () => SingleColumnMusicWatchNextResults_default,
SingleHeroImage: () => SingleHeroImage_default,
SlimOwner: () => SlimOwner_default,
SlimVideoMetadata: () => SlimVideoMetadata_default,
SortFilterHeader: () => SortFilterHeader_default,
SortFilterSubMenu: () => SortFilterSubMenu_default,
SponsorCommentBadge: () => SponsorCommentBadge_default,
StatRow: () => StatRow_default,
StructuredDescriptionContent: () => StructuredDescriptionContent_default,
StructuredDescriptionPlaylistLockup: () => StructuredDescriptionPlaylistLockup_default,
SubFeedOption: () => SubFeedOption_default,
SubFeedSelector: () => SubFeedSelector_default,
SubscribeButton: () => SubscribeButton_default,
SubscriptionNotificationToggleButton: () => SubscriptionNotificationToggleButton_default,
Tab: () => Tab_default,
Tabbed: () => Tabbed_default,
TabbedSearchResults: () => TabbedSearchResults_default,
TextHeader: () => TextHeader_default,
ThumbnailLandscapePortrait: () => ThumbnailLandscapePortrait_default,
ThumbnailOverlayBottomPanel: () => ThumbnailOverlayBottomPanel_default,
ThumbnailOverlayEndorsement: () => ThumbnailOverlayEndorsement_default,
ThumbnailOverlayHoverText: () => ThumbnailOverlayHoverText_default,
ThumbnailOverlayInlineUnplayable: () => ThumbnailOverlayInlineUnplayable_default,
ThumbnailOverlayLoadingPreview: () => ThumbnailOverlayLoadingPreview_default,
ThumbnailOverlayNowPlaying: () => ThumbnailOverlayNowPlaying_default,
ThumbnailOverlayPinking: () => ThumbnailOverlayPinking_default,
ThumbnailOverlayPlaybackStatus: () => ThumbnailOverlayPlaybackStatus_default,
ThumbnailOverlayResumePlayback: () => ThumbnailOverlayResumePlayback_default,
ThumbnailOverlaySidePanel: () => ThumbnailOverlaySidePanel_default,
ThumbnailOverlayTimeStatus: () => ThumbnailOverlayTimeStatus_default,
ThumbnailOverlayToggleButton: () => ThumbnailOverlayToggleButton_default,
TimedMarkerDecoration: () => TimedMarkerDecoration_default,
TitleAndButtonListHeader: () => TitleAndButtonListHeader_default,
ToggleButton: () => ToggleButton_default,
ToggleButtonView: () => ToggleButtonView_default,
ToggleMenuServiceItem: () => ToggleMenuServiceItem_default,
Tooltip: () => Tooltip_default,
TopicChannelDetails: () => TopicChannelDetails_default,
Transcript: () => Transcript_default,
TranscriptFooter: () => TranscriptFooter_default,
TranscriptSearchBox: () => TranscriptSearchBox_default,
TranscriptSearchPanel: () => TranscriptSearchPanel_default,
TranscriptSectionHeader: () => TranscriptSectionHeader_default,
TranscriptSegment: () => TranscriptSegment_default,
TranscriptSegmentList: () => TranscriptSegmentList_default,
TwoColumnBrowseResults: () => TwoColumnBrowseResults_default,
TwoColumnSearchResults: () => TwoColumnSearchResults_default,
TwoColumnWatchNextResults: () => TwoColumnWatchNextResults_default,
UniversalWatchCard: () => UniversalWatchCard_default,
UpdateDateTextAction: () => UpdateDateTextAction_default,
UpdateDescriptionAction: () => UpdateDescriptionAction_default,
UpdateEngagementPanelAction: () => UpdateEngagementPanelAction_default,
UpdateLiveChatPollAction: () => UpdateLiveChatPollAction_default,
UpdateTitleAction: () => UpdateTitleAction_default,
UpdateToggleButtonTextAction: () => UpdateToggleButtonTextAction_default,
UpdateViewershipAction: () => UpdateViewershipAction_default,
UploadTimeFactoid: () => UploadTimeFactoid_default,
UpsellDialog: () => UpsellDialog_default,
VerticalList: () => VerticalList_default,
VerticalWatchCardList: () => VerticalWatchCardList_default,
Video: () => Video_default,
VideoAttributeView: () => VideoAttributeView_default,
VideoCard: () => VideoCard_default,
VideoDescriptionCourseSection: () => VideoDescriptionCourseSection_default,
VideoDescriptionHeader: () => VideoDescriptionHeader_default,
VideoDescriptionInfocardsSection: () => VideoDescriptionInfocardsSection_default,
VideoDescriptionMusicSection: () => VideoDescriptionMusicSection_default,
VideoDescriptionTranscriptSection: () => VideoDescriptionTranscriptSection_default,
VideoInfoCardContent: () => VideoInfoCardContent_default,
VideoOwner: () => VideoOwner_default,
VideoPrimaryInfo: () => VideoPrimaryInfo_default,
VideoSecondaryInfo: () => VideoSecondaryInfo_default,
ViewCountFactoid: () => ViewCountFactoid_default,
WatchCardCompactVideo: () => WatchCardCompactVideo_default,
WatchCardHeroVideo: () => WatchCardHeroVideo_default,
WatchCardRichHeader: () => WatchCardRichHeader_default,
WatchCardSectionSequence: () => WatchCardSectionSequence_default,
WatchNextEndScreen: () => WatchNextEndScreen_default,
WatchNextTabbedResults: () => WatchNextTabbedResults_default,
YpcTrailer: () => YpcTrailer_default
});
// dist/src/parser/classes/Button.js
var Button = class extends YTNode {
constructor(data2) {
super();
if (Reflect.has(data2, "text"))
this.text = new Text(data2.text).toString();
if (Reflect.has(data2, "accessibility") && Reflect.has(data2.accessibility, "label"))
this.label = data2.accessibility.label;
if (Reflect.has(data2, "tooltip"))
this.tooltip = data2.tooltip;
if (Reflect.has(data2, "icon") && Reflect.has(data2.icon, "iconType"))
this.icon_type = data2.icon.iconType;
if (Reflect.has(data2, "isDisabled"))
this.is_disabled = data2.isDisabled;
this.endpoint = new NavigationEndpoint_default(data2.navigationEndpoint || data2.serviceEndpoint || data2.command);
}
};
__name(Button, "Button");
Button.type = "Button";
var Button_default = Button;
// dist/src/parser/classes/DropdownItem.js
var DropdownItem = class extends YTNode {
constructor(data2) {
var _a4;
super();
this.label = new Text(data2.label).toString();
this.selected = !!data2.isSelected;
if (Reflect.has(data2, "int32Value")) {
this.value = data2.int32Value;
} else if (data2.stringValue) {
this.value = data2.stringValue;
}
if (Reflect.has(data2, "onSelectCommand")) {
this.endpoint = new NavigationEndpoint_default(data2.onSelectCommand);
}
if (Reflect.has(data2, "icon")) {
this.icon_type = (_a4 = data2.icon) === null || _a4 === void 0 ? void 0 : _a4.iconType;
}
if (Reflect.has(data2, "descriptionText")) {
this.description = new Text(data2.descriptionText);
}
}
};
__name(DropdownItem, "DropdownItem");
DropdownItem.type = "DropdownItem";
var DropdownItem_default = DropdownItem;
// dist/src/parser/classes/Dropdown.js
var Dropdown = class extends YTNode {
constructor(data2) {
super();
this.label = data2.label || "";
this.entries = parser_exports.parseArray(data2.entries, DropdownItem_default);
}
};
__name(Dropdown, "Dropdown");
Dropdown.type = "Dropdown";
var Dropdown_default = Dropdown;
// dist/src/parser/classes/CreatePlaylistDialog.js
var CreatePlaylistDialog = class extends YTNode {
constructor(data2) {
super();
this.title = new Text(data2.dialogTitle).toString();
this.title_placeholder = data2.titlePlaceholder || "";
this.privacy_option = parser_exports.parseItem(data2.privacyOption, Dropdown_default);
this.create_button = parser_exports.parseItem(data2.cancelButton, Button_default);
this.cancel_button = parser_exports.parseItem(data2.cancelButton, Button_default);
}
};
__name(CreatePlaylistDialog, "CreatePlaylistDialog");
CreatePlaylistDialog.type = "CreatePlaylistDialog";
var CreatePlaylistDialog_default = CreatePlaylistDialog;
// dist/src/parser/classes/actions/OpenPopupAction.js
var OpenPopupAction = class extends YTNode {
constructor(data2) {
super();
this.popup = parser_exports.parseItem(data2.popup);
this.popup_type = data2.popupType;
}
};
__name(OpenPopupAction, "OpenPopupAction");
OpenPopupAction.type = "OpenPopupAction";
var OpenPopupAction_default = OpenPopupAction;
// dist/src/parser/classes/NavigationEndpoint.js
var NavigationEndpoint = class extends YTNode {
constructor(data2) {
var _a4, _b, _c, _d, _e, _f, _g, _h;
super();
if (Reflect.has(data2 || {}, "innertubeCommand"))
data2 = data2.innertubeCommand;
if (Reflect.has(data2 || {}, "openPopupAction"))
this.open_popup = new OpenPopupAction_default(data2.openPopupAction);
const name = Object.keys(data2 || {}).find((item) => item.endsWith("Endpoint") || item.endsWith("Command"));
this.payload = name ? Reflect.get(data2, name) : {};
if (Reflect.has(this.payload, "dialog") || Reflect.has(this.payload, "content")) {
this.dialog = parser_exports.parseItem(this.payload.dialog || this.payload.content);
}
if (Reflect.has(this.payload, "modal")) {
this.modal = parser_exports.parseItem(this.payload.modal);
}
if (Reflect.has(this.payload, "nextEndpoint")) {
this.next_endpoint = new NavigationEndpoint(this.payload.nextEndpoint);
}
if (data2 === null || data2 === void 0 ? void 0 : data2.serviceEndpoint) {