beets-hitlisttag
A beets plugin that stores chart ("hitlist") history for
songs — positions per year or per year/week in charts such as the Dutch
Top 2000, Top 40, or Top 100 — in a custom CHARTS file tag holding JSON,
and makes that data usable inside beets.
It provides:
- a typed
chartsmedia field read from and written to file tags; - a
chartsupdatecommand that parses theCHARTStag into queryable per-chart flexible fields (top2000,top2000_score,top2000_highest,top2000_when, …); - a
chartscommand showing a song's chart history (summary or full positions); - a
hitlistcommand that reconstructs a full chart for a given year (or year/week) from the library, including a report of missing positions.
Usage
chartsupdate
Reads the CHARTS tag from matching items and materializes per-chart
flexible fields (top2000, top2000_score, top2000_highest,
top2000_when, …) so they can be queried and sorted in beets.
beet chartsupdate [QUERY]
Run it after importing new music or when chart data changes. Without a query it processes every item in the library.
charts
Displays the chart history stored in a song's CHARTS tag.
beet charts [-F] [QUERY]
By default it prints a one-line summary per chart. The -F / --full
flag shows every position in a table.
hitlist
Reconstructs a full chart for a given hitlist and year (or year/week) from the library, listing songs in position order.
beet hitlist [-M] [-p] [-f FORMAT] HITLIST YEAR [WEEK]
The available hitlists are defined in configuration (see
Configuration); the shipped defaults are top2000,
top100, top40, zwaarstelijst, and kerst. All take a year; top40
also takes a week. The -M / --missing flag reports any positions that
are absent from the library. The -p / --path flag prints file paths
instead of the formatted string. The -f / --format option overrides
the display format (default: $artist - $album - $title).
beet hitlist top2000 2023
beet hitlist -M top40 2024 5
Configuration
Which hitlists exist and what axes each one uses are defined by the
hitlists key under the hitlisttag section of config.yaml. It maps
a hitlist name to a list of axis names — the arguments hitlist expects
for that chart:
hitlisttag:
hitlists:
top2000: [year]
top100: [year]
top40: [year, week]
zwaarstelijst: [year]
kerst: [year]
Omitting the key falls back to the defaults above. A hitlist takes one
argument per axis, in order; a single-axis hitlist like top2000 takes a
year, while the two-axis top40 takes a year and a week.
A chart present in a file's CHARTS tag but absent from the configured
hitlists is still stored in the charts blob, but its per-chart
flexible fields are not materialized — only configured hitlists get
queryable name, name_score, name_highest, and name_when fields.
Status
Working prototype being turned into a clean, tested, installable package.
See docs/roadmap.md and the repository's milestones and issues for
direction and progress. Not yet installable from PyPI.
License
MIT — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file beets_hitlisttag-0.1.0.tar.gz.
File metadata
- Download URL: beets_hitlisttag-0.1.0.tar.gz
- Upload date:
- Size: 24.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d5e53370081f7721791ecd379ffb51ff5b1e054bc06d845240d37f9ee5885f9
|
|
| MD5 |
203fabec7ae9e2cb83f735b1f17168ba
|
|
| BLAKE2b-256 |
db429b31d35a25458780a3971b2429d4d20b08ad38d5c439c1042597aaf397db
|
Provenance
The following attestation bundles were made for beets_hitlisttag-0.1.0.tar.gz:
Publisher:
release.yml on pvliesdonk/beets-hitlisttag
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
beets_hitlisttag-0.1.0.tar.gz -
Subject digest:
2d5e53370081f7721791ecd379ffb51ff5b1e054bc06d845240d37f9ee5885f9 - Sigstore transparency entry: 2336221542
- Sigstore integration time:
-
Permalink:
pvliesdonk/beets-hitlisttag@6173617192ff9bd9035ac036ae2cedb2868af14f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/pvliesdonk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6173617192ff9bd9035ac036ae2cedb2868af14f -
Trigger Event:
release
-
Statement type:
File details
Details for the file beets_hitlisttag-0.1.0-py3-none-any.whl.
File metadata
- Download URL: beets_hitlisttag-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07a8840001054e1bf42139e63dae0abdb879965aafa7b6341897f72a70a0f457
|
|
| MD5 |
b2c8d065256805b1be71ab32609ac517
|
|
| BLAKE2b-256 |
1276bd986f9bdaea2f03acc826dd5914dff3e6dc80806fb2a2a629d8b3359f0f
|
Provenance
The following attestation bundles were made for beets_hitlisttag-0.1.0-py3-none-any.whl:
Publisher:
release.yml on pvliesdonk/beets-hitlisttag
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
beets_hitlisttag-0.1.0-py3-none-any.whl -
Subject digest:
07a8840001054e1bf42139e63dae0abdb879965aafa7b6341897f72a70a0f457 - Sigstore transparency entry: 2336221619
- Sigstore integration time:
-
Permalink:
pvliesdonk/beets-hitlisttag@6173617192ff9bd9035ac036ae2cedb2868af14f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/pvliesdonk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6173617192ff9bd9035ac036ae2cedb2868af14f -
Trigger Event:
release
-
Statement type: