Skip to main content

Offline single-file HTML music player generator

Project description

phuker-music

Demo | GitHub | PyPI | Readme (English, 简体中文)

Yet another HTML music player generator. Scan a directory of audio files and generate an offline, all-in-one single HTML player file. Also generates player pages for multiple albums plus an index page via a JSON config.

You can try the demo to see what generated index page and players look like. Grant system notifications permission to display a notification when each track starts playing.

Features

  • No loan ads or subscription popups
  • No AI
  • No tracking, analytics, statistics, or telemetry
  • No user data uploads
  • No extra assets — No JS/CSS dependencies, no web fonts, no CDN
  • Only a fucking single HTML file

Quick Start

First, cd to a directory that contains audio files, then:

Run with uvx

uvx phuker-music player .

Run with pipx

pipx run phuker-music player .

Install with uv and run

uv tool install phuker-music
phuker-music player .

Install with pipx and run

pipx install phuker-music
phuker-music player .

Install with pip and run

pip install phuker-music
phuker-music player .

Usage

$ phuker-music --help
usage: phuker-music [-h] [-v] [-V] command ...

Music player HTML generator

positional arguments:
  command
    player       Generate music player HTML for a single album
    albums       Generate player and index page for all albums

options:
  -h, --help     show this help message and exit
  -v, --verbose  Increase verbosity level
  -V, --version  Show version and exit
$ phuker-music player --help
usage: phuker-music player [-h] [-t title] [-c file] [-o filename] [-r] [--sort-type type] [-f] [-v] dir_path

Generate music player HTML for a single album

positional arguments:
  dir_path                        Path to the album directory

options:
  -h, --help                      show this help message and exit
  -t, --title title               Album title, default: directory name
  -c, --cover file                Album cover file path, relative to dir_path
  -o, --output-filename filename  Output filename, default: player.html
  -r, --recursively               Recursively scan subdirectories for audio files
  --sort-type type                Sort type, default: filename, choices: filename, mtime_desc
  -f, --force                     Overwrite output file if it exists
  -v, --verbose                   Increase verbosity level
$ phuker-music albums --help
usage: phuker-music albums [-h] [-f] [-v] config_file

Generate player and index page for all albums

positional arguments:
  config_file    Config file path

options:
  -h, --help     show this help message and exit
  -f, --force    Overwrite output file if it exists
  -v, --verbose  Increase verbosity level

License

MIT

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

phuker_music-1.2.0.tar.gz (95.6 kB view details)

Uploaded Source

Built Distribution

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

phuker_music-1.2.0-py3-none-any.whl (94.3 kB view details)

Uploaded Python 3

File details

Details for the file phuker_music-1.2.0.tar.gz.

File metadata

  • Download URL: phuker_music-1.2.0.tar.gz
  • Upload date:
  • Size: 95.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for phuker_music-1.2.0.tar.gz
Algorithm Hash digest
SHA256 76ff236e9c2f711bcdd798028916782ac48342a51cf47dcdf286b7eabd95a42f
MD5 154c8cfd64ce6763487f52ec865eba57
BLAKE2b-256 7021907d52ecd109e5d82b9f938b7d96ca5d73960f9a3a72f3a6c35dba1d5a84

See more details on using hashes here.

File details

Details for the file phuker_music-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: phuker_music-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 94.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for phuker_music-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6f3ccb8fbf2115f6717668e66328029aa81a5bad1ca92e9e1f25a4b04f0a733c
MD5 e6184730f716001a99a2095cf1fad1b3
BLAKE2b-256 197b2372a5b46ca7b63e7ef60412b6d473c9a916f6ef949b4e36fb705b296e03

See more details on using hashes here.

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