{"_id":"@carl.fyi/music","name":"@carl.fyi/music","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@carl.fyi/music","version":"0.1.0","description":"Turn music URLs, URIs and IDs from major platforms into one consistent, provider-aware format.","type":"module","sideEffects":false,"license":"MIT","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./music-identifiers":{"types":"./dist/music-identifiers.d.ts","import":"./dist/music-identifiers.js"}},"gitHead":"8395ae726af204ee2590ca681a8076b73a31a8e7","_id":"@carl.fyi/music@0.1.0","_nodeVersion":"26.7.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-5OxrYDQG8oaDSw2b+1wDktPr9u/nyiQHvktdj17NKuWVtOwy+9USlA9cgUGsUCyou1re+Q6wWX84dC9s2BZUNg==","shasum":"a73c3f8667c32cb60a895d7051c207522f21b3df","tarball":"https://registry.npmjs.org/@carl.fyi/music/-/music-0.1.0.tgz","fileCount":11,"unpackedSize":21314,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHklAmbKTllVha2bgxcN4pwk7EkWeYw9MWBv7SRP6EtlAiEAlnIQRFdlFy6sWtI45DPVJ9MdfGLw7Z3lefQyQo1udps="}]},"_npmUser":{"name":"carlfairclough","email":"hi@carlfairclough.me"},"directories":{},"maintainers":[{"name":"carlfairclough","email":"hi@carlfairclough.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/music_0.1.0_1787903735457_0.1602299635586848"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-28T07:55:35.264Z","0.1.0":"2026-08-28T07:55:35.590Z","modified":"2026-08-28T07:55:35.796Z"},"maintainers":[{"name":"carlfairclough","email":"hi@carlfairclough.me"}],"description":"Turn music URLs, URIs and IDs from major platforms into one consistent, provider-aware format.","license":"MIT","readme":"<!-- Generated from package.json and src TSDoc by scripts/generate-tool-documentation.mjs. Do not edit by hand. -->\n\n# @carl.fyi/music\n\nTurn music URLs, URIs and IDs from major platforms into one consistent, provider-aware format.\n\n[Interactive documentation](https://tools.carl.fyi/packages/music)\n\n## Install\n\n```sh\nnpm install @carl.fyi/music\n```\n\n## Quick start\n\n```ts\nimport { parseMusicIdentifier } from \"@carl.fyi/music\";\n\nconst release = parseMusicIdentifier(\"spotify:album:4aawyAB9vmqN3uQ7FjRGTy\");\nconsole.log(release?.canonicalUrl);\n```\n\n## Entry points\n\n| Import                              | Purpose                |\n| ----------------------------------- | ---------------------- |\n| `@carl.fyi/music`                   | All public exports     |\n| `@carl.fyi/music/music-identifiers` | Focused subpath import |\n\nAll entry points are ESM, side-effect-free, and include TypeScript declarations.\n\n## Public API\n\nThis is the complete export inventory. The detailed reference below mirrors the APIs demonstrated on the documentation website; its signatures, descriptions, defaults, errors, and examples are compiled from the package source.\n\n| Export                 | Kind      | Import from                         | Description                                                             |\n| ---------------------- | --------- | ----------------------------------- | ----------------------------------------------------------------------- |\n| `MusicEntityType`      | type      | `@carl.fyi/music/music-identifiers` | Public type exported by this package.                                   |\n| `MusicIdentifier`      | interface | `@carl.fyi/music/music-identifiers` | Public interface exported by this package.                              |\n| `MusicPlatform`        | type      | `@carl.fyi/music/music-identifiers` | Public type exported by this package.                                   |\n| `parseMusicIdentifier` | function  | `@carl.fyi/music/music-identifiers` | Parse a supported music-service URL or URI into a canonical identifier. |\n\n# API reference\n\n## `@carl.fyi/music/music-identifiers`\n\n### `parseMusicIdentifier`\n\n```ts\nparseMusicIdentifier(input: string): MusicIdentifier | null\n```\n\nParse a supported music-service URL or URI into a canonical identifier.\n\nSpotify, Apple Music, Discogs, Deezer, Last.fm, and MusicBrainz links are recognised without network access. Tracking parameters are removed from canonical URLs.\n\n| Parameter | Type     | Description                                              |\n| --------- | -------- | -------------------------------------------------------- |\n| `input`   | `string` | Provider URL, schemeless URL, or Spotify URI to inspect. |\n\n**Returns:** The platform, entity type, identifier, and canonical URL, or `null` when no supported identifier is found.\n\n**Example**\n\n```ts\nimport { parseMusicIdentifier } from \"@carl.fyi/music\";\n\nconst release = parseMusicIdentifier(\"spotify:album:4aawyAB9vmqN3uQ7FjRGTy\");\nconsole.log(release?.canonicalUrl);\n```\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md","_rev":"1-f19acf6adb6e9c42f55778881c3d4436"}