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
Your file is processed instantly and never stored on our servers.
Import a file from a URL
Paste a direct link to the file. We download it to our server and it is converted exactly like an upload.
How it works
-
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/3
Perform .xspf to .m3u8 conversion
After successful file upload, click to convert when you are ready.
-
3/3
Download converted .m3u8 file
Conversion result is ready to download.
How to convert xspf to m3u8 file
- Audio
- Rating: 1.0/5
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
- Open the XSPF-to-M3U8 converter on 101convert.com.
- Upload the
.xspffile. - Start the conversion and download the resulting
.m3u8file. - 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.mp3is a URI-style Windows reference, but some players expectC:\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.
| 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 |
Suggested software and links: xspf to m3u8 converters
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.