M3U vs XSPF vs ASX: Playlist Format Comparison Guide
Not all playlist formats are equal. M3U, XSPF, and ASX are three different approaches to the same problem — listing media files for playback — but they have very different syntax, compatibility, and use cases. This complete comparison explains each format's structure, strengths, weaknesses, and exactly when to use each one, with working code examples and conversion methods.

Quick Comparison Overview
| Feature | M3U / M3U8 | XSPF | ASX |
|---|---|---|---|
| Format type | Plain text | XML | XML |
| File extension | .m3u / .m3u8 | .xspf | .asx / .wax / .wvx |
| Encoding | Any (.m3u) / UTF-8 (.m3u8) | UTF-8 required | UTF-8 / Windows-1252 |
| IPTV support | Universal ✅ | Limited ⚠️ | None ❌ |
| Metadata richness | Moderate | Rich ✅ | Basic |
| VLC support | ✅ | ✅ | ✅ |
| Winamp support | ✅ | ❌ | ❌ |
| Browser support | Limited | Good | IE only (legacy) |
| Complexity | Simple ✅ | Complex | Moderate |
| Current usage | Dominant ✅ | Niche | Legacy ⚠️ |
M3U Format In Depth
M3U (Moving Picture Experts Group Audio Layer 3 URL) was originally created by Nullsoft for Winamp in the late 1990s. Its simplicity — plain text, one URL per line — made it universally adopted. The extended M3U format added #EXTINFmetadata tags that are now the standard for IPTV playlists worldwide.
Key characteristics
- Plain text — readable and editable in any text editor
- Minimal syntax — easy to generate programmatically
- IPTV extensions — tvg-id, tvg-logo, group-title attributes unique to M3U
- Two variants —
.m3u(system encoding) and.m3u8(explicit UTF-8) - Universal IPTV support — every IPTV player ever made supports M3U
When to use M3U
- ✅ IPTV playlists — only format with full IPTV player support
- ✅ Sharing playlists with unknown recipients — highest compatibility
- ✅ Quick playlist creation — easiest format to write manually
- ✅ Large playlists — minimal overhead per entry
- ✅ HLS streaming (M3U8 variant) — used by Apple HLS protocol
#EXTM3U
#EXTINF:235,Artist Name - Song Title
C:\Music\song.mp3
#EXTINF:-1 tvg-id="bbc1.uk" tvg-name="BBC One" tvg-logo="http://example.com/bbc.png" group-title="UK",BBC One HD
http://stream.example.com/bbc1.tsXSPF Format In Depth
XSPF (XML Shareable Playlist Format, pronounced "spiff") was developed by the Xiph.Org Foundation and standardized in 2004. It's built on XML and designed for rich metadata and web application integration.
Key characteristics
- XML-based — strict, validated, extensible
- Rich metadata — title, creator, album, annotation, artwork, info URL per track
- Duration in milliseconds — more precise than M3U's seconds
- Link elements — can include hyperlinks to related content
- Open standard — well-documented specification at xspf.org
XSPF metadata fields
| Element | Purpose | Example |
|---|---|---|
<title> | Track title | Song Name |
<creator> | Artist/author | Artist Name |
<album> | Album name | Album Title |
<duration> | Length in milliseconds | 235000 (3:55) |
<location> | File path or stream URL | file:///path/to/file.mp3 |
<image> | Album art URL | http://example.com/art.jpg |
<info> | Info page URL | http://example.com/info |
<annotation> | Free-text comment | Any descriptive text |
When to use XSPF
- ✅ Web applications — good JavaScript XML parsing support
- ✅ Rich metadata requirements — album art, artist info, hyperlinks
- ✅ VLC-to-VLC sharing — both sides use VLC which handles XSPF natively
- ❌ IPTV — not supported by most IPTV players
- ❌ Maximum compatibility — fewer players support it than M3U
<?xml version="1.0" encoding="UTF-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
<trackList>
<track>
<title>Artist Name - Song Title</title>
<creator>Artist Name</creator>
<album>Album Name</album>
<duration>235000</duration>
<location>file:///C:/Music/song.mp3</location>
<image>http://example.com/album-art.jpg</image>
<info>http://example.com/song-info</info>
</track>
</trackList>
</playlist>ASX Format In Depth
ASX (Advanced Stream Redirector, also called Windows Media Redirector) is Microsoft's XML-based playlist format for Windows Media Player. Introduced with Windows Media Player 6.4, it was widely used in the 2000s for Windows Media streaming content.
Key characteristics
- Microsoft proprietary XML — designed specifically for Windows Media Player
- Streaming-oriented — supports Windows Media streaming protocol (MMS)
- Entry metadata — title, author, copyright, more info URL per entry
- Repeat/shuffle — playlist-level playback control attributes
- Event support — can trigger events at specific timecodes (used for ads)
When to use ASX
- ⚠️ Legacy Windows Media Player content — if you have old .asx files, they still work in WMP
- ✅ Windows Media Player specific playlists — if WMP is your only player
- ❌ IPTV — zero IPTV app support
- ❌ Modern cross-platform use — limited player support
- ❌ New projects — use M3U or XSPF instead
<ASX version="3.0">
<Title>My Playlist</Title>
<Entry>
<Title>Song Title</Title>
<Author>Artist Name</Author>
<Ref href="C:\Music\song.mp3"/>
<MoreInfo href="http://example.com/info"/>
</Entry>
<Entry>
<Title>Live Stream</Title>
<Ref href="http://stream.example.com/live.asf"/>
</Entry>
</ASX>Other Playlist Formats Worth Knowing
| Format | Extension | Created By | Use Case |
|---|---|---|---|
| PLS | .pls | Nullsoft | Shoutcast/Winamp streams. Simple INI-style format. Widely supported but no IPTV use. |
| WPL | .wpl | Microsoft | Windows Media Player 9+. XML format, replaces ASX for local playlists. Windows only. |
| CUE | .cue | Various | CD image metadata. Not a streaming playlist — describes track positions in a single audio file. |
| JSPF | .jspf | Xiph.Org | JSON version of XSPF. Same metadata, JSON syntax. Used in web applications. |
| RSS (podcast) | .xml / .rss | Various | Podcast feeds. Technically a playlist for audio episodes. Read by podcast apps. |
Converting Between Playlist Formats
M3U to XSPF (via VLC)
- Open VLC → drag your .m3u file into VLC's playlist
- Go to File → Save Playlist to File
- In save dialog, change file type to XSPF playlist (*.xspf)
- Save — VLC converts all entries to XSPF format
XSPF to M3U (via VLC)
- Open VLC → drag your .xspf file into VLC's playlist
- Go to File → Save Playlist to File
- Change file type to M3U playlist (*.m3u)
- Save — note that XSPF's richer metadata is reduced to M3U's simpler structure
M3U to XSPF (programmatic)
For bulk conversion or automation, Python can parse M3U and generate XSPF:
- Read M3U file line by line
- Extract
#EXTINFtitle from each entry - Write XML structure with
<track><title>...<location>elements - Libraries: use Python's built-in
xml.etree.ElementTreefor XSPF generation
The M3U Converter tool on this site handles format conversion directly in your browser without writing code.
Which Format Should You Use?
| Use Case | Best Format | Reason |
|---|---|---|
| IPTV channels | M3U / M3U8 | Only format with universal IPTV player support |
| Live streaming | M3U8 | HLS standard, supported everywhere |
| Music library (VLC) | M3U or XSPF | Both work; XSPF if you want album art links |
| Web application player | XSPF or JSPF | XML/JSON easy to parse in browsers |
| Windows Media Player | ASX or WPL | Native Microsoft formats |
| Maximum compatibility | M3U | Supported by every media player ever made |
| Rich metadata needed | XSPF | Artist, album, artwork, info URLs all supported |
| Sharing with unknown recipient | M3U | Guaranteed they have a compatible player |
Bottom line: Unless you have a specific reason to use XSPF (web app integration, rich metadata) or ASX (legacy Windows Media compatibility), use M3U. It's the most supported, most compatible, and simplest format available. For any IPTV use case, M3U is the only realistic choice.
Working with M3U playlists?
Validate, edit, merge, and convert M3U playlists with our free browser-based tools. No upload required.
What is the difference between M3U, XSPF, and ASX?
M3U is a simple plain-text format using #EXTINF tags — the universal standard for IPTV. XSPF is an XML-based format with richer metadata support but less compatibility. ASX is Microsoft's XML format for Windows Media Player, now largely legacy.
Which playlist format is best for IPTV?
M3U is by far the best format for IPTV. All IPTV apps (TiviMate, IPTV Smarters, Perfect Player, Kodi) natively support M3U. No other playlist format has comparable IPTV player support.
Does VLC support all three formats?
Yes. VLC Media Player supports M3U, XSPF, and ASX natively. You can open any of these formats via File → Open File or drag-and-drop. VLC can also export playlists in M3U, XSPF, and other formats.
Can I convert M3U to XSPF?
Yes. In VLC: open your M3U → File → Save Playlist to File → choose XSPF format. You can also use Python or online converters. The M3U Converter tool on this site supports multiple output formats.
Is ASX still used today?
Rarely. ASX was Microsoft's format for Windows Media Player, which has been largely discontinued. ASX files still work in Windows Media Player but for modern use cases, M3U or XSPF are better choices.
What is XSPF used for?
XSPF is used for web-based media players and applications that need structured playlist data with rich metadata (title, creator, album, annotation, info URL). It's supported by VLC and some web players but less popular than M3U.
Which format should I use for sharing playlists?
For IPTV and streaming: always use M3U. For local music collections: M3U or XSPF both work in VLC. For maximum compatibility across the most software: M3U wins every time.
Conclusion
The playlist format landscape is dominated by M3U for good reason — its simplicity, universal compatibility, and IPTV-specific extensions make it the clear winner for any streaming use case. XSPF offers richer metadata for applications that need it, while ASX remains a legacy format primarily useful for Windows Media Player compatibility.
For IPTV users: always use M3U. For web developers building custom media players: consider XSPF or JSON-based JSPF. For everyone else: M3U's combination of simplicity and universal support means you'll rarely need anything else. The M3U format's 25+ year history and continued adoption in modern IPTV systems confirms it as the long-term standard for playlist management.
Quick Reactions
Was this guide helpful?