{"_id":"@adahiya/music-library-scripts","name":"@adahiya/music-library-scripts","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@adahiya/music-library-scripts","version":"0.1.0","type":"module","bin":{"music-library-scripts":"bin/cli.sh"},"scripts":{"all":"npm run build && npm run execute","build":"tsc -p src","run-cli":"node lib/cli.mjs"},"dependencies":{"dedent":"^0.7.0","html-entities":"^2.3.3","plist":"^3.0.6","prompts":"^2.4.2"},"devDependencies":{"@types/dedent":"^0.7.0","@types/node":"^18.11.18","@types/plist":"^3.0.2","@types/prompts":"^2.4.2","prettier":"^2.8.3","typescript":"^4.9.4"},"engines":{"node":">=19"},"gitHead":"594e46e85342092696924dd6efb8fe54b20ab6e8","description":"[![npm](https://img.shields.io/npm/v/@adahiya/music-library-scripts.svg?label=@adahiya/music-library-scripts)](https://www.npmjs.com/package/@adahiya/music-library-scripts)","_id":"@adahiya/music-library-scripts@0.1.0","_nodeVersion":"19.4.0","_npmVersion":"9.2.0","dist":{"integrity":"sha512-wl2CSj/49OnhN56a1AH7kAtTwBBc/oBC6DfgGnjSH6z2AkiKwrwFuqeYo/hyDmG79FEHrKu8wJx5w4GlMpc13w==","shasum":"c0a8571a82f93796b90ff9234f7ac9cc9ec7b028","tarball":"https://registry.npmjs.org/@adahiya/music-library-scripts/-/music-library-scripts-0.1.0.tgz","fileCount":39,"unpackedSize":59699,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFN9p1sWWZ1Py8iahNB0BO4IU+7igjIzVGvUAqKU0ADYAiEA2XUMHZQiHrqTKcYOryi+vsJmyxrZR9Bqv2rdxjRHRRM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2XXLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrc8Q//RhICqfdyKCV6ecuea3bZ9AUtGsJdPfTRCJRc2d8SBcC/6AfQ\r\nqxpWFDek9XOpnfPLiNWliHuTz6vIaS0c3INgEkXvEwVIgz3tNFr5YoICvvlY\r\nnfZjdvEj8AuNK+WcayJ7rOEAjRcQjAuou2TzuTLqhjRYC0wAtxMJoftlOCC2\r\nvAsCDy6hL+V+coUHTqE4BWVw4swjK5hermfESQSifbDLAFjCvRh2H0YRjdKl\r\ng5Y1XAYyujjWwnfA8aHrVuCpmAq0/14iq6X4DrVJiS/IBiicAmodbdUoBy26\r\nAfVTI9ggQ67CnSjqRLU1nlqZg/ywPyxiUmsqQjULGS//6pwzOqbSbz+SC1si\r\nLehWJaspzzKpvMgrvyTTUaT1zVZMmtvVTHtMnzgyZdYQ81oQCThO7ghg2ajf\r\nbmr667r5C7S99+OzgWuiAqS5PgYbylftkVgU3uoXG2qBVCLboPQPAepzPyEL\r\n+jeb5Wjz7JoDQq3nSJVznM+B5tKWBQFZAcX5b7nusnBVOAjlB4wwTtfKcv4q\r\n5QR9CgcQyZzc50xyLlJR1bvJDgVKylYXyYBXHCHioDAGwPaJ3aOk6cpJA9Wx\r\n10uj0/ks9AmR94hsnUIPNAOXG5jksIf+ULUsqAfrAMpcsry2pPhMshCe0bOX\r\n54VOWlcDVDw1IogMyvExpv94NUL8P7P2Kd0=\r\n=+phH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"adahiya","email":"adi.dahiya14@gmail.com"},"directories":{},"maintainers":[{"name":"adahiya","email":"adi.dahiya14@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/music-library-scripts_0.1.0_1675195850922_0.16192847286244838"},"_hasShrinkwrap":false}},"time":{"created":"2023-01-31T20:10:50.725Z","0.1.0":"2023-01-31T20:10:51.154Z","modified":"2023-01-31T20:10:51.337Z"},"maintainers":[{"name":"adahiya","email":"adi.dahiya14@gmail.com"}],"description":"[![npm](https://img.shields.io/npm/v/@adahiya/music-library-scripts.svg?label=@adahiya/music-library-scripts)](https://www.npmjs.com/package/@adahiya/music-library-scripts)","readme":"# adi's music library scripts\n\n[![npm](https://img.shields.io/npm/v/@adahiya/music-library-scripts.svg?label=@adahiya/music-library-scripts)](https://www.npmjs.com/package/@adahiya/music-library-scripts)\n\nRequirements: Node.js v19+\n\n## Getting started\n\nBefore you run the scripts, you'll need to make sure you have Node.js installed:\n\n-   Install [nvm](https://github.com/nvm-sh/nvm)\n-   In a terminal, run `nvm install 19 && nvm use 19`\n\nNext, you can install these scripts as a global NPM library:\n\n```sh\nnpm install --global @adahiya/music-library-scripts\n```\n\n## `convert-swinsian-to-rekordbox-itunes-xml-library`\n\nConverts a Swinsian library to Rekordbox iTunes XML format.\n\n### 1. Export your Swinsian library to an XML file\n\n![swinsian-export-1](./docs/assets/swinsian-export-library.png)\n![swinsian-export-2](./docs/assets/swinsian-export-library-location.png)\n\n### 2. Run the Node.js script to generate a `ModifiedLibrary.xml` file\n\nIf you have your global `node_modules` configured on your shell's `$PATH` correctly, you can simply run the binary after installing the package:\n\n```\nmusic-library-scripts\n```\n\nIf not, you can still run it via `npm`:\n\n```\nnpm exec --global music-library-scripts\n```\n\nIt will prompt you for a path to the exported `SwinsianLibrary.xml` file, and output something like this to the console:\n\n```\n> npm exec --global music-library-scripts\n\n✔ Which script would you like to run? › Convert Swinsian library to Music.app/iTunes XML format\n✔ Where is your exported SwinsianLibrary.xml located? … /Users/adi/Music/Swinsian export/Latest\nLoading library at /Users/adi/Music/Swinsian export/Latest/SwinsianLibrary.xml\nloadPlistFile: 8.220s\nBuilding modified library\nbuildPlistOutput: 7.693s\nWriting modified library to /Users/adi/Music/Swinsian export/Latest/ModifiedLibrary.xml\n```\n\n### 3. Point Rekordbox to the new modified library file\n\n_This configuration only needs to be done once!_\n\n![rekordbox-itunes-xml](./docs/assets/rekordbox-select-itunes-xml.png)\n\nAfter the first time you configure Rekordbox to look for `ModifiedLibrary.xml` in this location,\nyou can just hit the refresh button to load the library when you run this process again:\n\n![refresh](./docs/assets/rekordbox-refresh-itunes-xml.png)\n\n### Automator workflow\n\nThere's an automator workflow in this repo which does most of the above steps for you. Here's an overview of its steps:\n\n![workflow-overview](./automator/export-swinsian-library.workflow/Contents/QuickLook/Preview.png)\n\n## Development\n\nTasks\n\n-   Build from source: `pnpm build`\n-   Run CLI: `pnpm run-cli`\n","readmeFilename":"README.md"}