Metadata-Version: 2.4
Name: spatelier
Version: 0.3.2
Summary: Personal tool library for video and music file handling
Author-email: Galen Spikes <galenspikes@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/galenspikes/spatelier
Project-URL: Documentation, https://github.com/galenspikes/spatelier#readme
Project-URL: Repository, https://github.com/galenspikes/spatelier
Project-URL: Issues, https://github.com/galenspikes/spatelier/issues
Project-URL: Changelog, https://github.com/galenspikes/spatelier/blob/main/CHANGELOG.md
Keywords: video,audio,media,youtube,download,transcription,processing,cli,tool
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer[all]>=0.9.0
Requires-Dist: rich>=13.0.0
Requires-Dist: click>=8.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: loguru>=0.7.0
Requires-Dist: yt-dlp>=2023.12.30
Requires-Dist: ffmpeg-python>=0.2.0
Requires-Dist: mutagen>=1.47.0
Requires-Dist: pillow>=10.0.0
Requires-Dist: faster-whisper>=0.9.0
Requires-Dist: sqlalchemy>=2.0.0
Requires-Dist: alembic>=1.12.0
Provides-Extra: youtube-api
Requires-Dist: google-api-python-client>=2.0.0; extra == "youtube-api"
Requires-Dist: google-auth-httplib2>=0.1.0; extra == "youtube-api"
Requires-Dist: google-auth-oauthlib>=1.0.0; extra == "youtube-api"
Provides-Extra: analytics
Requires-Dist: pandas>=2.0.0; extra == "analytics"
Requires-Dist: matplotlib>=3.7.0; extra == "analytics"
Requires-Dist: seaborn>=0.12.0; extra == "analytics"
Requires-Dist: plotly>=5.15.0; extra == "analytics"
Provides-Extra: mongodb
Requires-Dist: pymongo>=4.5.0; extra == "mongodb"
Requires-Dist: motor>=3.3.0; extra == "mongodb"
Provides-Extra: web
Requires-Dist: beautifulsoup4>=4.12.0; extra == "web"
Requires-Dist: playwright>=1.40.0; extra == "web"
Requires-Dist: requests>=2.31.0; extra == "web"
Provides-Extra: all
Requires-Dist: google-api-python-client>=2.0.0; extra == "all"
Requires-Dist: google-auth-httplib2>=0.1.0; extra == "all"
Requires-Dist: google-auth-oauthlib>=1.0.0; extra == "all"
Requires-Dist: pandas>=2.0.0; extra == "all"
Requires-Dist: matplotlib>=3.7.0; extra == "all"
Requires-Dist: seaborn>=0.12.0; extra == "all"
Requires-Dist: plotly>=5.15.0; extra == "all"
Requires-Dist: pymongo>=4.5.0; extra == "all"
Requires-Dist: motor>=3.3.0; extra == "all"
Requires-Dist: beautifulsoup4>=4.12.0; extra == "all"
Requires-Dist: playwright>=1.40.0; extra == "all"
Requires-Dist: requests>=2.31.0; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
Requires-Dist: psutil>=7.2.1; extra == "dev"
Requires-Dist: alembic>=1.18.1; extra == "dev"
Requires-Dist: pandas>=2.0.0; extra == "dev"
Requires-Dist: matplotlib>=3.7.0; extra == "dev"
Requires-Dist: seaborn>=0.12.0; extra == "dev"
Requires-Dist: plotly>=5.15.0; extra == "dev"
Dynamic: license-file

# Spatelier

A personal tool library for video and music file handling, built with modern Python architecture and inspired by excellent projects like yt-dlp.

## Features

- **Video Processing**: Download, transcribe, and process videos with automatic subtitle embedding
- **Audio Processing**: Extract, convert, and normalize audio from videos
- **Analytics**: Track usage and generate insights from your media library
- **Database Management**: SQLite + MongoDB for structured and unstructured data
- **Batch Operations**: Process multiple files with intelligent resume logic
- **NAS Support**: Smart handling of Network Attached Storage with local processing
- **Comprehensive Testing**: Full test suite with unit, integration, and performance tests
- **Modern CLI**: Beautiful, type-safe command-line interface with Rich output

## Architecture

```
spatelier/
├── cli/                 # Command-line interface modules
├── core/               # Core functionality and base classes
├── modules/            # Feature modules (video, audio, etc.)
├── database/           # Database models, connections, and repositories
├── analytics/          # Analytics and reporting
├── utils/              # Utility functions and helpers
├── tests/              # Comprehensive test suite
└── bin/                # Executable scripts
```

## Installation

### Homebrew (Recommended - No pip/venv needed!)

**Install with Homebrew - handles everything automatically:**

```bash
brew install --build-from-source https://raw.githubusercontent.com/galenspikes/spatelier/main/Formula/spatelier.rb
```

That's it! `spatelier` is now available system-wide. No pip, no venv, no Python management.

**Update:**
```bash
brew upgrade spatelier
```

### Global Installation with pipx

**Want to use `spatelier` from anywhere? Use pipx:**

```bash
# Install pipx (one-time setup)
brew install pipx
pipx ensurepath

# Install Spatelier globally
pipx install -e /path/to/spatelier

# Or from PyPI (once published)
pipx install spatelier
```

Now `spatelier` works from any directory! No venv activation needed.

**See [GLOBAL_INSTALL.md](GLOBAL_INSTALL.md) for all global installation options.**

### From PyPI

```bash
# Basic installation
pip install spatelier

# With optional features
pip install spatelier[transcription,analytics]
pip install spatelier[all]  # All optional features
```

### From Source (Development)

For development, you'll need to activate the virtual environment:

```bash
# 1. Clone the repository
git clone https://github.com/galenspikes/spatelier
cd spatelier

# 2. Activate virtual environment
source venv/bin/activate

# 3. Install in development mode
pip install -e ".[dev]"

# 4. Install pre-commit hooks
pre-commit install
```


### Standalone Executable

Download the latest release from [GitHub Releases](https://github.com/galenspikes/spatelier/releases) and run directly (no Python installation required).

### Troubleshooting

If you're having issues with installation, see [GLOBAL_INSTALL.md](GLOBAL_INSTALL.md) for global installation options.

## Usage

```bash
# List available commands
spatelier --help

# Video processing
spatelier video download <url>                    # Download video
spatelier video download-enhanced <url>           # Download with transcription
spatelier video download-playlist <url>          # Download entire playlist (no transcription)
spatelier video embed-subtitles <video>          # Embed subtitles
spatelier video convert <input> <output>         # Convert format
spatelier video info <video>                      # Show video info

# Audio processing
spatelier audio convert <input> <output>          # Convert audio format
spatelier audio info <audio>                      # Show audio info

# Batch operations

# Analytics
spatelier analytics report                        # Generate usage reports

```

## Development

```bash
# Run tests
pytest                                    # Run all tests
pytest -m unit                          # Run unit tests only
pytest -m integration                   # Run integration tests only
pytest -m nas                           # Run NAS tests (requires NAS)

# Format code
black .
isort .

# Type checking
mypy .

# Linting
flake8 .

# Database migrations
alembic revision --autogenerate -m "description"
alembic upgrade head
```

## Contributing

We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests
5. Submit a pull request

## Changelog

See [CHANGELOG.md](CHANGELOG.md) for a list of changes in each version.

## Security

For security concerns, please see [SECURITY.md](SECURITY.md).

## License

MIT License - see [LICENSE](LICENSE) file for details.
