# Renamer - Media File Renamer and Metadata Viewer

**Version**: 0.7.0-dev

A powerful Terminal User Interface (TUI) for managing media collections. View detailed metadata, browse TMDB catalog with posters, and intelligently rename files.

> **📘 For complete documentation, see [ENGINEERING_GUIDE.md](ENGINEERING_GUIDE.md)**

---

## Features

- **Dual Display Modes**: Technical (codecs/tracks) or Catalog (TMDB with posters)
- **Multi-Source Metadata**: MediaInfo, filename parsing, embedded tags, TMDB API
- **Intelligent Renaming**: Standardized names from metadata
- **Advanced Caching**: 6h extractors, 6h TMDB, 30d posters
- **Terminal Posters**: View movie posters in your terminal
- **Tree View Navigation**: Keyboard and mouse support

---

## Quick Start

### Installation

```bash
# Install UV
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install Renamer
cd /path/to/renamer
uv sync
uv tool install .
```

See [INSTALL.md](INSTALL.md) for detailed installation instructions.

### Usage

```bash
# Scan current directory
renamer

# Scan specific directory
renamer /path/to/media
```

---

## Keyboard Commands

| Key | Action |
|-----|--------|
| `q` | Quit |
| `o` | Open directory |
| `s` | Scan/rescan |
| `f` | Refresh metadata |
| `r` | Rename file |
| `m` | Toggle mode (technical/catalog) |
| `p` | Toggle tree expansion |
| `h` | Show help |
| `Ctrl+S` | Settings |
| `Ctrl+P` | Command palette |

---

## Display Modes

### Technical Mode
- Video tracks (codec, bitrate, resolution, frame rate)
- Audio tracks (codec, channels, sample rate, language)
- Subtitle tracks (format, language)
- File information (size, modification time, path)

### Catalog Mode
- TMDB title, year, rating
- Overview/description
- Genres
- Poster image (if terminal supports)
- Technical metadata

Toggle with `m` key.

---

## File Renaming

**Proposed Format**: `Title (Year) [Resolution Source Edition].ext`

**Example**: `The Matrix (1999) [1080p BluRay].mkv`

1. Press `r` on selected file
2. Review proposed name
3. Confirm with `y` or cancel with `n`

---

## Configuration

**Location**: `~/.config/renamer/config.json`

```json
{
  "mode": "technical",
  "cache_ttl_extractors": 21600,
  "cache_ttl_tmdb": 21600,
  "cache_ttl_posters": 2592000
}
```

Access via `Ctrl+S` or edit file directly.

---

## Requirements

- **Python**: 3.11+
- **UV**: Package manager
- **MediaInfo**: System library (for technical metadata)
- **Internet**: For TMDB catalog mode

---

## Project Structure

```
renamer/
├── app.py                  # Main TUI application
├── services/               # Business logic
├── extractors/             # Metadata extraction
├── formatters/             # Display formatting
├── utils/                  # Shared utilities
├── cache/                  # Caching subsystem
└── constants/              # Configuration constants
```

See [ENGINEERING_GUIDE.md](ENGINEERING_GUIDE.md) for complete architecture documentation.

---

## Development

```bash
# Setup
uv sync --extra dev

# Run tests
uv run pytest

# Run from source
uv run renamer [directory]
```

See [DEVELOP.md](DEVELOP.md) for development documentation.

---

## Documentation

- **[ENGINEERING_GUIDE.md](ENGINEERING_GUIDE.md)** - Complete technical reference
- **[INSTALL.md](INSTALL.md)** - Installation instructions
- **[DEVELOP.md](DEVELOP.md)** - Development guide
- **[CHANGELOG.md](CHANGELOG.md)** - Version history
- **[CLAUDE.md](CLAUDE.md)** - AI assistant reference

---

## License

Not specified

---

## Credits

- Built with [Textual](https://textual.textualize.io/)
- Metadata from [MediaInfo](https://mediaarea.net/en/MediaInfo)
- Catalog data from [TMDB](https://www.themoviedb.org/)

---

**For complete documentation, see [ENGINEERING_GUIDE.md](ENGINEERING_GUIDE.md)**
