Importing Winamp playlists into Audacious

The Winamp media player was developed to run on Microsoft Windows operating systems. The last stable release of the software was released about three years ago on April 26, 2023. If you need a native Linux alternative to Winamp, Audacious is a free and open-source audio player that has a GTK-based interfrace (GTKUI),but which can also be configured with a Winamp-like interface and which supports Winamp 2 skins, i.e., Winamp .wsz files (a type of ZIP archive file). You can also migrate Winamp playlists into Audacious; it supports the standard .m3u and .m3u8 playlist formats, though you will need to modify the Windows-style file paths to be Linux-style file paths. To use Winamp playlists on a Linux system, such as an Ubuntu system, you can take the following steps.

  1. Locate your Winamp playlists, which are .m3u or .m3u8 files typically located in C:\Users\username\AppData\Roaming\Winamp\Plugins\ml\playlists where username is the relevant username. You can view the contents of that directory from a command prompt window using the command dir %appdata%\Winamp\plugins\ml\playlists since %appdata% is an environment variable pointing to the account's AppData\Roaming directory.

    C:\>dir %appdata%\Winamp\plugins\ml\playlists
     Volume in drive C is Windows
     Volume Serial Number is A895-0ACC
    
     Directory of C:\Users\Alice\AppData\Roaming\Winamp\plugins\ml\playlists
    
    07/19/2026  02:21 PM    <DIR>          .
    07/03/2026  10:34 PM    <DIR>          ..
    07/03/2026  10:34 PM             9,646 playlists.xml
    02/11/2025  03:00 PM             9,646 playlists.xml.backup
    08/08/2024  04:00 PM            58,437 plf131A.m3u8
    08/06/2024  07:03 PM             2,564 plf1519.m3u8
    08/06/2024  07:03 PM             1,483 plf1627.m3u8
    08/06/2024  07:03 PM            43,665 plf1A4A.m3u8
    08/06/2024  07:03 PM            15,625 plf2D0E.m3u8
    08/06/2024  07:03 PM            16,007 plf3220.m3u8
    08/06/2024  07:03 PM             2,601 plf3263.m3u8
    02/02/2025  12:30 PM            11,266 plf32F9.m3u8
    10/25/2024  12:17 PM            17,782 plf3EF4.m3u8
    08/06/2024  07:03 PM             2,445 plf4C34.m3u8
    08/06/2024  07:03 PM             2,302 plf50FA.m3u8
    01/20/2025  02:33 PM            25,682 plf5129.m3u8
    08/06/2024  07:03 PM             2,040 plf5379.m3u8
    08/06/2024  07:03 PM             5,641 plf5A14.m3u8
    08/06/2024  07:03 PM             7,107 plf5D2B.m3u8
    08/06/2024  07:03 PM             8,305 plf68B.m3u8
    08/06/2024  07:03 PM            90,547 plf6A07.m3u8
    08/06/2024  07:03 PM            40,885 plf6DAE.m3u8
    08/06/2024  07:03 PM            98,368 plf781F.m3u8
    08/06/2024  07:03 PM             1,705 plf7AB5.m3u8
    08/06/2024  07:03 PM             4,542 plf7C62.m3u8
    08/06/2024  07:03 PM            42,747 plf7CFD.m3u8
    08/06/2024  07:03 PM            32,743 plf8064.m3u8
    08/06/2024  07:03 PM            20,608 plf9B16.m3u8
    09/02/2024  02:18 PM             7,444 plf9C2D.m3u8
    08/06/2024  07:03 PM             2,492 plfA411.m3u8
    08/06/2024  07:03 PM             8,737 plfA68.m3u8
    08/06/2024  07:03 PM            58,739 plfA711.m3u8
    08/06/2024  07:03 PM             9,610 plfB10F.m3u8
    04/23/2025  12:19 PM             2,547 plfB658.m3u8
    08/06/2024  07:03 PM             1,033 plfBC24.m3u8
    08/06/2024  07:03 PM            49,611 plfBD93.m3u8
    08/06/2024  07:03 PM            16,137 plfE276.m3u8
    08/06/2024  07:03 PM             3,262 plfE918.m3u8
    08/06/2024  07:03 PM             3,254 plfEC56.m3u8
                  37 File(s)        737,255 bytes
                   2 Dir(s)  4,106,287,661,056 bytes free
    
    C:\>

    A list of the playlists is contained in the playlists XML file. In that file, which can be viewed in a text editor such as the Windows Notepad, you will see data like the following:

    <?xml version="1.0" encoding="UTF-16"?>
    <playlists playlists="35">
    <playlist filename="plf8064.m3u8" title="Moonzic (Top Favorite Mix)" id="{8B45286F-9CF9-4A14-9045-F27EDC1ED72B}" songs="217" seconds="0"/>

    The first line above shows the version of XML in use is 1.0 and the character encoding is UTF-16. The next lines shows that, in this case, there are 35 playlists. The next line shows the filename of 1 of the 35 playlists and the title for the playlist in Winamp.

  2. If the music files, e.g., the .mp3 files referenced in the playlists are not accessible from the Linux system, copy them to a location that is accessible from the Linux system. If you preserve a similar folder structure, if you need to copy or move the files, editing the playlists files will be easier. E.g., if the Winamp playlists contain paths like:

    C:\Users\Alice\Music\Artist\Album\song.mp3

    You could have a similar folder structure on Linux like the following:

    /home/alice/Music/Artist/Album/song.mp3

  3. Edit the playlists files. You could use a global find and replace function in a text editor or you could update all of the files at once with sed (short for stream editor), which you can run from a Terminal window. Sed will likely already be present on a Linux system. You can verify that by using the which command, i.e., which sed, which will show you the location of the program, if it is present. Sed is also available for Microsoft Windows systems at sed for Windows. A sed command like the one below, if executed from the directory where the playlist files are located, could be made to make the needed changes if the the Windows and Linux file paths were like the ones above.

    sed -i 's|C:\\Users\\Alice|/home/alice|g; s|\\|/|g' *.m3u8

  4. After updating the .m3u8 files, within Audacious, click on Playlist and select Import.

    Audacious - Import Playlist

  5. Navigate to the location of the playlist then select one by clicking on it and then click on the Import button. When it has been imported, you will see a list like the one below.

    Audacious - Playlist Imported

  6. The playlist name, e.g., plf68B in the example below, will match the filename for the .m3u/.m3u8 file. You can rename it to match the name for the playlist in Winamp by opening the Winamp playlists.xml file, which will be in the same directory as the playlist .m3u8 files, in a text editor or web browser and looking for the corresponding entry, e.g.:

    <playlist filename="plf68B.m3u8" title="Disney Classic Tunes" id="{AAD2A93E-93E9-442B-B24C-88D0BFBB4607}" songs="44" seconds="8231"/>

    Right-click on the playlist name in Audacious and choose Rename.

    Audacious - Rename Playlist

