@sequencemedia/music-library
Parses an Apple Music Library.xml file and transforms it to m3u files, JSON, JavaScript, or EcmaScript.
The command line app can watch for changes to an Apple Music Library.xml file and write m3u files to a destination directory.
Or, the component functions can be imported into your own application.
This packages implements @sequencemedia/music-library-parser.
Requires Java and Saxon PE.
Command line app
npm run start -- \
--jar "/usr/local/bin/saxon/SaxonPE10-6J/saxon-pe-10.6.jar" \
--xml "~/Music/Music/Library.xml" \
--destination "~/Documents/Music Library"
Paths will differ on your device.
Library
Transforms the entire library.
import { toM3U } from './src/library/index.mjs'
import {
toJSON,
toJS,
toES
} from './src/library/transform/index.mjs'
toM3U
Requires the arguments jar, xml, and destination.
jar - the path to the Saxon binary on your device
xml - the path to the Apple Music Library.xml file
destination - the path for the m3u files to be written
Returns a Promise resolving when all m3u files are written.
toJSON
Requires the arguments jar, and xml.
jar - the path to the Saxon binary on your device
xml - the path to the Apple Music Library.xml file
Returns a Promise resolving to a JSON string.
toJS
Requires the arguments jar, and xml.
jar - the path to the Saxon binary on your device
xml - the path to the Apple Music Library.xml file
Returns a Promise resolving to a JavaScript object.
toES
Requires the arguments jar, and xml.
jar - the path to the Saxon binary on your device
xml - the path to the Apple Music Library.xml file
Returns a Promise resolving to a collection of JavaScript Map and Set instances.
Playlists
Transforms the playlists.
import { toM3U } from './src/library/playlists/index.mjs'
import {
toJSON,
toJS,
toES
} from './src/library/playlists/transform/index.mjs'
See Library.
Tracks
Transforms the tracks.
import { toM3U } from './src/library/tracks/index.mjs'
import {
toJSON,
toJS,
toES
} from './src/library/tracks/transform/index.mjs'
See Library.