Agent Developer c9041bde01 feat: enforce free tier limits (3 videos/batch, 720p max)
- config.py: add BATCHTUBE_PLAN env var, FREE_TIER_MAX_VIDEOS=3,
  FREE_TIER_MAX_RESOLUTION=720, PLAN_LIMITS map for all tiers
- api_server.py: cap resolution to 720p on free plan, reject CSV
  batches > 3 videos with 403 + upgrade prompt
- worker.py: truncate resolved video list to max_videos on free plan,
  emit tier_limit SSE event with upgrade message

Pricing tiers (2026-03-07 approved):
  Free: 3 videos/batch, 720p | Creator: $19/mo | Pro: $39/mo
  Studio: $79/mo | Lifetime: $197
2026-03-08 00:56:01 +00:00

BatchTube — Tauri Desktop App

Architecture

batchtube-tauri/
├── src-tauri/          # Rust/Tauri shell
│   ├── src/main.rs     # Spawns Python backend, manages window
│   ├── Cargo.toml
│   ├── tauri.conf.json
│   └── icons/          # App icons
├── backend/            # Existing Python FastAPI app (unchanged)
│   ├── api_server.py
│   ├── worker.py
│   ├── database.py
│   ├── extractors.py
│   ├── config.py
│   ├── web/            # Frontend HTML/CSS/JS
│   └── batchtube-server.spec  # PyInstaller spec
├── .github/workflows/  # Cross-platform CI/CD
│   └── build.yml
├── package.json
├── rollback.sh         # Revert to NSIS installer if needed
└── README.md

How It Works

  1. Tauri starts → spawns batchtube-server sidecar (PyInstaller bundle)
  2. Rust polls http://localhost:8765/api/health every 500ms
  3. When server ready → shows webview window loading http://localhost:8765
  4. User sees the existing BatchTube web UI inside a native window
  5. On close → Tauri kills the sidecar process

Build

Prerequisites

  • Rust (stable)
  • Node.js 22+
  • Python 3.11+
  • PyInstaller: pip install pyinstaller

Development

# Start Python backend first
cd backend && python api_server.py &
# Then start Tauri dev mode
npm run dev

Production Build

# Bundle Python backend
cd backend && pyinstaller batchtube-server.spec
# Build Tauri app
npm run build

Cross-Platform (CI/CD)

Push a tag v1.x.x to trigger GitHub Actions build for:

  • Windows (.exe + .msi)
  • macOS (.dmg — Intel + Apple Silicon)
  • Linux (.AppImage + .deb)

Rollback Plan

If Tauri build fails at any point:

bash rollback.sh

This reverts to the v1.0-pre-tauri git tag. The original NSIS Windows installer remains at BatchTube App/BatchTube-Windows-Build.zip.

Pricing Integration

License validation happens at app startup via http://localhost:8765/api/license. ThriveCart webhook at https://n8n.intentures.org/webhook/thrivecart handles purchase events.

Tier Price Limit
Free $0 5 videos/batch
Creator $9/mo 100/day, 1080p
Pro $19/mo Unlimited, 4K
Lifetime $97 Unlimited, 4K
Description
BatchTube — YouTube batch downloader desktop app
Readme 264 MiB
Languages
Python 51.4%
HTML 33.9%
CSS 10.5%
Rust 1.6%
NSIS 1.4%
Other 1.2%