Personal tool library for video and music file handling
Project description
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:
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:
brew upgrade spatelier
Global Installation with pipx
Want to use spatelier from anywhere? Use pipx:
# 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 for all global installation options.
From PyPI
# 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:
# 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 and run directly (no Python installation required).
Troubleshooting
If you're having issues with installation, see GLOBAL_INSTALL.md for global installation options.
Usage
# 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
# 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 for guidelines.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
Changelog
See CHANGELOG.md for a list of changes in each version.
Security
For security concerns, please see SECURITY.md.
License
MIT License - see LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file spatelier-0.3.7.tar.gz.
File metadata
- Download URL: spatelier-0.3.7.tar.gz
- Upload date:
- Size: 105.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bba2f9da7e2809eb8b7d05efacd054f06780e1a050e58c5f17705ade52762dfc
|
|
| MD5 |
7f84edb1da7d8e9f637a28dde4aeafb1
|
|
| BLAKE2b-256 |
b2289e00f54510e95aeb8cced854acb1949428022af0997a82c64fef4c0f7bb5
|
File details
Details for the file spatelier-0.3.7-py3-none-any.whl.
File metadata
- Download URL: spatelier-0.3.7-py3-none-any.whl
- Upload date:
- Size: 125.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69f58f18b9308149224b2fc54cfe4336208b34e27383e9b8038e1d8b2e07ecf0
|
|
| MD5 |
4af834d0a7c56267900cbf1687fea47f
|
|
| BLAKE2b-256 |
02b7bd5da9d42618bb48c61e9d198e42f2ae289d1d963194360dd95fe90f6dc4
|