Convert xspf to m3u8

Free online XSPF to M3U8 converter

Convert XML-based XSPF playlists into UTF-8 M3U8 files for compatible players and devices.

Convert XSPF to M3U8 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 .m3u8 conversion

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

  3. 3/3

    Download converted .m3u8 file

    Conversion result is ready to download.

How to convert xspf to m3u8 file

  • Audio

A media player, smart-TV app, or streaming tool may require an .m3u8 playlist when another application has exported an .xspf file. The conversion changes the playlist format only; it does not copy, embed, or re-encode the referenced audio and video.

What the XSPF format is

XSPF (XML Shareable Playlist Format) is an XML playlist format used by media players and music-library applications. A track can contain a local path or URL in <location>, plus metadata such as <title>, <creator>, <album>, <duration>, and track number. The XSPF file stores references and metadata; it does not contain the media.

VLC media player, Clementine, Audacious, and other players can open or export XSPF playlists. XSPF is commonly used for sharing playlist structure, moving a playlist between applications, and backing up library metadata.

What the M3U8 format is

M3U8 is a plain-text M3U playlist saved with UTF-8 encoding. Entries can be local filenames, file URIs, or network URLs. An extended playlist may begin with #EXTM3U and place track information in #EXTINF lines before each media reference.

UTF-8 makes M3U8 better suited than older system-encoded M3U files for filenames containing characters outside basic ASCII. M3U8 is supported by many desktop players, media servers, smart TVs, mobile apps, and streaming tools, although support for local paths, file URIs, and extended metadata varies.

The .m3u8 extension is also used for HTTP Live Streaming manifests. A regular playlist converted from XSPF is not automatically an HLS manifest: it lists complete media files, while an HLS manifest normally contains directives such as #EXT-X-TARGETDURATION and references segmented media.

How to convert the playlist

Use 101convert.com

  1. Open the XSPF-to-M3U8 converter on 101convert.com.
  2. Upload the .xspf file.
  3. Start the conversion and download the resulting .m3u8 file.
  4. Open the output in the destination player and test several local entries and URLs.

The service converts playlist data and does not make unavailable media available. Referenced files must remain at accessible paths, and URLs must still work without expired sessions or required authentication. You can convert the file on 101convert.com for free without installing software.

Export from desktop software

Some desktop players can import an XSPF playlist and export it as M3U or M3U8. In VLC, open the playlist, then use Media → Save Playlist to File; select an M3U-compatible format if the installed version offers that choice, and save the result with UTF-8 encoding when available. Menu names and encoding options differ between applications and versions, so verify the output in a text editor before using it.

Create a simple M3U8 file manually

For a short playlist, extract each XSPF <location> value and save a UTF-8 text file named playlist.m3u8. Add optional title and duration data as follows:

#EXTM3U
#EXTINF:245,Track title
https://example.com/audio/track.mp3
#EXTINF:-1,Another track
file:///Music/another-track.flac

XSPF durations are milliseconds; divide by 1,000 and use whole seconds for #EXTINF. Use -1 when no duration is available. The text after the comma is display metadata and is not required for playback. Keep #EXTM3U as the first line.

Automate repeat conversions with Python

This script reads standard XSPF XML, preserves each track location, and writes UTF-8 M3U8 output:

import sys
import xml.etree.ElementTree as ET

source, target = sys.argv[1], sys.argv[2]
root = ET.parse(source).getroot()
ns = {"x": "http://xspf.org/ns/0/"}
lines = ["#EXTM3U"]

for track in root.findall(".//x:track", ns):
    location = track.findtext("x:location", default="", namespaces=ns).strip()
    if not location:
        continue
    title = track.findtext("x:title", default="", namespaces=ns).strip()
    duration = track.findtext("x:duration", default="", namespaces=ns).strip()
    seconds = str(round(int(duration) / 1000)) if duration.isdigit() else "-1"
    lines.extend([f"#EXTINF:{seconds},{title}", location])

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_m3u8.py input.xspf output.m3u8

The script skips tracks without <location>. It retains titles and durations but does not retain XSPF fields such as album, creator, annotation, or track number. It also does not resolve XML base attributes or repair invalid paths.

Compatibility limitations

  • Do not rename the extension. Renaming an XSPF file leaves XML markup that M3U8 players cannot parse.
  • Relative locations may fail after the playlist is moved. Keep the M3U8 file in the expected directory or replace relative references with correct absolute paths or URLs.
  • file:///C:/Music/song.mp3 is a URI-style Windows reference, but some players expect C:\Music\song.mp3. Edit the entry if the target application does not resolve file URIs.
  • Conversion does not preserve all XSPF metadata, and M3U8 has no universal metadata model beyond commonly supported directives such as #EXTINF.
  • Save the output as UTF-8 to preserve non-ASCII filenames. Garbled names indicate an encoding or player-compatibility problem, not a change in media quality.
  • Playback still depends on permissions, mounted drives, network access, URL validity, and any authentication required by the referenced media.

XSPF vs M3U8: format comparison

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

Comparison of the XSPF and M3U8 file formats
Property .XSPF XML Shareable Playlist Format .M3U8 HTTP Live Streaming playlist
Compression Uncompressed Uncompressed
Metadata support Extensive Basic
Streaming Partial Yes
DRM protection No DRM Optional
Opens in a web browser Partial No
Typical file size Very small Very small
Open standard Yes Partly open
Best used for Music Streaming
Introduced 2004 2009
Developer XSPF Project Apple Inc.
MIME type application/xspf+xml application/vnd.apple.mpegurl

Frequently asked questions

Is the XSPF to M3U8 converter free?

Yes, converting XSPF to M3U8 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 M3U8?

No. The XSPF to M3U8 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 M3U8 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 m3u8 from
other formats

Share on social media: