Following up on my answer from Aug 2023, I've found a much better solution for backing up ALL my iTunes smart playlists, again based on Mark Miller's excellent response. This is basically a way to automate what Mark has notated without having to hunt and peck through all the playlists.
First use the iTunes Advanced option to "Share iTunes Library XML with other applications" which will get you an xml file with all tracks and playlists.
I'm using Notepad++ in windows for finding/replacing the text blocks, I'm sure there's a mac text editor with similar functionality.
- Use the following regex in the find with nothing in the replace to remove all the tracks from the Tracks section:
<key>Tracks</key>(.*?)<key>Playlists</key>
NOTE: You'll need to add back in the Playlists line after deleting all the tracks unless you have a better regex to find Tracks up to the "Playlists" section
- Use the following regex with a find/replace to remove the tracks from the actual smart playlists:
<key>Playlist Items(.*?)</array>
Make sure to select regex as the search mode and the option ". matches newline"
(My regex was not perfect so I needed to use the Notepad++ edit operation "Edit->Line Operations->Remove empty lines containing blank characters" to finish things up.)
That will delete all the tracks within a smart playlist. After all the tracks and playlist tracks are removed, you'll have an xml file that will only have the smart playlist definitions that you can import back into iTunes using the File->Library->Import Playlist option. My 67000+ track library file went from 115mb to 525kb.
Assuming you have re-imported all your tracks, then all the smart playlists will repopulate with the matching tracks.

BEFORE:
<dict>
<key>Playlist ID</key><integer>508503</integer>
<key>Parent Persistent ID</key><string>065740B95E8B8CC8</string>
<key>Playlist Persistent ID</key><string>A899C3701858BAFE</string>
<key>All Items</key><true/>
<key>Name</key><string>Latin Pop</string>
<key>Smart Info</key>
<data>
AQEAAwAAAAIAAAAZAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAA==
</data>
<key>Smart Criteria</key>
<data>
U0xzdAABAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAU0xzdAABAAEAAAACAAAAAQAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAADwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAB
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAg
AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANJTTHN0AAEAAQAAAAEAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAACAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAABIATABhAHQAaQBuACAAUABvAHA=
</data>
<key>Playlist Items</key>
<array>
<dict>
<key>Track ID</key><integer>87521</integer>
</dict>
[dozens or hundreds of Track IDs]
<dict>
<key>Track ID</key><integer>15353</integer>
</dict>
</array>
</dict>
<dict>
<key>Playlist ID</key><integer>2224854</integer>
<key>Parent Persistent ID</key><string>065740B95E8B8CC8</string>
<key>Playlist Persistent ID</key><string>A899C3701858BAFE</string>
<key>All Items</key><true/>
<key>Name</key><string>Latin Pop</string>
<key>Smart Info</key>
<data>
AQEAAwAAAAIAAAAZAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAA==
</data>
<key>Smart Criteria</key>
<data>
U0xzdAABAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAU0xzdAABAAEAAAACAAAAAQAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAADwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAB
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAg
AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANJTTHN0AAEAAQAAAAEAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAACAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAABIATABhAHQAaQBuACAAUABvAHA=
</data>
</dict>
xml
file only had the playlist information and worked brilliantly. Thanks! – Senseful Oct 29 '10 at 00:28