Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tootallnate/spotify-uri
Parse and format the various Spotify URI formats
https://github.com/tootallnate/spotify-uri
Last synced: 3 days ago
JSON representation
Parse and format the various Spotify URI formats
- Host: GitHub
- URL: https://github.com/tootallnate/spotify-uri
- Owner: TooTallNate
- License: mit
- Created: 2013-05-25T21:22:22.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2024-05-23T09:04:56.000Z (7 months ago)
- Last Synced: 2024-10-29T15:41:02.043Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 130 KB
- Stars: 70
- Watchers: 5
- Forks: 16
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# 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
```bash
$ npm install spotify-uri
```## Usage
Just call `parse` method:
```js
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:
```js
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](./test) 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:
``` js
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:
``` js
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:
``` js
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:
``` js
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](http://n8.io), released under the [MIT](https://github.com/microlinkhq/spotify-url-info/blob/master/LICENSE.md) License.
Authored by [Nathan Rajlich](http://n8.io) and maintained by [Kiko Beats](https://kikobeats.com) with help from [contributors](https://github.com/microlinkhq/spotify-url-info/contributors).