Skip to content

Cycloctane/xplay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xplay

A simple media server that searches multimedia files from a directory, parses their metadata, generates xspf playlist as index and serves audio/video over http/https.

Supported file formats: mp3, flac, ogg, mp4, mkv. Metadata parsing currently does not support mkv.

This program produces valid XSPF playlist files.

This program:

  • Traverses directories recursively by default. Can be disabled by --no-recursive option
  • Does not follow symbolic links found in directories
  • Excludes files starting with a period (hidden files in linux)

Usage

Start http media server with /play.xspf as index:

./xplay -b $bind_ipaddr -p $bind_port -d ./music

Use -w to generate and save xspf to file and exit. Options other than -d will be ignored:

./xplay -d . -w > playlist.xspf

Metadata parsing can become slow when handling a large number of multimedia files. Use --no-tag option to disable metadata/tag parsing if you do not need metadata in xspf playlists.

To secure the media server, add host header validation with --server-hostname, activate https with --ssl-cert --ssl-key and set up http basic authentication with --password. Default username "xplay" can be changed via --username:

./xplay -b 0.0.0.0 -p 8443 -d .\
    --ssl-cert example.com.crt --ssl-key $certkey_path\
    --username $username --password $password\
    --server-hostname example.com,127.0.0.1

Compatibility mode

By default xplay uses relative urls in xspf playlists to better support basic auth and reverse proxies. If media players have trouble parsing the links, you can try setting the --absolute-links option.

./xplay -b 0.0.0.0 -p 8443 -d . --absolute-links

Client

Media players with http and xspf support (like VLC) can be used as clients. Also tested with potplayer, Clementine, audacious... (with --absolute-links option)

vlc http://$ip:$port/play.xspf

With https and http basic auth:

vlc https://$username:$password@$ip:$port/play.xspf

About

Simple xspf playlist generator and media server

Topics

Resources

License

Stars

Watchers

Forks