AI Short Video 2026-06-03 · v1.2.9

2026 MoneyPrinterTurbo
на арендованном Mac mini M4
uv · 9:16 · bare-metal

Разработчики и SMM-команды, которым нужен автоматический пайплайн вертикального видео, часто упираются в Windows-one-click, SaaS RecCloud или покупку железа. Этот технический разбор показывает, как задеплоить harry0703/MoneyPrinterTurbo v1.2.9 через uv на арендованном Mac mini M4, сравнивает аренду, покупку и SaaS, даёт пять шагов деплоя, три метрики и FAQ по ffmpeg, MoviePy 2.x и Edge TTS на Apple Silicon.

MoneyPrinterTurbo AI-видео пайплайн на арендованном Mac mini M4 bare-metal

01 · Стек v1.2.9 и MVC

MoneyPrinterTurbo — Python-проект с чётким MVC: контроллеры orchestration, сервисы для LLM/TTS/материалов, view через Streamlit WebUI и OpenAPI на FastAPI (main.py). Вход — keyword или topic; выход — MP4 в ./storage.

WebUI: streamlit → :8501
API: uvicorn/FastAPI → :8080 (/docs, /redoc)
Runtime: Python 3.11 (uv-managed)
Video mux: MoviePy 2.x + ffmpeg (ImageMagick больше не нужен для субтитров)
TTS default: Edge TTS (= «Azure TTS V1» в UI, без API key)

Тег v1.2.9 фиксирует переход на pyproject.toml + uv.lock. README явно рекомендует macOS/Linux путь: uv python install 3.11 && uv sync --frozen. Windows one-click bundle застрял на более старом снимке (v1.2.6 portable + update.bat) — для CI/CD и headless API это неприемлемый drift.

Форматы вывода, критичные для Shorts/Reels/TikTok:

  • Portrait 9:16 — 1080×1920, H.264 через ffmpeg
  • Landscape 16:9 — 1920×1080
  • Batch — N вариантов на один prompt, ручной отбор лучшего

02 · Три системных ограничения

  1. Windows portable ≠ reproducible deploy. Антivirus, UAC, относительные пути ffmpeg и отсутствие lockfile делают nightly batch нестабильным. На арендованном macOS каждый прогон начинается с uv sync --frozen — бит-в-бит окружение.
  2. RecCloud SaaS снимает DevOps, но не data plane. Промпты и рендеры живут у вендора. Для команд с NDA или персональными данными в сценариях self-host на bare-metal — минимизация subprocessors.
  3. CapEx Mac mini при эпизодической нагрузке. M4 16 GB/512 GB ≈ 1299 € в EU; при 15 рабочих днях в год аренда ~22 €/день (MacDate HK-тариф, см. тарифы bare-metal) экономит >950 € hardware в первый год.

03 · Apple Silicon и I/O

Подсистема Роль в MPT M4 16 GB Узкое место
CPU (ARM64) LLM — cloud; ffmpeg mux локально 10-core (4P+6E) Batch >5 parallel jobs
Unified Memory MoviePy frames + Streamlit 16 GB Whisper large-v3 + batch
NVMe I/O Temp clips, ./storage Bare-metal direct VM jitter (не MacDate)
VideoToolbox H.264 encode assist Hardware path CPU fallback медленнее
Network Pexels + LLM API 1 Gbit/s dedicated HF model download

GPU не обязателен при cloud LLM + Edge TTS + Pexels. Локальный faster-whisper (subtitle_provider = whisper) грузит CPU; на M4 inference приемлем для single-clip, но large-v3 (~3 GB weights) требует 24 GB RAM и места в ./models/whisper-large-v3.

04 · TCO: аренда vs покупка vs SaaS

Сценарий: 160 vertical shorts/год, 45–90 сек, cloud LLM (gpt-4o-mini class ~$0.02–0.08/video), Edge TTS $0.

Модель Год 1 infra Контроль data plane API automation
Покупка M4 16 GB ≈ 1299 € + ~149 € opex Полный main.py :8080
MacDate посуточно ≈ 22 € × 15 дн = 330 € Bare-metal wipe Да
MacDate помесячно См. ценовое руководство Tenant isolation 7×24
RecCloud SaaS $0 entry, paid tiers Vendor-hosted Ограничено UI

Break-even: <60 rental days/year → аренда; continuous pipeline → monthly или purchase. Детальный 24-month TCO для AI-workloads: Mac mini M4 гибкая аренда и TCO 24 месяца — та же логика для video batch.