After I imported a Winamp playlist into Audacious, I immediately saw an Error window open filled with "Error playing file:////media/filepath/song.mp3: No such file or directory" entries for every file in the playlist. All of the MP3 files in the playlist were on an external USB-connected drive. I suspected the problem was due to Audacious not having access the the /media directory beneath which the USB drives attached to the system were mounted, though I later realized I also made a typo in the sed command. Audacious was installed as a Snap package. Snap packages run in a container that has limited access to the host system. Access to the sandbox in which an application is run is controlled through interfaces. So I checked the permitted connections for Audacious with snap connections audacious.

alice@Wonderland:~/Documents/playlists$ snap connections audacious
Interface               Plug                              Slot                            Notes
audio-playback          audacious:audio-playback          :audio-playback                 -
content[gnome-46-2404]  audacious:gnome-46-2404           gnome-46-2404:gnome-46-2404     -
content[gpu-2404]       audacious:gpu-2404                mesa-2404:gpu-2404              -
content[gtk-3-themes]   audacious:gtk-3-themes            gtk-common-themes:gtk-3-themes  -
content[icon-themes]    audacious:icon-themes             gtk-common-themes:icon-themes   -
content[sound-themes]   audacious:sound-themes            gtk-common-themes:sound-themes  -
dbus                    -                                 audacious:audacious             -
desktop                 audacious:desktop                 :desktop                        -
desktop-legacy          audacious:desktop-legacy          :desktop-legacy                 -
gsettings               audacious:gsettings               :gsettings                      -
home                    audacious:home                    :home                           -
mpris                   -                                 audacious:mpris                 -
network                 audacious:network                 :network                        -
network-bind            audacious:network-bind            :network-bind                   -
network-status          audacious:network-status          :network-status                 -
opengl                  audacious:opengl                  :opengl                         -
removable-media         audacious:removable-media         -                               -
screen-inhibit-control  audacious:screen-inhibit-control  :screen-inhibit-control         -
unity7                  audacious:unity7                  :unity7                         -
wayland                 audacious:wayland                 :wayland                        -
x11                     audacious:x11                     :x11                            -
alice@Wonderland:~/Documents/playlists$ 

