ts-npm-ytmusic-api/src/parsers/PlaylistParser.ts

22 lines
712 B
TypeScript

import traverse from "../utils/traverse"
export default class PlaylistParser {
public static parseSearchResult(item: any): YTMusic.PlaylistDetailed {
const flexColumns = traverse(item, "flexColumns")
const thumbnails = traverse(item, "thumbnails")
const artistId = traverse(flexColumns[1], "browseId")
return {
type: "PLAYLIST",
playlistId: traverse(item, "overlay", "playlistId"),
name: traverse(flexColumns[0], "runs", "text"),
artist: {
artistId: artistId instanceof Array ? null : artistId,
name: traverse(flexColumns[1], "runs", "text").at(-2)
},
trackCount: +traverse(flexColumns[1], "runs", "text").at(-1).split(" ").at(0),
thumbnails: [thumbnails].flat()
}
}
}