diff --git a/src/core/Session.ts b/src/core/Session.ts index efff4fff8..21d89d242 100644 --- a/src/core/Session.ts +++ b/src/core/Session.ts @@ -22,7 +22,8 @@ export enum ClientType { ANDROID_MUSIC = 'ANDROID_MUSIC', ANDROID_CREATOR = 'ANDROID_CREATOR', TV_EMBEDDED = 'TVHTML5_SIMPLY_EMBEDDED_PLAYER', - WEB_EMBEDDED = 'WEB_EMBEDDED_PLAYER' + WEB_EMBEDDED = 'WEB_EMBEDDED_PLAYER', + WEB_CREATOR = 'WEB_CREATOR' } export type Context = { diff --git a/src/types/Misc.ts b/src/types/Misc.ts index 2a4070d58..28ac68cd9 100644 --- a/src/types/Misc.ts +++ b/src/types/Misc.ts @@ -1,7 +1,7 @@ import type { SessionOptions } from '../core/index.js'; export type InnerTubeConfig = SessionOptions; -export type InnerTubeClient = 'IOS' | 'WEB' | 'ANDROID' | 'YTMUSIC' | 'YTMUSIC_ANDROID' | 'YTSTUDIO_ANDROID' | 'TV_EMBEDDED' | 'YTKIDS' | 'WEB_EMBEDDED'; +export type InnerTubeClient = 'IOS' | 'WEB' | 'ANDROID' | 'YTMUSIC' | 'YTMUSIC_ANDROID' | 'YTSTUDIO_ANDROID' | 'TV_EMBEDDED' | 'YTKIDS' | 'WEB_EMBEDDED' | 'WEB_CREATOR'; export type UploadDate = 'all' | 'hour' | 'today' | 'week' | 'month' | 'year'; export type SearchType = 'all' | 'video' | 'channel' | 'playlist' | 'movie'; diff --git a/src/utils/Constants.ts b/src/utils/Constants.ts index 2f7d0f4bc..56ff9b7b3 100644 --- a/src/utils/Constants.ts +++ b/src/utils/Constants.ts @@ -77,6 +77,14 @@ export const CLIENTS = Object.freeze({ API_KEY: 'AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8', API_VERSION: 'v1', STATIC_VISITOR_ID: '6zpwvWUNAco' + }, + WEB_CREATOR: { + NAME_ID: '62', + NAME: 'WEB_CREATOR', + VERSION: '1.20240918.03.00', + API_KEY: 'AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8', + API_VERSION: 'v1', + STATIC_VISITOR_ID: '6zpwvWUNAco' } }); export const STREAM_HEADERS = Object.freeze({ @@ -91,4 +99,4 @@ export const INNERTUBE_HEADERS_BASE = Object.freeze({ 'content-type': 'application/json' }); -export const SUPPORTED_CLIENTS = [ 'IOS', 'WEB', 'YTKIDS', 'YTMUSIC', 'ANDROID', 'YTSTUDIO_ANDROID', 'YTMUSIC_ANDROID', 'TV_EMBEDDED', 'WEB_EMBEDDED' ]; +export const SUPPORTED_CLIENTS = [ 'IOS', 'WEB', 'YTKIDS', 'YTMUSIC', 'ANDROID', 'YTSTUDIO_ANDROID', 'YTMUSIC_ANDROID', 'TV_EMBEDDED', 'WEB_EMBEDDED', 'WEB_CREATOR' ]; diff --git a/src/utils/HTTPClient.ts b/src/utils/HTTPClient.ts index 39e6372fa..1b34dc420 100644 --- a/src/utils/HTTPClient.ts +++ b/src/utils/HTTPClient.ts @@ -263,6 +263,10 @@ export default class HTTPClient { ctx.client.clientScreen = 'EMBED'; ctx.thirdParty = { embedUrl: Constants.URLS.GOOGLE_SEARCH_BASE }; break; + case 'WEB_CREATOR': + ctx.client.clientName = Constants.CLIENTS.WEB_CREATOR.NAME; + ctx.client.clientVersion = Constants.CLIENTS.WEB_CREATOR.VERSION; + break; default: break; }