If a connection is permitted for an interface, there should be an entry other than a dash in the slot field. Since I saw the dash in the slot field for removable-media, I could see that Audacious had not been granted access to the /media directory and directories beneath it. To correct the problem, I issued the command sudo snap connect audacious:removable-media.

alice@Wonderland:~$ sudo snap connect audacious:removable-media
[sudo: authenticate] Password: 
alice@Wonderland:~$ snap connections audacious | grep 'removable-media'
removable-media         audacious:removable-media         :removable-media                manual
alice@Wonderland:~$ 

I then closed and reopened Audacious. But the problem remained the same. To try to figure out why the problem was occurring, I created a new playlist in Audacious by clicking on New Playlist and adding songs to it by clicking on the plus sign (+) below the menu bar. When I checked online on where Audacious stores its playlists, I saw that ~/.config/audacious/playlists/ was listed as the directory where the playlists were stored. However, that is not the location used by Audacious when it is installed as a Snap package. Instead, the playlists are in the snap/audacious/current/.config/audacious/playlists directory under the user's home directory.

alice@Wonderland:~$ ls ~/snap/audacious/current/.config/audacious/playlists
1002.audpl  1003.audpl  order
alice@Wonderland:~$ 

The .audpl files are text files that can be edited or viewed in a text editor. The order file is also a text file that can be viewed or edited in a text editor. In the case above, there was one line in the file:

1002 1003

When I compared the contents of 1002.audpl and 1003.audpl. I saw that all of the files in the 1002.audpl playlist were prefixed with uri=file:///media as were those in 1003.audpl, but in the 1002.audpl file the at sign (@) in the file path was replaced with %40, e.g, uri=file:///media/alice%40Wonderland/Music/Mp3s.... In a file path or URL, %40 is the percent-encoded, aka URL-encoded, representation of the @ symbol. The @ symbol is considered a reserved character in URLs and some file-handling systems. Using %40 ensures the character is treated as part of the filename or path rather than being misinterpreted as a special command or delimiter. In both files, spaces in the file paths and song names were replaced by %20, which is the URL-encoded representation for a space. I then noticed that the imported playlist had %28 and %29 for the parentheses characters, "(" and ")" whereas if I imported a song with parentheses in the name of the song by creating a new playlist and clicking on the "+" to add a song to that playlist, the entry in that playlist, 1003.audpl, the parentheses were represented by "(" and ")". I subsequently realized that wasn't the source of the problem, which was, instead, caused by a typo I made when replacing the file path with a sed command and that the replacement of the characters with URL-encoded equivalents does not pose a problem when using imported playlists.

For multiple Winamp playlists, you can follow the same procedure to import playlists and rename them to match the original names. If you have a lot of playlists, like my wife, you may prefer a more automated process for renaming the Winamp playlists based on the title for the playlist in the .m3u8 . Below is a simple Python script that you can use to rename all of the playlist files based on the title for the playlist in the file. Save the code in a file with a .py file extension. If you have Python installed, you can then run it with python3 filename.py.

# Rename Winamp playlists for Auacious

import os
import xml.etree.ElementTree as ET

playlist_dir = "/path/to/your/m3u8_files"    # Replace with the location of files
xml_file = "/path/to/playlists.xml"          # Replace with the location of file

tree = ET.parse(xml_file)
root = tree.getroot()

for playlist in root.findall(".//playlist"):
    filename = playlist.get("filename")  # e.g. "MyList.m3u8"
    title = playlist.get("title")        # e.g. "My Favorite Songs"

    if not filename or not title:
        continue

    old_path = os.path.join(playlist_dir, filename)
    
    # Clean title for filesystem use
    safe_title = "".join(c for c in title if c not in r'\/:*?"<>|')
    new_filename = safe_title + ".m3u8"
    new_path = os.path.join(playlist_dir, new_filename)

    if os.path.exists(old_path):
        print(f"Renaming: {filename} → {new_filename}")
        os.rename(old_path, new_path)
    else:
        print(f"Missing: {filename}")

The above program, renameWinampPlaylist-Abs.py requires that you specify the absolute path to files. If you prefer to use a relative path, i.e., a filepath relative to the user's home directory, you can use the Python code below, renameWinampPlaylist.py instead, which also allows you to place the renamed files in a different directory.

# Rename Winamp playlists for Auacious

import os
import xml.etree.ElementTree as ET
from pathlib import Path

