@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 devicexml
- the path to the Apple Music Library.xml
filedestination
- 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 devicexml
- 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 devicexml
- 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 devicexml
- 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.