I've written several scripts for working with iTunes here: http://samsoft.org.uk/iTunes/scripts.asp
This is the M3U output for a one track playlist.
#EXTM3U
#EXTINF:215,Boogie Oogie Oogie - A Taste Of Honey
D:\iTunes\iTunes Media\Albums & Tracks\A\A Taste Of Honey\Beauty & The Boogie\01 Boogie Oogie Oogie.mp3
The lines that start with a # are ignored on input.
This is the XML output for a one track playlist. The important lines are highlighted in bold navy (bold wasn't distinct).
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Major Version</key><integer>1</integer>
<key>Minor Version</key><integer>1</integer>
<key>Date</key><date>2015-11-25T16:49:10Z</date>
<key>Application Version</key><string>12.3.1.23</string>
<key>Features</key><integer>5</integer>
<key>Show Content Ratings</key><true/>
<key>Music Folder</key><string>file://localhost/D:/iTunes/iTunes%20Media/</string>
<key>Library Persistent ID</key><string>CCF046191585EA85</string>
<key>Tracks</key>
<dict>
<key>156289</key>
<dict>
<key>Track ID</key><integer>156289</integer>
<key>Name</key><string>Boogie Oogie Oogie</string>
<key>Artist</key><string>A Taste Of Honey</string>
<key>Album Artist</key><string>A Taste Of Honey</string>
<key>Composer</key><string>Janice Marie Johnson/Perry L. Kibble</string>
<key>Album</key><string>Beauty & The Boogie</string>
<key>Genre</key><string>R&B</string>
<key>Kind</key><string>MPEG audio file</string>
<key>Size</key><integer>2559268</integer>
<key>Total Time</key><integer>215928</integer>
<key>Track Number</key><integer>1</integer>
<key>Track Count</key><integer>1</integer>
<key>Year</key><integer>1997</integer>
<key>Date Modified</key><date>2015-10-28T16:04:45Z</date>
<key>Date Added</key><date>2013-01-26T16:08:09Z</date>
<key>Bit Rate</key><integer>94</integer>
<key>Sample Rate</key><integer>22050</integer>
<key>Comments</key><string>Test Comment 3
Multi
Line</string>
<key>Play Count</key><integer>11</integer>
<key>Play Date</key><integer>3513787411</integer>
<key>Play Date UTC</key><date>2015-05-06T19:03:31Z</date>
<key>Skip Count</key><integer>4</integer>
<key>Skip Date</key><date>2015-06-09T23:36:17Z</date>
<key>Rating</key><integer>40</integer>
<key>Album Rating</key><integer>40</integer>
<key>Album Rating Computed</key><true/>
<key>Normalization</key><integer>1216</integer>
<key>Artwork Count</key><integer>1</integer>
<key>Sort Album Artist</key><string>A Taste Of Honey</string>
<key>Sort Artist</key><string>A Taste Of Honey</string>
<key>Persistent ID</key><string>673E33095C0F1341</string>
<key>Track Type</key><string>File</string>
<key>Location</key><string>file://localhost/D:/iTunes/iTunes%20Media/Albums%20&# 38;%20Tracks/A/A%20Taste%20Of%20Honey/Beauty%20&%20The%20Boogie/01%20Boogie% 20Oogie%20Oogie.mp3</string>
<key>File Folder Count</key><integer>6</integer>
<key>Library Folder Count</key><integer>1</integer>
</dict>
</dict>
<key>Playlists</key>
<array>
<dict>
<key>Name</key><string>Short List (XML Test)</string>
<key>Description</key><string></string>
<key>Playlist ID</key><integer>2026728</integer>
<key>Playlist Persistent ID</key><string>C49DA89513E61CBD</string>
<key>All Items</key><true/>
<key>Playlist Items</key>
<array>
<dict>
<key>Track ID</key><integer>156289</integer>
</dict>
</array>
</dict>
</array>
</dict>
</plist>
A script could read through the XML reading one line at a time and export something like this:
156289=file://localhost/D:/iTunes/iTunes%20Media/Albums%20&%20Tracks/A/A%20Taste%20 Of%20Honey/Beauty%20&%20The%20Boogie/01%20Boogie%20Oogie%20Oogie.mp3
<NextID>=<NextPath>
or better yet
156289=D:\iTunes\iTunes Media\Albums & Tracks\A\A Taste Of Honey\Beauty & The Boogie\01 Boogie Oogie Oogie.mp3
<NextID>=<NextPath>
etc.
from the initial list of tracks. and then spit out
Short List (XML Test)
156289
<NextID>
etc.
for each embedded playlist. You could then import these sections into sheets in Excel and lookup the IDs to create a list of paths. In fact with a dictionary object I could do the lookups in the script.
Would that be the sort of thing that you want?
tt2