Skip to content

TooTallNate/spotify-uri

Repository files navigation

spotify-uri

Parse and format the various Spotify URL/URI formats.

spotify-uri get passed around in a variety of flavors. This module parses them into a JavaScript object so you can work with them further. You can also convert them back into Spotify URIs or HTTP URLs.

Install

$ npm install spotify-uri

Usage

Just call parse method:

const { parse } = require('spotify-uri')

spotifyUri.parse('spotify:track:3GU4cxkfdc3lIp9pFEMMmw')
// { 
//   uri: 'spotify:track:3GU4cxkfdc3lIp9pFEMMmw',
//   type: 'track',
//   id: '3GU4cxkfdc3lIp9pFEMMmw' 
// }

spotifyUri.parse('http://open.spotify.com/track/1pKYYY0dkg23sQQXi0Q5zN')
// { 
//   uri: 'http://open.spotify.com/track/1pKYYY0dkg23sQQXi0Q5zN',
//   type: 'track',
//   id: '1pKYYY0dkg23sQQXi0Q5zN' 
// }

You can also format the parsed objects back into a URI or HTTP URL:

const { parse, formatURI, formatOpenURL, formatPlayURL, formatEmbedURL } = require('spotify-uri')

const parsed = parse('http://open.spotify.com/track/1pKYYY0dkg23sQQXi0Q5zN')

formatURI(parsed) // => 'spotify:track:1pKYYY0dkg23sQQXi0Q5zN'
formatOpenURL(parsed) // => 'http://open.spotify.com/track/1pKYYY0dkg23sQQXi0Q5zN'
formatPlayURL(parsed) // => 'https://play.spotify.com/track/1pKYYY0dkg23sQQXi0Q5zN'
formatEmbedURL(parsed) // => 'https://embed.spotify.com/?uri=spotify:track:1pKYYY0dkg23sQQXi0Q5zN'

See the test cases for some more examples of Spotify URIs.

API

.parse(String uri) → Object

Parses a Spotify URI or a Spotify HTTP(s) URL into an Object. The specific properties set on the returned Object depend on the "type" of uri that gets passed in. The different "types" are listed below:

.formatURI(Object parsedUri) → String

Formats a parsed URI Object back into a Spotify URI. For example:

const { parse, formatURI } = require('spotify-uri')
const parsed = spotifyUri.parse('https://play.spotify.com/track/3GU4cxkfdc3lIp9pFEMMmw')
formatURI(parsed) // => 'spotify:track:3GU4cxkfdc3lIp9pFEMMmw'

.formatOpenURL(Object parsedUri) → String

Formats a parsed URI Object back into a Spotify HTTP "open" URL. For example:

const { parse, formatOpenURL } = require('spotify-uri')
const parsed = parse('spotify:track:3c1zC1Ma3987kQcHQfcG0Q')
formatOpenURL(parsed) // => 'http://open.spotify.com/track/3c1zC1Ma3987kQcHQfcG0Q'

.formatPlayURL(Object parsedUri) → String

Formats a parsed URI Object back into a Spotify HTTPS "play" URL. For example:

const { parse, formatPlayURL } = require('spotify-uri')
const parsed = parse('spotify:track:4Jgp57InfWE4MxJLfheNVz')
formatPlayURL(parsed) // => 'https://play.spotify.com/track/4Jgp57InfWE4MxJLfheNVz'

.formatEmbedURL(Object parsedUri) → String

Formats a parsed URI Object back into a Spotify HTTPS "embed" URL. For example:

const { parse, formatEmbedURL } = require('spotify-uri')
const parsed = parse('spotify:track:6JmI8SpUHoQ4yveHLjTrko')
formatEmbedURL(parsed) // => 'https://embed.spotify.com/?uri=spotify:track:6JmI8SpUHoQ4yveHLjTrko'

License

spotify-uri © Nathan Rajlich, released under the MIT License.
Authored by Nathan Rajlich and maintained by Kiko Beats with help from contributors.