Playlist

Provides the fundamental objects for handling a list of tracks contained in playlists as well as methods to import and export from various file formats.

Playlists

class xl.playlist.Playlist(name, initial_tracks=[])

Basic class for handling a list of tracks

EVENTS: (all events are synchronous)
  • playlist_tracks_added
    • fired: after tracks are added
    • data: list of tuples of (index, track)
  • playlist_tracks_removed
    • fired: after tracks are removed
    • data: list of tuples of (index, track)
  • playlist_current_position_changed
  • playlist_shuffle_mode_changed
  • playlist_random_mode_changed
  • playlist_dynamic_mode_changed
Parameters:
  • name (string) – the initial name of the playlist
  • initial_tracks (list of xl.trax.Track) – the tracks which shall populate the playlist initially
append(other)

Appends a single track to the playlist

Parameters:other – list of xl.trax.Track
clear()

Removes all contained tracks

clear_shuffle_history()

Clear the history of played tracks from a shuffle run

count(other)

Returns the count of contained tracks

Returns:the count
Return type:int
extend(other)

Extends the playlist by another playlist

Parameters:other – list of xl.trax.Track
get_current()

Retrieves the track at the current position

Returns:the track
Return type:xl.trax.Track or None
get_current_position()

Retrieves the current position within the playlist

Returns:the position
Return type:int
get_dynamic_mode()

Retrieves the current dynamic mode

Returns:the dynamic mode
Return type:string
get_repeat_mode()

Retrieves the current repeat mode

Returns:the repeat mode
Return type:string
get_shuffle_history()

Retrieves the history of played tracks from a shuffle run

Returns:the tracks
Return type:list
get_shuffle_mode()

Retrieves the current shuffle mode

Returns:the shuffle mode
Return type:string
get_spat_position()

Retrieves the current position within the playlist after which progressing shall be stopped

Returns:the position
Return type:int
index(item, start=0, end=None)

Retrieves the index of a track within the playlist

Returns:the index
Return type:int
load_from_location(location)

Loads the content of the playlist from a given location

Parameters:location (string) – the location to load from
next()

Progresses to the next track within the playlist and takes shuffle and repeat modes into account

Returns:the new current track
Return type:xl.trax.Track or None
pop(i=-1)

Pops a track from the playlist

Parameters:i (int) – the index
Returns:the track
Return type:xl.trax.Track
prev()

Progresses to the previous track within the playlist and takes shuffle and repeat modes into account

Returns:the new current track
Return type:xl.trax.Track or None
randomize(positions=None)

Randomizes the content of the playlist contrary to shuffle which affects only the progressing order

By default all tracks in the playlist are randomized, but a list of positions can be passed. The tracks on these positions will be randomized, all other tracks will keep their positions.

Parameters:positions (iterable) – list of track positions to randomize
save_to_location(location)

Writes the content of the playlist to a given location

Parameters:location (string) – the location to save to
set_current_position(position)

Sets the current position within the playlist

Parameters:position (int) – the new position
set_dynamic_mode(mode)

Sets the current dynamic mode

Parameters:mode (string) – the new dynamic mode
set_repeat_mode(mode)

Sets the current repeat mode

Parameters:mode (string) – the new repeat mode
set_shuffle_mode(mode)

Sets the current shuffle mode

Parameters:mode (string) – the new shuffle mode
set_spat_position(position)

Sets the current position within the playlist after which progressing shall be stopped

Parameters:position (int) – the new position
sort(tags, reverse=False)

Sorts the content of the playlist

Parameters:
  • tags (list of strings) – tags to sort by
  • reverse (boolean) – whether the sorting shall be reversed
current_position

The position within the playlist (int)

dirty

Whether the playlist was changed or not (boolean)

dynamic_mode

The current dynamic mode (string)

name

The playlist name (string)

repeat_mode

The current repeat mode (string)

shuffle_mode

The current shuffle mode (string)

shuffle_mode_names = [u'Shuffle _Off', u'Shuffle _Tracks', u'Shuffle _Albums']

Titles of the valid shuffle modes (list of string)

shuffle_modes = ['disabled', 'track', 'album']

Valid shuffle modes (list of string)

spat_position

The position within the playlist after which to stop progressing (int)

Playlist Converters

class xl.playlist.FormatConverter(name)

Base class for all converters allowing to import from and export to a specific format

export_to_file(playlist, path, options=None)

Export a playlist to a given path

Parameters:
  • playlist (Playlist) – the playlist
  • path (string) – the target path
  • options (PlaylistExportOptions) – exporting options
import_from_file(path)

Import a playlist from a given path

Parameters:path (string) – the source path
Returns:the playlist
Return type:Playlist
name_from_path(path)

Convenience method to retrieve a sane name from a path

Parameters:path (string) – the source path
Returns:a name
Return type:string
class xl.playlist.M3UConverter

Bases: xl.playlist.FormatConverter

Import from and export to M3U format

class xl.playlist.PLSConverter

Bases: xl.playlist.FormatConverter

Import from and export to PLS format

class xl.playlist.ASXConverter

Bases: xl.playlist.FormatConverter

Import from and export to ASX format

class xl.playlist.XSPFConverter

Bases: xl.playlist.FormatConverter

Import from and export to XSPF format