beets-unskipper
A beets plugin to browse and edit beets' import state
file (state.pickle) with a small terminal UI.
Beets records already-imported directories in state.pickle, and then any other import with
--incremental will skip anything listed in there. unskipper lets you browse this
file and remove ("unskip") entries, so beets will reconsider them next time you import.
It also keeps a human-readable sidecar file (<statefile>.unskipper.json) with additional data
per item, recorded automatically during import, and that can be used to rebuild a lost
or corrupted state.pickle.
Installation
git clone https://github.com/FlorentLM/beets-unskipper
uv pip install beets-unskipper
or with Beets' default uv tool install:
uv tool install beets --with ./beets-unskipper --reinstall
Then add unskipper to the plugins line in your beets config.
Usage
beet unskipper
| Option | Description |
|---|---|
-s, --state-file |
Path to state.pickle (default: beets' configured location) |
-j, --unskipper-json |
Path to the sidecar JSON (default: alongside the state file) |
-r, --remap OLD=NEW |
Remap paths starting with OLD to NEW when loading |
--rebuild |
Rebuild state.pickle from the sidecar JSON, then exit |
--migrate-db |
With --remap, rewrite item/album paths in the beets database, then exit |
-d, --dry-run |
With --rebuild or --migrate-db, preview changes without writing |
Moving your music library
If you move your whole library to a new location (new drive, new mount point, etc.),
--remap can update everything that beets-unskipper and beets itself track, so incremental
imports and the state UI keep working against the new paths:
beet unskipper --remap /old/path=/new/path --migrate-db # rewrite paths in the beets database
beet unskipper --remap /old/path=/new/path --rebuild # rebuild state.pickle and apply the remap to the sidecar
Add -d/--dry-run to either command to preview what would change without writing anything.
Keys
| Key | Action |
|---|---|
↓/↑ |
move |
Shift+↓/Shift+↑, PgDn/PgUp |
move by a page |
a-z |
jump to next row starting with that letter |
+/- |
jump to next entry marked new (unimported) |
Enter |
run beet import on the selected new folder (using your existing beets config) |
space |
mark/unmark row |
Del/Backspace |
delete marked rows (or current one if none marked) |
Ctrl+S |
save |
Esc |
quit |
Metadata
Release files for beets-unskipper 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| beets_unskipper-1.0.0.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| beets_unskipper-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / beets_unskipper-1.0.0.tar.gz
| Download URL | beets_unskipper-1.0.0.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
16b9ed09204549ddbe2e0740e7f8ba5d9c28c281d009863ba55cde60d7b9c0a6
|
|
BLAKE2b-256 checksum How to use checksums |
d823601536b784d84084c8a357606472de4e2e8eaa3ebd88825f43bba29a9876
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / beets_unskipper-1.0.0-py3-none-any.whl
| Download URL | beets_unskipper-1.0.0-py3-none-any.whl |
|---|---|
| Size | 17.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e0de28fdcf065ceb84b997292b4628bad1953202e129d5e3d1e17ec6cf20f935
|
|
BLAKE2b-256 checksum How to use checksums |
3ae02cc9abe33f56d3724bd80305deea35757fcc66d26260df0f0416ac6e6c12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|