Skip to content

Commit

Permalink
feat: Add WEB_EMBEDDED client (#756)
Browse files Browse the repository at this point in the history
  • Loading branch information
unixfox authored Sep 19, 2024
1 parent 5db449c commit eaf218f
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 4 deletions.
3 changes: 3 additions & 0 deletions src/core/Player.ts
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,9 @@ export default class Player {
case 'TVHTML5_SIMPLY_EMBEDDED_PLAYER':
url_components.searchParams.set('cver', Constants.CLIENTS.TV_EMBEDDED.VERSION);
break;
case 'WEB_EMBEDDED_PLAYER':
url_components.searchParams.set('cver', Constants.CLIENTS.WEB_EMBEDDED.VERSION);
break;
}

const result = url_components.toString();
Expand Down
3 changes: 2 additions & 1 deletion src/core/Session.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ export enum ClientType {
ANDROID = 'ANDROID',
ANDROID_MUSIC = 'ANDROID_MUSIC',
ANDROID_CREATOR = 'ANDROID_CREATOR',
TV_EMBEDDED = 'TVHTML5_SIMPLY_EMBEDDED_PLAYER'
TV_EMBEDDED = 'TVHTML5_SIMPLY_EMBEDDED_PLAYER',
WEB_EMBEDDED = 'WEB_EMBEDDED_PLAYER'
}

export type Context = {
Expand Down
2 changes: 1 addition & 1 deletion src/types/Misc.ts
Original file line number Diff line number Diff line change
@@ -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';
export type InnerTubeClient = 'IOS' | 'WEB' | 'ANDROID' | 'YTMUSIC' | 'YTMUSIC_ANDROID' | 'YTSTUDIO_ANDROID' | 'TV_EMBEDDED' | 'YTKIDS' | 'WEB_EMBEDDED';

export type UploadDate = 'all' | 'hour' | 'today' | 'week' | 'month' | 'year';
export type SearchType = 'all' | 'video' | 'channel' | 'playlist' | 'movie';
Expand Down
13 changes: 11 additions & 2 deletions src/utils/Constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ export const URLS = Object.freeze({
TEST: 'https://test-youtubei.sandbox.googleapis.com/youtubei/',
CAMI: 'http://cami-youtubei.sandbox.googleapis.com/youtubei/',
UYTFE: 'https://uytfe.sandbox.google.com/youtubei/'
})
}),
GOOGLE_SEARCH_BASE: 'https://www.google.com/'
});
export const OAUTH = Object.freeze({
REGEX: Object.freeze({
Expand Down Expand Up @@ -68,6 +69,14 @@ export const CLIENTS = Object.freeze({
NAME_ID: '85',
NAME: 'TVHTML5_SIMPLY_EMBEDDED_PLAYER',
VERSION: '2.0'
},
WEB_EMBEDDED: {
NAME_ID: '56',
NAME: 'WEB_EMBEDDED_PLAYER',
VERSION: '2.20240111.09.00',
API_KEY: 'AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8',
API_VERSION: 'v1',
STATIC_VISITOR_ID: '6zpwvWUNAco'
}
});
export const STREAM_HEADERS = Object.freeze({
Expand All @@ -82,4 +91,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' ];
export const SUPPORTED_CLIENTS = [ 'IOS', 'WEB', 'YTKIDS', 'YTMUSIC', 'ANDROID', 'YTSTUDIO_ANDROID', 'YTMUSIC_ANDROID', 'TV_EMBEDDED', 'WEB_EMBEDDED' ];
6 changes: 6 additions & 0 deletions src/utils/HTTPClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,12 @@ export default class HTTPClient {
}
};
break;
case 'WEB_EMBEDDED':
ctx.client.clientName = Constants.CLIENTS.WEB_EMBEDDED.NAME;
ctx.client.clientVersion = Constants.CLIENTS.WEB_EMBEDDED.VERSION;
ctx.client.clientScreen = 'EMBED';
ctx.thirdParty = { embedUrl: Constants.URLS.GOOGLE_SEARCH_BASE };
break;
default:
break;
}
Expand Down

0 comments on commit eaf218f

Please sign in to comment.