Skip to main content

Offline single-file HTML music player generator

Project description

phuker-music

GitHub | PyPI | Demo

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 (use -vv or more for greater effect)
  -V, --version  Show version and exit
$ phuker-music player --help
usage: phuker-music player [-h] [-t TITLE] [-c COVER] [-r] [--sort-type sort_type] [-f] [-v] dir_path

Generate music player HTML for a single album

positional arguments:
  dir_path              Path to an album directory

options:
  -h, --help            show this help message and exit
  -t, --title TITLE     Album title, default: directory name
  -c, --cover COVER     Album cover file path, relative to dir_path
  -r, --recursively     Recursively scan files
  --sort-type sort_type Sort type, default: filename, choices: filename, mtime_desc
  -f, --force           Force overwrite if output file exists
  -v, --verbose         Increase verbosity level (use -vv or more for greater effect)
$ 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    Force overwrite if output file exists
  -v, --verbose  Increase verbosity level (use -vv or more for greater effect)

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.0.1.tar.gz (94.9 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.0.1-py3-none-any.whl (93.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: phuker_music-1.0.1.tar.gz
  • Upload date:
  • Size: 94.9 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.0.1.tar.gz
Algorithm Hash digest
SHA256 45aaaf05b1035830208bf12b8b610eeeb9e0f497e72206ceaee05ceea2d572cc
MD5 bc67ac29f61c2dd96a02eaf6457fe229
BLAKE2b-256 4d6e83c34e0803bb0280f6bc67b6e977d0be827b41a8185f3bdbdd5b52c40056

See more details on using hashes here.

File details

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

File metadata

  • Download URL: phuker_music-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 93.6 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.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7a41182803f969fe93295da1f1424490aedeac95822c3d0be8d6269b021b333c
MD5 d6398116d7e11daf43451f77131de3db
BLAKE2b-256 81d75e72b1324c7e5c94b3dae6b2b7939ae377859effdf5fb3c9288cbc0eb5f4

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