Files
Conal Mullan 290d7d345b Adopt uv for Python dependency management (#33 rebased, thanks @AsharibAli) (#59)
* Adopt uv for Python dependency management

Replace manual pip/venv setup with `uv sync` (pyproject.toml + uv.lock),
and switch all tool invocations across docs, skills, commands, and
examples to `uv run`. Optional extras: --extra whisper, --extra modal.
tools/requirements.txt is kept as a pip fallback.

* FIX: bring uv migration current with main — post-June deps and docs

Adds websocket-client (60db websocket transport) to core deps and a
'youtube' extra for the google-* packages (tools/youtube_upload.py),
regenerates uv.lock, bumps pyproject version to 0.18.0, and converts the
51 'python3 tools/…' invocations added since the PR was opened (60db,
YouTube, Kiro docs, publish command) to 'uv run'. Verified with
uv sync --frozen --extra youtube; voiceover, sixtydb_tts, youtube_upload
and migrate_to_kiro all run through the project environment.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Asharib Ali <asharibarain4@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-26 22:55:43 +01:00

43 lines
1.9 KiB
Plaintext

# Video Toolkit Python Dependencies
#
# NOTE: The recommended install path is now uv (https://docs.astral.sh/uv/):
# uv sync # from the toolkit root — reads pyproject.toml + uv.lock
# uv sync --extra whisper # optional karaoke captions (heavy, pulls in torch)
# uv sync --extra modal # optional Modal CLI for self-hosted cloud GPU
# uv sync --extra youtube # optional YouTube upload deps
# This file is kept as a pip fallback only. Keep it in sync with pyproject.toml.
elevenlabs>=1.0.0
python-dotenv>=1.0.0
requests>=2.28.0
boto3>=1.28.0 # For Cloudflare R2 (S3-compatible)
# 60db TTS websocket transport (tools/sixtydb_tts.py --transport websocket).
# Optional: only needed for the realtime websocket transport; the default
# REST 'synthesize' transport uses `requests` above.
websocket-client>=1.6.0
# Image processing — used by tools/flux2.py, tools/image_edit.py, and the
# moviepy examples for PIL-based text rendering
Pillow>=10.0
# moviepy examples (examples/quick-spot, examples/data-viz-chart) —
# Python-native video composition as an alternative to Remotion for
# short-form ad spots, lower thirds, and data-driven scenes
moviepy>=2.0
matplotlib>=3.7
# Optional — YouTube upload (tools/youtube_upload.py) — OAuth 2.0 + Data API v3
# resumable upload. Only needed if you publish to YouTube. Uncomment to enable
# (the tool prints an install hint if they're missing). NOTE: pip package names
# differ from their import names, e.g.
# google-api-python-client -> import googleapiclient
# google-auth-oauthlib -> import google_auth_oauthlib
# google-auth-httplib2 -> (transport glue, pulled in transitively)
# google-api-python-client>=2.100.0
# google-auth-oauthlib>=1.2.0
# google-auth-httplib2>=0.2.0
# Optional — burned karaoke captions in templates/concept-explainer-short
# (word-level timing; heavy install, pulls in torch). Uncomment to enable:
# openai-whisper