Skip to main content

Zipped Album Player (ZAP) - A simple Python-based cross-platform player for the Zipped Album format

Project description

Zipped Album Player (ZAP)

A simple Python-based cross-platform player for the Zipped Album format

zap_screenshot_all

Features

  • MacOS, Windows and Linux support
  • Digital booklet slideshow
  • Keyboard navigation (with Vi-like alternatives)
  • View presets
  • Fullscreen mode
  • Zipped Album creation

Installation

ZAP can be installed with pipx:

pipx install Zipped-Album-Player

Note:

ZAP relies on FFmpeg to decode audio. If FFmpeg cannot be found on the system, ZAP will attempt to download a local copy the first time it is started.

Windows

  1. Make sure you have Python 3 with Tkinter support installed

    If not, install it. For instance with this installer: https://www.python.org/ftp/python/3.13.3/python-3.13.3-amd64.exe

  2. Install pipx

    python3 -m pip install --user pipx
    python3 -m pipx ensurepath
    
  3. Install ZAP

    pipx install Zipped-Album-Player
    

MacOS

  1. Make sure you have Python 3 with Tkinter support installed

    If not, install it. For instance with this installer: https://www.python.org/ftp/python/3.13.3/python-3.13.3-macos11.pkg

  2. Install pipx

    python3 -m pip install --user pipx
    python3 -m pipx ensurepath
    
  3. Install ZAP

    pipx install Zipped-Album-Player
    

Linux

  1. Make sure you have Python 3 with Tkinter support installed

    If not, install it. For instance, on Debian-based distros:

    sudo apt install python3 python3-venv python3-pip python3-tk
    
  2. Make sure OpenAL is installed

    If not, install it. For instance, on Debian-based distros:

    sudo apt install libopenal1
    
  3. Make sure PyMuPDF and ImageTk are installed

    If not, install them. For instance, on Debian-based distros:

    sudo apt install python3-fitz python3-pil.imagetk
    
  4. Install pipx

    python3 -m pip install --user pipx
    python3 -m pipx ensurepath
    
  5. Install ZAP

    pipx install --system-site-packages Zipped-Album-Player
    

Usage

After successful installation, ZAP can be started with either

zap [--exact] [--create] [PATH]

or

zipped-album-player [--exact] [--create] [PATH]

where the optional PATH is a Zipped Album file or a directory, and --exact and --create are options.
If PATH is a Zipped Album file and no option is given, ZAP will attempt to open it.
If PATH is a Zipped Album file and --exact is given, ZAP will attempt to open the file in "exact mode", which means ZAP will show all booklets and images in alphabetic order, will not attempt to try alternative encodings of wrongly encoded filenames in the ZIP file to match filenames in a playlist, and will not apply any fixes to track numbering or date tags.
The option --create has no effect when PATH is a Zipped Album File.
If PATH is a directory and --create is given, ZAP will attempt to create a Zipped Album file from the content in that directory (see specification for what is valid content) and then open the resulting file (in "exact mode" if --exact is also given).
If PATH is a directory and no option is given, ZAP will set the initial directory of the "Open..." dialogue to that directory.

Keyboard navigation

Play/Pause: ............................. Space ......... or ... Return
Select next track: ...................... Down .......... or ........ j
Select previous track: .................. Up ............ or ........ k
Select first track: ..................... Home .......... or ....... gg
Select last track: ...................... End ........... or ........ G
Seek forward: ........................... Right ......... or ........ l
Seek backward: .......................... Left .......... or ........ h
Seek to beginning: ...................... w ............. or ........ 0
Show next slide: ........................ Shift+Right ... or ........ L
Show previous slide: .................... Shift+Left .... or ........ H
Show first slide: ....................... W ............. or ........ )
Decrease volume: ........................ Shift+Down .... or ........ J
Increase volume: ........................ Shift+Up....... or ........ K

FAQ

  • Where can I find music in a format ZAP plays?

    ZAP plays Zipped Albums, a simple one-file format for digital audio. Basically, these are ZIP archives of FLAC or Opus files with an optional digital booklet and playlist. Albums downloaded from Bandcamp in FLAC format, for instance, are compatible, but you can also easily create them yourself from your existing music (using ZAP!).

  • Couldn't you provide simple one-click installers/executables for ZAP?

    Yes, I could use something like PyInstaller, and I might do that at some point. For now, however, I think pipx is a good enough solution.

  • Why do I not hear any sound when playing an album in ZAP?

    ZAP might have selected the "Silent" audio driver. ZAP relies on either DirectSound (Windows) or OpenAL (MacOS, Linux, Windows) to play back audio. On Windows, DirectSound should be installed by default. On MacOS, OpenAL should be installed by default. On Linux, OpenAL might not be installed by default. Install it with your package manager (for instance on Debian-based distros with apt install libopenal1).

  • Why is the bit depth of my tracks reported as "24→16 bit"?

    When ZAP uses OpenAL, it will resample to 16 bit during playback for tracks with bit depths higher than that, since OpenAL does not support those yet. This process will involve dithering (with moderate noise shaping) to prevent quantization noise. However, since distribution/listening formats do not benefit from bit depths higher than 16, I suggest to obtain properly mastered 16 bit sources when available.

  • Why is the channel count on my 5.1 surround track reported as "6ch→stereo"?

    There is currently no mutli-channel support and everything with more than 2 channels is down-mixed to stereo.

  • Why is fullscreen mode only working on the first display in a multi-display setup?

    Because Tkinter is not really aware of multiple displays, unfortunately.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zipped_album_player-0.6.4.tar.gz (187.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zipped_album_player-0.6.4-py3-none-any.whl (184.2 kB view details)

Uploaded Python 3

File details

Details for the file zipped_album_player-0.6.4.tar.gz.

File metadata

  • Download URL: zipped_album_player-0.6.4.tar.gz
  • Upload date:
  • Size: 187.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for zipped_album_player-0.6.4.tar.gz
Algorithm Hash digest
SHA256 07cee5d246ece2b772c7baa51ba32b177c8a7989d8ffbe4fb3e3ad20ea145036
MD5 fdca561fad57b11103098e2880c79851
BLAKE2b-256 c824f37bd35bf4c7ed82de9435f7acdc61e13e1161780c2e9b43a3a6310c5da1

See more details on using hashes here.

Provenance

The following attestation bundles were made for zipped_album_player-0.6.4.tar.gz:

Publisher: build_and_deploy.yml on zipped-album/zap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zipped_album_player-0.6.4-py3-none-any.whl.

File metadata

File hashes

Hashes for zipped_album_player-0.6.4-py3-none-any.whl
Algorithm Hash digest
SHA256 fb41202ee2b60203e734e8969b76e0f28c1ae6ac32669e6f896b768da4060657
MD5 d07c5f4497d6fc6bf2074946e527e662
BLAKE2b-256 a7ebd53031a9a4b3fcd9a945b1400a318a9b4a91c8f697655bf9a0cddef02a38

See more details on using hashes here.

Provenance

The following attestation bundles were made for zipped_album_player-0.6.4-py3-none-any.whl:

Publisher: build_and_deploy.yml on zipped-album/zap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page