05 · Пять шагов uv-деплоя

  1. Арендовать Mac mini M4 — 16 GB RAM (24 GB для whisper batch). SSH key auth, отдельный macOS user. VNC для WebUI preview: удалённый доступ macOS.
  2. Install uv + clone v1.2.9 — зафиксировать tag, не tracking main.
  3. config.tomlpexels_api_keys[], llm_provider, provider API key; optional Azure speech_key для TTS V2.
  4. uv sync --frozen — resolve strictly from uv.lock; ulimit -n 10240 перед batch (fix Errno 24).
  5. Launch + smoke test 9:16 — Streamlit; один vertical clip; verify ./storage output; optional uv run python main.py для API path.
# MoneyPrinterTurbo v1.2.9 — bare-metal Mac mini
curl -LsSf https://astral.sh/uv/install.sh | sh
git clone https://github.com/harry0703/MoneyPrinterTurbo.git
cd MoneyPrinterTurbo && git checkout v1.2.9
uv python install 3.11
cp config.example.toml config.toml
# edit: pexels_api_keys, llm_provider, API keys
uv sync --frozen
ulimit -n 10240
uv run streamlit run ./webui/Main.py --browser.gatherUsageStats=False
# headless API:
uv run python main.py

Remote WebUI: export MPT_WEBUI_HOST=0.0.0.0 + SSH tunnel -L 8501:127.0.0.1:8501. Интеграция с OpenClaw для trigger-by-keyword: OpenClaw на арендованном Mac mini M4.

06 · Три метрики

  • 78 235+ GitHub stars (harry0703/MoneyPrinterTurbo, June 2026) — высокая community velocity ⇒ обязательный pin v1.2.9 в production.
  • 1080×1920 px — native vertical без post-crop; критично для алгоритмов Shorts (retention на первых 3 сек).
  • 3–7 min/clip на M4 16 GB (cloud LLM + Edge subs + 5 pexels clips) — планируйте batch window, не interactive laptop thermal envelope. Локальные assets из ./resource требуют ручной проверки прав — MPT не валидирует copyright.

07 · Субтитры: edge vs whisper

subtitle_provider = "edge" — timestamps из Edge TTS, zero GPU, sub-second alignment setup; иногда drift на длинных предложениях.

subtitle_provider = "whisper" — faster-whisper local, word-level accuracy, +30–90 s/clip на CPU M4, модель large-v3 ~3 GB (или large-v3-turbo ~250 MB). HuggingFace download может упасть — manual mirror в README (Baidu/Quark) или offline copy в ./models/.

MoviePy 2.x рендерит subtitles через Pillow — ImageMagick dependency удалена с недавних версий. Если видите ImageMagick error — вы на stale branch; git checkout v1.2.9.

На уровне Darwin/XNU пайплайн выглядит так: Python spawn → MoviePy декодирует Pexels-MP4 через ffmpeg subprocess → AudioTrack → Edge TTS WAV → mux. Unified Memory на M4 позволяет держать Streamlit UI и один encode job без swap до ~14 GB footprint; второй parallel job на 16 GB — риск memory pressure и OOM kill от jetsam. Для agency batch: serial queue или bump to 24 GB M4 Pro rental.

Pexels rate limit: бесплатный tier ограничивает requests/hour — при 20 keywords prefetch materials или cache ./cache если включено в вашем fork. LLM rate limits ловите через exponential backoff в config или queue keywords по 5 штук за iteration.

08 · Headless API и batch-оркестрация

Production path без Streamlit: uv run python main.py поднимает FastAPI на :8080. Cron на том же Mac или SSH-trigger с Linux CI шлёт JSON с keyword → получает path к MP4 в ./storage. Render остаётся on-box; наружу уходят только LLM и Pexels — минимальный egress footprint compared to full SaaS.

llm_provider ~€/video Script latency Notes
openai 0.02–0.06 2–5 s Stable JSON output
deepseek 0.01–0.03 3–8 s Cost-efficient batch nights
ollama local 0 API 15–60 s 16 GB caps model size; see OpenClaw + Ollama on rented Mac
gemini 0.02–0.05 2–6 s Policy volatility — pin API not OAuth

Batch profile: 20 keywords × 9:16 на M4 16 GB, cloud LLM + Edge subs ≈ 60–120 min wall time. Перед ночным прогоном: ulimit -n 10240, caffeinate -dims, отдельный macOS user per client. Логируйте keyword, duration, estimated API spend — input для TCO vs RecCloud.

