M3UFormatsComparison

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.

Updated June 11, 202612 min readTechnically reviewedby Alex Morgan
M3U vs XSPF vs ASX playlist format comparison

Quick Comparison Overview

FeatureM3U / M3U8XSPFASX
Format typePlain textXMLXML
File extension.m3u / .m3u8.xspf.asx / .wax / .wvx
EncodingAny (.m3u) / UTF-8 (.m3u8)UTF-8 requiredUTF-8 / Windows-1252
IPTV supportUniversal ✅Limited ⚠️None ❌
Metadata richnessModerateRich ✅Basic
VLC support
Winamp support
Browser supportLimitedGoodIE only (legacy)
ComplexitySimple ✅ComplexModerate
Current usageDominant ✅NicheLegacy ⚠️

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
playlist.m3uM3U format example
#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.ts

XSPF 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

ElementPurposeExample
<title>Track titleSong Name
<creator>Artist/authorArtist Name
<album>Album nameAlbum Title
<duration>Length in milliseconds235000 (3:55)
<location>File path or stream URLfile:///path/to/file.mp3
<image>Album art URLhttp://example.com/art.jpg
<info>Info page URLhttp://example.com/info
<annotation>Free-text commentAny 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
playlist.xspfXSPF format example
<?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
playlist.asxASX format example
<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

FormatExtensionCreated ByUse Case
PLS.plsNullsoftShoutcast/Winamp streams. Simple INI-style format. Widely supported but no IPTV use.
WPL.wplMicrosoftWindows Media Player 9+. XML format, replaces ASX for local playlists. Windows only.
CUE.cueVariousCD image metadata. Not a streaming playlist — describes track positions in a single audio file.
JSPF.jspfXiph.OrgJSON version of XSPF. Same metadata, JSON syntax. Used in web applications.
RSS (podcast).xml / .rssVariousPodcast feeds. Technically a playlist for audio episodes. Read by podcast apps.

Converting Between Playlist Formats

M3U to XSPF (via VLC)

  1. Open VLC → drag your .m3u file into VLC's playlist
  2. Go to File → Save Playlist to File
  3. In save dialog, change file type to XSPF playlist (*.xspf)
  4. Save — VLC converts all entries to XSPF format

XSPF to M3U (via VLC)

  1. Open VLC → drag your .xspf file into VLC's playlist
  2. Go to File → Save Playlist to File
  3. Change file type to M3U playlist (*.m3u)
  4. 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 #EXTINF title from each entry
  • Write XML structure with <track><title>...<location> elements
  • Libraries: use Python's built-in xml.etree.ElementTree for 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 CaseBest FormatReason
IPTV channelsM3U / M3U8Only format with universal IPTV player support
Live streamingM3U8HLS standard, supported everywhere
Music library (VLC)M3U or XSPFBoth work; XSPF if you want album art links
Web application playerXSPF or JSPFXML/JSON easy to parse in browsers
Windows Media PlayerASX or WPLNative Microsoft formats
Maximum compatibilityM3USupported by every media player ever made
Rich metadata neededXSPFArtist, album, artwork, info URLs all supported
Sharing with unknown recipientM3UGuaranteed 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.

Open M3U Tools

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.

Related Guides

Quick Reactions

Was this guide helpful?

Share this guide