22 lines
		
	
	
		
			712 B
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			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()
 | |
| 		}
 | |
| 	}
 | |
| }
 |