A decentralized music tracking and discovery platform built on AT Protocol 馃幍 rocksky.app
spotify atproto lastfm musicbrainz scrobbling listenbrainz
at main 69 lines 1.4 kB view raw
1import { client } from "."; 2 3export const getPlaylists = async ( 4 did: string, 5): Promise< 6 { 7 id: string; 8 name: string; 9 picture: string; 10 description?: string; 11 uri?: string; 12 spotifyLink?: string; 13 tidalLink?: string; 14 appleMusicLink?: string; 15 trackCount: number; 16 }[] 17> => { 18 const response = await client.get( 19 "/xrpc/app.rocksky.actor.getActorPlaylists", 20 { 21 params: { did }, 22 }, 23 ); 24 return response.data.playlists; 25}; 26 27export const getPlaylist = async ( 28 did: string, 29 rkey: string, 30): Promise<{ 31 id: string; 32 name: string; 33 picture: string; 34 description?: string; 35 uri?: string; 36 spotifyLink?: string; 37 tidalLink?: string; 38 appleMusicLink?: string; 39 curatedBy: { 40 id: string; 41 displayName: string; 42 did: string; 43 avatar: string; 44 handle: string; 45 }; 46 trackCount: number; 47 tracks: { 48 id: string; 49 trackNumber: number; 50 album: string; 51 albumArt: string; 52 albumArtist: string; 53 title: string; 54 artist: string; 55 createdAt: string; 56 uri: string; 57 albumUri: string; 58 artistUri: string; 59 duration: number; 60 discNumber: number; 61 }[]; 62}> => { 63 const response = await client.get("/xrpc/app.rocksky.playlist.getPlaylist", { 64 params: { 65 uri: `at://${did}/app.rocksky.playlist/${rkey}`, 66 }, 67 }); 68 return response.data; 69};