@manhgdev/spotifyweb
Version:
Spotify library in typescript without using the Spotify Web API. No authentication required with automatic internal token generation.
152 lines (151 loc) • 4.43 kB
TypeScript
import { SpotiflyBase } from "./base.js";
export declare class SpotiflyPlaylist extends SpotiflyBase {
id: string;
constructor(cookie: string);
create(name: string): Promise<{
uri: string;
revision: string;
}>;
rename(newName: string): Promise<unknown>;
changeDescription(newDescription: string): Promise<unknown>;
fetchMetadata(limit?: number): Promise<{
__typename: string;
uri: string;
name: string;
description: string;
ownerV2: {
data: {
__typename: string;
uri: string;
username: string;
name: string;
avatar: {
sources: Array<{
url: string;
width: number;
height: number;
}>;
};
};
};
images: {
items: Array<{
extractedColors: {
colorRaw: {
hex: string;
isFallback: boolean;
};
};
sources: Array<{
url: string;
width: any;
height: any;
}>;
}>;
};
collaborative: boolean;
followers: number;
format: string;
attributes: Array<any>;
sharingInfo: {
shareUrl: string;
};
content: {
__typename: string;
totalCount: number;
pagingInfo: {
limit: number;
};
items: Array<{
itemV2: {
__typename: string;
data: {
__typename: string;
uri: string;
trackDuration: {
totalMilliseconds: number;
};
};
};
}>;
};
}>;
fetchContents(limit?: number): Promise<{
uid: string;
addedAt: {
isoString: string;
};
addedBy: {
data: {
__typename: string;
uri: string;
username: string;
name: string;
avatar: {
sources: Array<{
url: string;
width: number;
height: number;
}>;
};
};
};
attributes: Array<any>;
itemV2: {
__typename: string;
data: {
__typename: string;
uri: string;
name: string;
trackDuration: {
totalMilliseconds: number;
};
playcount: string;
albumOfTrack: {
uri: string;
name: string;
artists: {
items: Array<{
uri: string;
profile: {
name: string;
};
}>;
};
coverArt: {
sources: Array<{
url: string;
width: number;
height: number;
}>;
};
};
artists: {
items: Array<{
uri: string;
profile: {
name: string;
};
}>;
};
discNumber: number;
trackNumber: number;
playability: {
playable: boolean;
reason: string;
};
contentRating: {
label: string;
};
};
};
}[]>;
add(...trackUris: string[]): Promise<unknown>;
remove(...trackUris: string[]): Promise<unknown>;
cloneFrom(id: string, config?: {
name?: string;
description?: string;
limit?: number;
}): Promise<void>;
delete(): Promise<unknown>;
}