Remove CLAUDE.md from version control
File is now in .gitignore and kept only locally. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
3e073250ca
commit
686c4317d1
1 changed files with 0 additions and 38 deletions
38
CLAUDE.md
38
CLAUDE.md
|
|
@ -1,38 +0,0 @@
|
||||||
# CLAUDE.md
|
|
||||||
|
|
||||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
||||||
|
|
||||||
## Project Overview
|
|
||||||
|
|
||||||
**Musiksammlung** is a Python CLI tool that automates digitizing physical CD collections for use with Jellyfin. It orchestrates: CD ripping (via `abcde`), OCR of cover/back images (via Tesseract), LLM-based tracklist extraction, file renaming/tagging, and M3U playlist generation.
|
|
||||||
|
|
||||||
## Build & Development Commands
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pip install -e ".[dev]" # Install in editable mode with dev deps
|
|
||||||
pytest tests/ -v # Run all tests
|
|
||||||
pytest tests/test_models.py -v # Run a single test module
|
|
||||||
ruff check src/ tests/ # Lint
|
|
||||||
musiksammlung --help # CLI entry point
|
|
||||||
```
|
|
||||||
|
|
||||||
## Architecture
|
|
||||||
|
|
||||||
The pipeline flows: **OCR → LLM → Organize → Tag → Playlist**
|
|
||||||
|
|
||||||
- `models.py` — Pydantic models (`Album`, `Disc`, `Track`) shared across all modules; the LLM JSON output validates directly into `Album`
|
|
||||||
- `cli.py` — Typer CLI with three commands: `scan` (OCR+LLM→JSON), `apply` (JSON→files), `process` (full pipeline)
|
|
||||||
- `ocr.py` — Tesseract wrapper with Pillow-based image preprocessing
|
|
||||||
- `llm_parser.py` — Sends OCR text to LLM (Ollama or OpenAI-compatible), enforces JSON output, retries on parse failure
|
|
||||||
- `organizer.py` — Builds source→target file mapping, handles single-disc and multi-disc layouts
|
|
||||||
- `tagger.py` — Sets audio tags via mutagen (format-agnostic), optional cover embedding for FLAC/MP3
|
|
||||||
- `playlist.py` — Generates M3U playlists with relative paths
|
|
||||||
- `ripper.py` — Drives `abcde` via subprocess for CD ripping
|
|
||||||
- `cover.py` — Resizes/converts cover images to JPEG for Jellyfin
|
|
||||||
|
|
||||||
## Conventions
|
|
||||||
|
|
||||||
- Python 3.11+, German variable names and comments are acceptable
|
|
||||||
- Pydantic for data models, Typer for CLI, mutagen for audio tagging
|
|
||||||
- External tools required at runtime: `tesseract`, `abcde`
|
|
||||||
- The two-step workflow (`scan` → review JSON → `apply`) is the recommended default over the one-shot `process` command
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue