# Manual / archived scripts These scripts are kept for occasional hands-on use but are **not** wired into the app, the scheduler, or the web UI. Nothing here runs automatically. They live outside `pipeline/lib/` so the active, scheduled scripts there stay easy to see at a glance. Run one by hand inside the container when you actually need it, e.g.: ```bash docker exec -it alembic bash /app/pipeline/lib/manual/convert-m4a.sh docker exec -it alembic python /app/pipeline/lib/manual/import-dj-collection.py --help ``` What's here and why it's manual-only: - **convert-m4a.sh** — one-off bulk M4A to FLAC/MP3 conversion. Not part of the normal download flow. - **fix-empty-album.sh** — repairs tracks with an empty album tag. A cleanup tool for a specific past problem, not a recurring job. - **backfill-spotify-tags.sh** — re-pulls Spotify tags for already-imported tracks. A migration/backfill aid. - **backfill-buy-url.py** — one-time backfill of buy-link tags across the library (the scheduled `enrich-buy-url.py` handles new tracks going forward). - **recover-azuracast-playlists.py** — rebuilds AzuraCast playlist assignments after a GROUPING-tag loss. Recovery tool, only relevant if you run AzuraCast. - **import-dj-collection.py** — bulk-imports a personal DJ set collection with fingerprint dedup against the existing library. A large one-off importer. These have not all been hardened with `set -euo pipefail`; treat them as run-and-watch tools rather than unattended automation.