Skip to main content

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.

Screenshot of te plugin's interface

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)

Source distribution for beets-unskipper 1.0.0
File Size Uploaded
beets_unskipper-1.0.0.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for beets-unskipper 1.0.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page