searchtify
Version:
a search package for spotify that requires no credentials!
55 lines (54 loc) • 1.58 kB
TypeScript
import type { AlbumUnion, Artist, SearchV2, HomeSection } from './spotify.ts';
interface Variables {
buildVer: string;
buildDate: string;
clientVersion: string;
serverTime: string;
}
interface SecretBytes {
version: number;
secret: number[];
}
interface AccessToken {
clientId: string;
accessToken: string;
accessTokenExpirationTimestampMs: number;
}
interface ClientToken {
token: string;
refreshAt: number;
}
interface SearchOptions {
offset?: number;
limit?: number;
numberOfTopResults?: number;
includeAudiobooks?: boolean;
includeArtistHasConcertsField?: boolean;
includePreReleases?: boolean;
includeLocalConcertsField?: boolean;
includeAuthors?: boolean;
[key: string]: unknown;
}
declare class Spotify {
$latestSecret: SecretBytes;
deviceId: string;
cookie: string;
customUserAgent: string;
accessToken: AccessToken;
clientToken: ClientToken;
variables?: Variables;
constructor();
$fetchSecrets(): Promise<void>;
setUserAgent(userAgent: string): void;
getVariables(): Promise<Variables>;
toSecret(input: number[]): Buffer;
generateTOTP(timestamp?: number): string;
pullAccessToken(): Promise<void>;
pullClientToken(): Promise<void>;
getHeaders(): Promise<Record<string, string>>;
search(query: string, opts?: SearchOptions): Promise<SearchV2>;
getPopular(timezone?: string): Promise<HomeSection[]>;
getAlbum(uri: string): Promise<AlbumUnion>;
getArtist(uri: string): Promise<Artist>;
}
export default Spotify;