Files
Medios-Macina/readme.md

105 lines
4.2 KiB
Markdown
Raw Normal View History

2025-12-11 19:04:02 -08:00
# Medios-Macina
2025-12-17 14:17:46 -08:00
Medios-Macina is a CLI-first media ingestion and management toolkit focused on reliably downloading, tagging, and storing media (audio, video, images, and text) from a variety of providers and sources. It is designed around a compact, pipeable command language ("cmdlets") so complex workflows can be composed simply and repeatably.
2025-12-13 00:18:30 -08:00
2025-12-17 14:17:46 -08:00
## Highlights ✅
- Flexible pipeline-based CLI: chain cmdlets with `|` and use saved selections with `@N`.
- Multi-store support: HydrusNetwork, local folders, and provider-backed stores.
- Provider integrations: YouTube, OpenLibrary/Archive.org, Soulseek, LibGen, AllDebrid, and more.
- Utility cmdlets: screenshots (Playwright), metadata extraction, merging, and automated tagging.
- MPV-friendly: integrate with MPV playback and playlists for quick ingestion.
2025-12-13 00:18:30 -08:00
2025-12-17 14:17:46 -08:00
## Quick start ⚡
1. Install Python requirements:
2025-12-13 00:18:30 -08:00
2025-12-17 14:17:46 -08:00
```powershell
python -m pip install -r requirements.txt
# Automated setup (recommended): run the single Python setup script which installs
# all Python dependencies (from requirements.txt) and downloads Playwright browsers.
# Usage:
python ./scripts/setup.py
# Advanced options:
# - Skip dependency installation: python ./scripts/setup.py --skip-deps
# - Install only Playwright browsers: python ./scripts/setup.py --playwright-only
```
2. Copy or edit `config.conf` and set a required `temp` directory where intermediate files are written. Example:
2025-12-13 00:18:30 -08:00
```ini
temp="C:\\Users\\Admin\\Downloads"
[store=folder]
name="default"
path="C:\\Media Machina"
[store=hydrusnetwork]
2025-12-13 12:09:50 -08:00
NAME="home"
API="..."
URL="http://localhost:45869"
2025-12-13 00:18:30 -08:00
[provider=OpenLibrary]
email="user@example.com"
password="..."
```
2025-12-17 14:17:46 -08:00
3. Start the CLI:
2025-12-11 19:04:02 -08:00
2025-12-17 14:17:46 -08:00
```powershell
2025-12-11 19:04:02 -08:00
cd "C:\location\to\repository\medios-machina\"
python cli.py
```
2025-12-17 14:17:46 -08:00
## Usage overview 🔧
- Pipelines: chain cmdlets with `|`, e.g., `download-media <url> | add-file -storage local`.
- Selections: search cmdlets populate a selectable ResultTable; refer to entries with `@<index>`.
- Tagging & metadata: `add-tag` mutates piped results (temporary path items) or writes to a configured store when `-store` is provided.
2025-12-11 19:04:02 -08:00
2025-12-17 14:17:46 -08:00
## Common examples 💡
Simple download with metadata (tags and URL registration):
```bash
2025-12-11 19:04:02 -08:00
download-media "https://www.youtube.com/watch?v=dQw4w9WgXcQ" | add-file -storage local | add-url
```
2025-12-17 14:17:46 -08:00
Download a playlist item:
```bash
2025-12-11 19:04:02 -08:00
download-media "https://www.youtube.com/playlist?list=PLxxxxx" -item 2 | add-file -storage local | add-url
```
2025-12-17 14:17:46 -08:00
Take a website screenshot, tag it, and store locally:
```bash
screen-shot "https://example.com/page" | add-tag "title:Example Page,source:web" | add-file -store local
2025-12-11 19:04:02 -08:00
```
2025-12-17 14:17:46 -08:00
OpenLibrary ingestion (book metadata & PDF/ebook handling is automatically enriched when `add-file` detects an OpenLibrary URL):
```bash
add-file "https://openlibrary.org/books/OLxxxxxM/Book_Title" -storage local
2025-12-11 19:04:02 -08:00
```
2025-12-17 14:17:46 -08:00
Search & download flow (select with `@`):
```bash
search-file -provider youtube "my favourite track"
@1
download-media [URL] | add-file -store hydrus
2025-12-11 19:04:02 -08:00
```
2025-12-17 14:17:46 -08:00
## Providers & stores
- **HydrusNetwork**: use for database-backed media storage and advanced tagging (requires running Hydrus client/server).
- **Local folder**: copy files to a configured directory (fast and simple).
- **YouTube / yt-dlp**: robust media downloader for YouTube and many hosts.
- **OpenLibrary / Archive.org**: scripted metadata scraping and optional downloads.
- **Soulseek, LibGen, All-Debrid, Others**: provider support is modular—add or configure providers in `config.conf`.
## Troubleshooting & tips 🛠️
- If a cmdlet complains about an unknown store, ensure the piped item has a valid local `path` or use `-store <name>` to target a configured backend.
- For Playwright screenshots, run `playwright install` after installing the package to download browser binaries.
- Use `--debug` to enable verbose logs when tracking down an error.
2025-12-11 19:04:02 -08:00
2025-12-17 14:17:46 -08:00
## Contributing & docs ✨
- Developer docs are generated under `docs/` and tests live alongside the code; please run the test suite before submitting changes.
- Contributions welcome—open issues or pull requests with clear descriptions and small, focused diffs.
2025-12-11 19:04:02 -08:00
2025-12-17 14:17:46 -08:00
---
2025-12-11 19:04:02 -08:00
2025-12-17 14:17:46 -08:00
If you'd like, I can add a short _Quick Reference_ section listing the most-used cmdlets and flags, or add badges and a table of contents. What would you like me to add next? 🚀