Author Topic: Export Playlist To XSPF  (Read 761 times)

Dryst

  • Jr. Member
  • **
  • Posts: 86
One issue with export to playlist when MusicBee is configured to export to XSPF--

The official Relax NG schema defines the node location to contain a URI:

Code
    <define name="def_location-element">
        <element name="location">
            <ref name="xml_base-attribute"/>
            <data type="anyURI"/>
        </element>
    </define>

MusicBee currently exports characters that are invalid within a URI making the generated XSPF document invalid.

Below is an example--

I currently have the following files on my network storage:

Code
\\QNAPNAS\Media\Digital Audio\Nyxx\2016, Nightmare [EP]\01-Diabolical.flac
\\QNAPNAS\Media\Digital Audio\Nyxx\2016, Nightmare [EP]\02-Nightmare.flac
\\QNAPNAS\Media\Digital Audio\Nyxx\2016, Nightmare [EP]\03-Blindsided.flac
\\QNAPNAS\Media\Digital Audio\Nyxx\2016, Nightmare [EP]\04-Noose.flac

The square brackets are fine for a directory name in Windows and Linux; however, square brackets characters are invalid in a URI.  When I export my playlist containing this files, this is the output I get:

Code
    <track>
      <location>file://qnapnas/Media/Digital%20Audio/Nyxx/2016,%20Nightmare%20[EP]/04-Noose.flac</location>
      <title>Noose</title>
      <creator>Nyxx</creator>
      <album>Nightmare [EP]</album>
      <trackNum>04</trackNum>
      <duration>202666</duration>
    </track>

The data within location node is invalid.

A way to fix this is to use the following as is done for space characters:

Code
    <track>
      <location>file://qnapnas/Media/Digital%20Audio/Nyxx/2016,%20Nightmare%20%5BEP%5D/04-Noose.flac</location>
      <title>Noose</title>
      <creator>Nyxx</creator>
      <album>Nightmare [EP]</album>
      <trackNum>04</trackNum>
      <duration>202666</duration>
    </track>