Convert xspf to pls

Free online XSPF to PLS converter

Convert XSPF XML playlists to PLS for older players, car stereos, and radio software.

Convert XSPF to PLS online - free

Uploading…
Selected files exceed the 6 MB total limit. Please select fewer or smaller files.

Your file is processed instantly and never stored on our servers.

How it works

  1. 1/3

    Upload your .xspf file

    Click to browse to select your file you want to convert or simply drag & drop your file into selected area.

  2. 2/3

    Perform .xspf to .pls conversion

    After successful file upload, click to convert when you are ready.

  3. 3/3

    Download converted .pls file

    Conversion result is ready to download.

How to convert xspf to pls file

  • Audio

An older media player, car stereo, internet-radio application, or streaming tool may require a PLS playlist instead of XSPF. Converting the file changes the playlist index and metadata representation; it does not copy, convert, or modify the referenced audio.

What the XSPF format is

XSPF (XML Shareable Playlist Format) is an XML playlist format used by media players and library applications such as VLC, Clementine, Strawberry, and Audacious. An .xspf file can store track locations plus fields such as title, creator, album, duration, track number, and application-specific metadata.

XSPF normally contains references rather than audio data. A <location> element may contain a local file URI, a relative path, or a web URL. The referenced files must remain available at compatible locations after conversion.

What the PLS format is

PLS is a small INI-style text playlist format supported by many older desktop players, car stereos, portable devices, and internet-radio programs. A standard PLS file contains a [playlist] section, numbered FileN entries, optional TitleN and LengthN values, NumberOfEntries, and Version=2.

PLS is easy to inspect and edit, and it can reference both local media and streams. Its standard fields are much less expressive than XSPF: album, creator, artwork, track number, genre, and custom metadata generally have no dedicated PLS equivalent. Conversion therefore preserves the playlist references but may discard metadata.

Convert with 101convert.com

For a no-install conversion, upload the XSPF file to the free converter on 101convert.com, choose PLS as the output format, and download the resulting file. Open the PLS file in the target application and test several entries, including at least one local file and one stream if both types are present.

Convert with a Python script

A script is useful when you need a repeatable local conversion or want to inspect the generated playlist. Save this as xspf_to_pls.py:

import sys
import xml.etree.ElementTree as ET

source, target = sys.argv[1], sys.argv[2]
root = ET.parse(source).getroot()
tracks = []

for track in root.findall('.//{*}track'):
    location = track.findtext('{*}location')
    if location and location.strip():
        tracks.append((track, location.strip()))

lines = ['[playlist]']
for number, (track, location) in enumerate(tracks, 1):
    location = location.replace('\r', ' ').replace('\n', ' ')
    title = (track.findtext('{*}title') or '').replace('\r', ' ').replace('\n', ' ')
    duration = track.findtext('{*}duration')
    try:
        length = str(int(duration.strip()) // 1000) if duration else '-1'
    except (AttributeError, ValueError):
        length = '-1'
    lines.append(f'File{number}={location}')
    if title:
        lines.append(f'Title{number}={title}')
    lines.append(f'Length{number}={length}')

lines.append(f'NumberOfEntries={len(tracks)}')
lines.append('Version=2')
with open(target, 'w', encoding='utf-8', newline='\n') as output:
    output.write('\n'.join(lines) + '\n')

Run it from a terminal with:

python xspf_to_pls.py input.xspf output.pls

The script uses only Python’s standard library. It preserves the order of tracks, locations, titles, and known durations, while omitting XSPF tracks that have no location. XSPF durations are normally milliseconds; PLS LengthN values are whole seconds, so fractional seconds are truncated and unknown durations become -1.

Use a desktop media player

Some VLC versions can export a loaded playlist through Media → Save Playlist to File. Open the XSPF playlist, choose that command, select PLS if it appears in the format list, and save with a .pls extension. VLC’s available export formats vary by version, so use the script or 101convert.com if PLS is not offered; VLC’s normal media conversion command is for audio or video transcoding, not playlist-format conversion.

Compatibility limitations

  • PLS stores references, not media. Moving the PLS file can break relative paths, and moving the audio files can break absolute paths.
  • A player may accept web URLs but reject local file:// URIs, or accept ordinary operating-system paths but reject URI encoding. If local entries fail, replace each URI with the path syntax required by that player.
  • Spaces and non-ASCII characters are handled inconsistently by older PLS software. UTF-8 output works in many current applications, while some older Windows programs expect the system code page.
  • Standard PLS has no reliable fields for most XSPF metadata beyond title and duration. Album, creator, artwork, track number, and custom fields may be lost; the audio files themselves are unchanged.
  • Test the generated file in the exact device or application that requires PLS, because PLS support and path parsing are not uniform across players.

XSPF vs PLS: format comparison

How the XSPF and PLS formats compare on the properties that matter most for this conversion.

Comparison of the XSPF and PLS file formats
Property .XSPF XML Shareable Playlist Format .PLS PLS Playlist
Compression Uncompressed Uncompressed
Metadata support Extensive Basic
Streaming Partial Yes
DRM protection No DRM No DRM
Opens in a web browser Partial No
Typical file size Very small Very small
Open standard Yes Partly open
Best used for Music Music
Introduced 2004 1999
Developer XSPF Project Nullsoft
MIME type application/xspf+xml audio/x-scpls

The database currently does not contain any direct xspf file converter links.

Frequently asked questions

Is the XSPF to PLS converter free?

Yes, converting XSPF to PLS on 101convert.com is completely free. No registration, email address or installation is required. If you need a higher file size limit or want to convert more files at once, see our plans.

How large can my XSPF file be?

You can upload XSPF files up to 2 MB and convert up to 100 files at once in a single batch.

What happens to my uploaded files?

Files are processed automatically and deleted from our servers within a few minutes after conversion. We never view or share your files.

Do I need to install any software to convert XSPF to PLS?

No. The XSPF to PLS conversion runs entirely online in your browser and works on Windows, Mac, Linux, Android and iPhone.

Did the conversion fail?

In most cases, the cause is an incorrect file format. Please upload a valid XSPF file for this XSPF to PLS conversion. Occasionally, the issue may be on our side. We analyze recurring conversion failures and disable or fix the converter if we detect a defect.

Additional formats for
xspf file conversion

Reverse conversion

Convert to pls from
other formats

Share on social media: