{% extends "base_template.html" %} {% block content %}

Import

Start a beets import, or clean-slate an entry that is already in your library. The importer runs interactively — when it needs a decision, candidate matches appear below for you to apply, import as-is, or skip.


{# Pinned to the configured downloads_path: the value is prefilled, the pattern blocks submitting anything outside it, and the datalist only suggests real subfolders under it as you type. (HTMX validates the form POST against the pattern but not the GET autocomplete, so suggestions still work mid-type.) #}
Import options

Prefilled from your beets config's import section; changes apply to this import only.







Clean-slate import

Remove a library entry (like beet remove -d) and import its original download folder afresh. Nothing carries over (other than the downloader hook's search fields), and the entry is removed before the import runs. Preview first to see what would be deleted.

{% if clean_slate and clean_slate.source %}

Entry: {{ clean_slate.label }} ({{ clean_slate.subject }} #{{ clean_slate.beets_id }})




Import options

Prefilled from your beets config's import section; changes apply to this import only.





{% elif clean_slate %}

No source folder is known for {{ clean_slate.label }}. Use Find via downloader on the search page to look it up first.

{% else %}

Start from the search page: entries with a known source folder offer a Clean-slate import from here link.

{% endif %}

Active imports

Each import is shown as a card below. Click an import's title to expand or collapse its output log.

{# Loaded on page load (and after each submit), so ongoing / awaiting-decision jobs persist across navigating away and back to this page. Each job fragment then self-polls for its own updates. #}
{% endblock %}