home_dir = Path.home()
playlist_dir = home_dir / "Documents/playlists"           # Replace with your path
new_playlist_dir = home_dir / "Documents/newplaylists"    # Replace with your path
xml_file = home_dir / "Documents/playlists/playlists.xml" # Replace with your path

tree = ET.parse(xml_file)
root = tree.getroot()

for playlist in root.findall(".//playlist"):
    filename = playlist.get("filename")  # e.g. "MyList.m3u8"
    title = playlist.get("title")        # e.g. "My Favorite Songs"

    if not filename or not title:
        continue

    old_path = os.path.join(playlist_dir, filename)
    
    # Clean title for filesystem use
    safe_title = "".join(c for c in title if c not in r'\/:*?"<>|')
    new_filename = safe_title + ".m3u8"
    new_path = os.path.join(new_playlist_dir, new_filename)

    if os.path.exists(old_path):
        print(f"Renaming: {filename} → {new_filename}")
        os.rename(old_path, new_path)
    else:
        print(f"Missing: {filename}")

E.g.:

alice@Wonderland:~/Documents$ python3 ./renameWinampPlaylist.py 
Renaming: plf8064.m3u8 → Moonzic (Top Favorite Mix).m3u8
Renaming: plf131A.m3u8 → Ultimate Winter Vibe (Mega Mix).m3u8
Renaming: plf1519.m3u8 → Jazz.m3u8
Renaming: plfB658.m3u8 → K-Pop.m3u8
Renaming: plf9C2D.m3u8 → Faerie Whims (Mega Mix).m3u8
Renaming: plfA411.m3u8 → Unicorn Mix.m3u8
Renaming: plfEC56.m3u8 → Jazz.m3u8
Renaming: plf32F9.m3u8 → Funny.m3u8
Renaming: plf3263.m3u8 → Golden Oldies.m3u8
Renaming: plf4C34.m3u8 → Pop.m3u8
Renaming: plfE918.m3u8 → Classical.m3u8
Renaming: plf7AB5.m3u8 → Nostalgic.m3u8
Renaming: plf50FA.m3u8 → Classic Rock.m3u8
Renaming: plf1627.m3u8 → Country.m3u8
Renaming: plf781F.m3u8 → Alternative (Mega Mix).m3u8
Renaming: plfA711.m3u8 → Celtic Moods (Mega Mix).m3u8
Renaming: plf9B16.m3u8 → Bubblegum Pop (Mega Mix).m3u8
Renaming: plf5379.m3u8 → Dancin' Groove (Mega Mix).m3u8
Renaming: plf68B.m3u8 → Disney Classic Tunes.m3u8
Renaming: plfB10F.m3u8 → Winnie the Pooh Vault.m3u8
Renaming: plf3220.m3u8 → Anime & J-Pop.m3u8
Renaming: plfE276.m3u8 → Kickin Country Jam.m3u8
Renaming: plfBC24.m3u8 → 60s.m3u8
Renaming: plf2D0E.m3u8 → 70s.m3u8
Renaming: plf7CFD.m3u8 → 80s.m3u8
Renaming: plfA68.m3u8 → Oldies.m3u8
Renaming: plf5D2B.m3u8 → Goofy Tunes.m3u8
Renaming: plf6DAE.m3u8 → Season Spring.m3u8
Renaming: plfBD93.m3u8 → Season Summer.m3u8
Renaming: plf1A4A.m3u8 → Season Autumn.m3u8
Renaming: plf5129.m3u8 → Season Winter.m3u8
Renaming: plf3EF4.m3u8 → Holiday Ultimate Halloween Crypt (Mega Mix).m3u8
Renaming: plf6A07.m3u8 → Holiday Ultimate Festive Christmas (Mega Mix).m3u8
Renaming: plf5A14.m3u8 → Holiday Yuletide Delight.m3u8
Renaming: plf7C62.m3u8 → Scooby Snack Tracks.m3u8
alice@Wonderland:~/Documents$ 

Once you have renamed the files, you can import the playlists into Audacious by selecting Playlist, then Import, then select the playlist and click on Import to add it to Audacious' list of playlists. You won't have to rename the playlists, since that was done through the Python program. When you are importing playlists, the one to be imported will be placed in the list after the one that is currently selected when you go through the import process.

Audacious Playlists

Related articles:

  1. Moving WinAmp Playlists from One Computer to Another
    Date: January 15, 2008
  2. Transferring Winamp Settings Between Systems
    Date: June 27, 2009
  3. Transferring Winamp 5.572 Info to Another PC