Public
Star ๅๅฒ่ถๅฟ
ๆฐๆฎๆฅๆบ: GitHub API ยท ็ๆ่ช Stargazers.cn
README.md
jiang-clips
Automated short-form clip extraction pipeline for YouTube videos using AI.
Prerequisites
- Runtime: Bun
- FFmpeg: Required for video processing
- Google Gemini API Key: Required for AI content generation
Setup
# Install dependencies
bun install
# Set environment variables
export GEMINI_API_KEY="your-api-key"Usage
# Run the pipeline on a single video
bun run src/index.ts pipeline <youtube-url>
# Batch process a channel
bun run src/index.ts batch <channel-url>
# Resume a previous run
bun run src/index.ts resume <run-id>
# Check status
bun run src/index.ts status [run-id]
# Clean up a run
bun run src/index.ts clean <run-id>Configuration
Environment variables (all optional with defaults):
| Variable | Default | Description |
|---|---|---|
GEMINI_API_KEY | (required) | Google Gemini API key |
WHISPER_MODEL | base | Whisper model size (tiny|base|small|medium|large) |
MAX_PARALLEL_CLIPS | 3 | Max parallel clip processing (1-10) |
SILENCE_THRESHOLD_DB | -35 | Silence detection threshold |
OUTPUT_WIDTH | 1080 | Output video width |
OUTPUT_HEIGHT | 1920 | Output video height |
Testing
bun test # All tests
bun test tests/utils # Single test directory
bun test tests/utils/fs.test.ts # Single test fileLinting & Formatting
oxlint # Lint src/ and tests/
oxfmt --write src tests # Format and write changes
oxfmt --check src tests # Check formatting without writingProject Structure
src/
โโโ index.ts # CLI entry point
โโโ config.ts # Configuration schema
โโโ pipeline/ # Pipeline orchestration
โโโ modules/ # Processing modules
โโโ utils/ # Utilities
โโโ remotion/ # Video rendering
tests/
โโโ pipeline/
โโโ modules/
โโโ utils/