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 |
.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 media = (Media) component;
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_HOME
and directorybin
folder 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 :publishToMavenLocal
Publish to local Sonatype Maven Central - Sonatype:
./gradlew :sign
./gradlew :publish