mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 18:41:47 +00:00
38 lines
1.5 KiB
TypeScript
38 lines
1.5 KiB
TypeScript
import { SHA1Hash } from './sha1hash';
|
|
|
|
export const extractToken = (cookie = document.cookie) => cookie.match(/SAPISID=([^;]+);/)?.[1] ?? cookie.match(/__Secure-3PAPISID=([^;]+);/)?.[1];
|
|
|
|
export const getHash = async (papisid: string, millis = Date.now(), origin: string = 'https://music.youtube.com') =>
|
|
(await SHA1Hash(`${millis} ${papisid} ${origin}`)).toLowerCase();
|
|
|
|
export const getAuthorizationHeader = async (papisid: string, millis = Date.now(), origin: string = 'https://music.youtube.com') => {
|
|
return `SAPISIDHASH ${millis}_${await getHash(papisid, millis, origin)}`;
|
|
};
|
|
|
|
export const getClient = () => {
|
|
return {
|
|
hl: navigator.language.split('-')[0] ?? 'en',
|
|
gl: navigator.language.split('-')[1] ?? 'US',
|
|
deviceMake: '',
|
|
deviceModel: '',
|
|
userAgent: navigator.userAgent,
|
|
clientName: 'WEB_REMIX',
|
|
clientVersion: '1.20231208.05.02',
|
|
osName: '',
|
|
osVersion: '',
|
|
platform: 'DESKTOP',
|
|
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
locationInfo: {
|
|
locationPermissionAuthorizationStatus: 'LOCATION_PERMISSION_AUTHORIZATION_STATUS_UNSUPPORTED',
|
|
},
|
|
musicAppInfo: {
|
|
pwaInstallabilityStatus: 'PWA_INSTALLABILITY_STATUS_UNKNOWN',
|
|
webDisplayMode: 'WEB_DISPLAY_MODE_BROWSER',
|
|
storeDigitalGoodsApiSupportStatus: {
|
|
playStoreDigitalGoodsApiSupportStatus: 'DIGITAL_GOODS_API_SUPPORT_STATUS_UNSUPPORTED',
|
|
},
|
|
},
|
|
utcOffsetMinutes: -1 * (new Date()).getTimezoneOffset(),
|
|
};
|
|
};
|