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.1.0.tar.gz (95.2 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.1.0-py3-none-any.whl (94.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: phuker_music-1.1.0.tar.gz
  • Upload date:
  • Size: 95.2 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.1.0.tar.gz
Algorithm Hash digest
SHA256 f8191a62c6df90330e080bac82a5b9508e9aea65ec924f212b8a4afde7d27743
MD5 6572a12ba297d148a439e6ea266d2db0
BLAKE2b-256 3a1ca14efcb3798e6d7d29336af482e27b080559e534d6b35cef470dd721448b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: phuker_music-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 94.0 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f941d3409254d174fd139d43a173050dde15961bede14cf837db81512594a6f
MD5 f4f6420c980edae36b56ef7f241431d4
BLAKE2b-256 acc02995ebb1813b15563d69ef2ec9c02a76b5d413eb8f15e6496413ce52de25

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