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, strictapplication/x-cue: CUE format, strict. This format’s usage is described below.audio/x-mpegurl,audio/mpegurl: M3U, non strict
- Xml formats:
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.
This playlist format can be used in liquidsoap, using a
cue_cut operator. By default, the CUE playlist parser
will add metadata from cue-in and cue-out points for each track
described in the playlist, which you can then pass to
cue_cut to play each track of the playlist. Something
like:
cue_cut(playlist("/path/to/file.cue"))You can find an example of using cue_cut with cue
sheets here and a throughout explanation
of how seeking in liquidsoap works there.
The metadata added for cue-in and cue-out positions can be customized using the following configuration keys:
settings.playlists.cue_in_metadata.set("liq_cue_in")
settings.playlists.cue_out_metadata.set("liq_cue_out")