Skip to main content
Version: 2.2.5

Playlist parsers

Liquidsoap supports various playlists formats. Those formats can be used for playlist sources, input.http streams and manually using request.create.

Supported formats​

Most supported playlists format are strict, which means that the decoder can be sure that is has found a correct playlist for that format. Some other format, such as m3u, however, may cause false positive detections.

All formats are identified by their mime-type or content-type. Supported formats are the following:

  • Text formats:

    • audio/x-scpls: PLS format, strict
    • application/x-cue: CUE format, strict. This format's usage is described below.
    • audio/x-mpegurl, audio/mpegurl: M3U, non strict
  • Xml formats:

    • video/x-ms-asf, audio/x-ms-asx: ASX, strict
    • application/smil, application/smil+xml, SMIL, strict
    • application/xspf+xml, XSPF, strict
    • application/rss+xml, Podcast, strict

Usage​

Playlist files are parsed automatically when used in a playlist or input.http operator. Each of these two operators has specific options to specify how to pick up a track from the playlist, e.g. pick a random track, the first one etc.

Additionally, you can also manually parse and process a playlist using request.create and request.resolve and some programming magic. You can check the code source for playlist.reloadable in our standard library for a detailed example.

Special case: CUE format​

The CUE format originates from CD burning programs. They describe the set of tracks of a whole CD and are accompanied by a single file containing audio data for the whole CD.

By default, the CUE playlist parser will add metadata from cue-in and cue-out points for each track described in the playlist, which are automatically handled with source-base operators such as playlist.

The metadata added for cue-in and cue-out positions can be customized using the following configuration keys:

settings.playlists.cue_in_metadata := "liq_cue_in"
settings.playlists.cue_out_metadata := "liq_cue_out"