Lizzy is an open source Java library allowing to parse, create, edit, convert and save almost any type of multimedia playlist.
Two versatile command-line tools are also available at Lizzy Transcode.
Lizzy has been forked from sourceforge.net/projects/lizzy
- Automatic detection of the type of input playlist
- Information on playlist format support by some media players (input and output)
- Physical access to the individual contents of a playlist is not required (performed on demand)
- Information on playlist items (media contents): MIME type, length, duration, width/height
- Powerful yet simple generic playlist representation
- Direct handling of a given specific playlist type (e.g. ASX, WPL) is possible
- Playlist normalization (empty items removal, simplification, reduction)
| Extension | Playlist type |
|---|---|
.asx,.wmx, .wax |
Advanced Stream Redirector (ASX) |
.atom |
Atom Document, RFC4287 |
.b4s |
Winamp playlist versions 3 and later |
.jspf |
JSPF is JSON XSPF |
.m3u, .m3u8, .m4u |
Winamp M3U |
.mpcpl |
Media Player Classic Playlist |
.pla |
iRiver iQuickList File |
.plist, .xml |
Property list, iTunes Library File |
.plp |
Sansa Playlist File |
.pls |
Winamp PLSv2 Playlist |
.ram |
Real Audio Metadata (RAM) |
.rmp |
Real Metadata Package (RMP) |
.rss |
RSS Document |
.smil |
Synchronized Multimedia Integration Language (SMIL), W3C |
.wpl |
Windows Media Player Playlist (WPL) |
.xspf |
XML Shareable Playlist Format (XSPF) |
Lizzy is licensed through a MIT licensing model: see the text LICENSE.txt.
Lizzy Maven artifacts are published to mvnrepository.com.
Check the GitHub releases page.
Example application, using Lizzy, to read a playlist provided via command line argument, and print the playlist media (track) sources:
package io.github.borewit.lizzy.example;
import io.github.borewit.lizzy.playlist.Media;
import io.github.borewit.lizzy.playlist.SpecificPlaylist;
import io.github.borewit.lizzy.playlist.SpecificPlaylistFactory;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
public class ReadPlaylistExample {
public static void main(String[] args) throws IOException {
Path playlistPath = Paths.get(System.getProperty("user.dir"), "samples", "asx", "test01.asx");
SpecificPlaylist specificPlaylist = SpecificPlaylistFactory.getInstance().readFrom(playlistPath);
if (specificPlaylist == null) {
System.exit(-1);
}
specificPlaylist.toPlaylist().getRootSequence().getComponents().forEach(component -> {
if (component instanceof Media media) {
System.out.printf("Media with content-source=%s\n", media.getSource().toString());
}
});
}
}In order to build Lizzy from the sources, you first have to download and install the following tools:
- Install Java SDK 15 (may work with other versions as well)
- Install Gradle
- You may have to set
JAVA_HOMEand directorybinfolder of the Maven installation to your PATH System variable.
Execute the following command in order to build the distribution and store it in your local Maven cache:
Publish to local Maven repository:
./gradlew :clean :publishToMavenLocalPublish to local Sonatype Maven Central - Sonatype:
./gradlew :sign
./gradlew :publish