Docker-compose path из README работает, но на bare-metal Mac mini uv быстрее iter cycle и reliably проще wipe secrets при return node. VM добавляет I/O jitter на ffmpeg temp files — для frame-accurate subs нежелательно.

Сравнение с Windows VPS: дешёвый vCPU не компенсирует отсутствие VideoToolbox и native H.264 path. Antivirus scan temp MP4 добавляет 15–25 % к batch window. На MacDate bare-metal вы получаете deterministic encode time — важно для SLA «clip к 08:00» перед SMM-публикацией.

Security hardening на rented node: отключите auto-login, используйте firewall только для SSH/VNC с вашего IP, не храните API keys в git; config.toml в .gitignore. Перед return — APFS delete user home или documented wipe, rotate все keys issued during rental window.

08 · Почему bare-metal macOS, а не VPS или Docker-only

MoneyPrinterTurbo опирается на MoviePy 2.x и системный ffmpeg. На Apple Silicon bare-metal вы получаете VideoToolbox для H.264/H.265 и предсказуемый I/O на APFS — temp-файлы рендера не проходят через слой виртуализации. Типичный VPS на x86 без GPU даёт только software encode: одна 9:16 клип 60 s может занять 8–12 минут против 4–7 минут на Mac mini M4 при том же сценарии (cloud LLM + Edge TTS).

Унифицированная память M4 означает, что whisper large-v3 (~3 GB) и Streamlit WebUI делят один пул RAM. На 16 GB узле держите один активный Streamlit session; batch через API (uv run python main.py) стабильнее для ночных прогонов. При 24 GB можно параллелить два job queue с tmux windows — но не смешивайте whisper и массовый Pexels download в один процесс: оба бьют по disk I/O.

SSH-туннель для WebUI без публикации 8501 в интернет:

# Локально (ваш ноутбук) $ ssh -L 8501:127.0.0.1:8501 -i ~/.ssh/macdate_key admin@203.0.113.10 # На арендованном Mac $ export MPT_WEBUI_HOST=127.0.0.1 $ tmux new -s mpt $ uv run streamlit run ./webui/Main.py --browser.gatherUsageStats=False

Для команд из 3–5 человек: один dedicated rental node, общий output/ через SFTP, API keys в macOS Keychain per-user account. После кампании — documented wipe на MacDate и rotation всех Pexels/LLM keys. Это дешевле второго физического Mac mini и безопаснее, чем sharing SaaS workspace с внешними редакторами.

Сравнение с Colab: notebook-сессия 12 h cap, нет persistent resource/songs, нельзя повесить cron на main.py. Colab — один demo clip; bare-metal rent — production pipeline на 3–12 месяцев.

09 · Отладка

  • RuntimeError: No ffmpeg exe — brew install ffmpeg или ffmpeg_path в [app] секции config.toml.
  • OSError [Errno 24]ulimit -n 10240.
  • Streamlit blank page — Chrome/Edge; disable aggressive content blockers on localhost tunnel.
  • LLM timeout — rate limits; switch provider или increase timeout in config.
  • jetsam / memory pressure — reduce parallel jobs; upgrade to 24 GB rental tier; close Streamlit during API-only batch.

Post-deploy checklist for production: (1) git describe --tags == v1.2.9; (2) uv run python -c "import moviepy; print(moviepy.__version__)" confirms 2.x; (3) one 9:16 clip archived; (4) API keys rotation schedule documented; (5) wipe procedure linked in project ticket before Mac return date.

10 · Вердикт и аренда Mac

Windows one-click и RecCloud — valid для proof-of-concept. Они ломаются как long-term strategy, когда нужны: API automation (:8080), reproducible uv lockfile, tenant-isolated API keys, batch 9:16 без UI babysitting. Покупка Mac mini при сезонных кампаниях — immobilized CapEx с >75% idle time по типичным SMM-командам.

Арендованный bare-metal Mac mini M4 даёт: native ARM64 ffmpeg path, VideoToolbox encode, чистый Keychain для secrets, wipe-on-return без forensic residue на вашем daily driver. Три-пять дней аренды хватит на deploy + 20 test clips + TCO spreadsheet; дальше — monthly или purchase по цифрам. При minor releases сверяйте CHANGELOG перед повторным uv sync --frozen.

MacDate предоставляет dedicated Apple Silicon nodes; не аффилирован с harry0703 или RecCloud. Stand: 3 июня 2026, upstream tag v1.2.9. См. также заказ M4 узлов и аренда vs покупка Mac mini. RecCloud остаётся быстрым POC, но не заменяет self-host API automation на bare-metal macOS.