This package has been deprecated

Author message:

No longer maintained

@sequencemedia/itunes-library-stream

0.0.22 • Public • Published

@sequencemedia/itunes-library-stream

Streaming parser for iTunes Library XML files

Usage

itunes.createStream()

Creates a stream to parse the iTunes Library.xml file and generate:

  • Each track
  • A collection of all tracks
  • Each playlist
  • A collection of all playlists
  • Each playlist item
  • Each collection of playlist items
  • The complete library

Every object is defined either as a Map or a Set (depending on whichever more closely resembles the XML).

Example ES

import { createReadStream } from 'fs'
import { resolve } from 'path'
import userhome from 'userhome'
import itunes from '@sequencmedia/itunes-library-stream'

import itunes, {
  LIBRARY,
  TRACKS,
  TRACK,
  PLAYLISTS,
  PLAYLIST,
  PLAYLIST_ITEMS,
  PLAYLIST_ITEM
} from '@sequencemedia/itunes-library-stream'

const filePath = resolve(userhome(), 'Music/iTunes/iTunes Music Library.xml')

createReadStream(filePath)
  .pipe(itunes.createStream())
  .on('data', ({
  	[LIBRARY]: library,
  	[TRACKS]: tracks,
  	[TRACK]: track,
  	[PLAYLISTS]: playlists,
  	[PLAYLIST]: playlist,
  	[PLAYLIST_ITEMS]: playlistItems,
  	[PLAYLIST_ITEM]: playlistItem
  }) => {
  	if (library) { /* A `Map` instance, contains _all_ tracks and playlists */ }
  	if (tracks) { /* A `Map` instance, contains _all_ tracks  */ }
  	if (track) { /* A `Map` instance. A track  */ }
  	if (playlists) { /* A `Set` instance, contains _all_ playlists */ }
  	if (playlist) { /* A `Map` instance. A playlist  */ }
  	if (playlistItems) { /* A `Set` instance, contains _all_ playlist items (belonging to a playlist) */ }
  	if (playlistItem) { /* A `Map` instance. A playlist item (belonging to a playlist) */ }
  })
  .on('end', () => {
  	console.log('Processing is complete!')
  })

License

MIT. See LICENSE.md for details.

Package Sidebar

Install

npm i @sequencemedia/itunes-library-stream

Weekly Downloads

5

Version

0.0.22

License

MIT

Unpacked Size

16.4 kB

Total Files

7

Last publish

Collaborators

  • jonathanperry
  • sequencemedialimited