Platform Otomasi Pembuatan Video Pendek Cerdas Berbasis AI
Ubah video YouTube panjang menjadi klip pendek siap posting dengan face tracking otomatis & subtitle instan.
Fitur β’ Arsitektur β’ Persyaratan β’ Instalasi β’ Penggunaan β’ Tech Stack
Clipper.AI adalah platform web otomasi berbasis AI yang mengubah video YouTube panjang menjadi klip pendek vertikal (9:16) maupun horizontal (16:9) yang siap diposting ke platform seperti YouTube Shorts, Instagram Reels, dan TikTok.
Cukup masukkan link YouTube, tentukan timestamp klip yang diinginkan, dan biarkan AI menangani sisanya β mulai dari face tracking & auto-reframe hingga pembuatan subtitle otomatis.
Link YouTube β Pilih Timestamp β AI Proses Otomatis β Download Video + Subtitle
- Paste link YouTube β Sistem otomatis mengambil judul, thumbnail, dan durasi video.
- Tentukan timestamp β Pilih satu atau lebih segment waktu yang ingin diklip beserta aspect ratio-nya.
- AI memproses otomatis β Download segment, face tracking & auto-reframe, generate subtitle.
- Download hasil β Video klip (.mp4) dan file subtitle (.srt) siap diunduh.
Berikut adalah tampilan antarmuka (UI/UX) modern premium dari Clipper.AI yang menggunakan tema dark mode dan efek glassmorphism:
Halaman utama minimalis untuk memasukkan link video YouTube.

Panel interaktif untuk menentukan durasi waktu klip (start/end) dan orientasi aspek rasio (Vertikal 9:16 atau Horizontal 16:9).

Halaman pemantau progress pemrosesan video yang di-update secara otomatis.

Halaman akhir untuk memutar hasil klip secara instan, menyalin teks transkripsi AI sekali-klik, dan mengunduh video (.mp4) beserta subtitle (.srt / .vtt).

Panel dashboard manajemen riwayat untuk memantau status tugas, menghapus tugas/tugas yang gagal, dan melihat log debug konsol pemrosesan.

- Input link YouTube, sistem otomatis mengambil metadata video (judul, thumbnail, durasi).
- Tentukan banyak klip sekaligus dari satu video dengan timestamp berbeda.
- Pilih output Vertikal (9:16) untuk Shorts/Reels/TikTok atau Horizontal (16:9) untuk format standar.
- Detektor Ganda Utama & Fallback: Menggunakan MediaPipe Face Detection sebagai detektor utama yang sangat presisi, dengan fallback otomatis ke OpenCV Haar Cascade jika MediaPipe tidak terinstal, serta fallback akhir ke stable center-crop agar pemrosesan tidak pernah gagal total.
- Arsitektur Dual-Pass:
- Pass 1: Menganalisis metadata koordinat wajah di setiap frame tanpa membebani memori (memory-safe).
- Pass 2: Melakukan cropping, auto-reframe, dan perpaduan audio secara presisi berdasarkan metadata.
- Target Lock & Hysteresis: Mengunci target wajah utama pada video multi-person (seperti podcast) untuk mencegah efek "loncat target" atau glitching antar pembicara.
- Lost-Face Hold & Dead-Zone: Mempertahankan posisi kamera terakhir saat wajah tertutup sementara (lost-face hold), dan menghindari getaran kamera kecil yang tidak perlu menggunakan rentang dead-zone dinamis.
- EMA Smooth Path: Transisi pergerakan kamera super mulus dengan Exponential Moving Average (EMA) agar pergerakan terasa sinematik seperti diarahkan juru kamera profesional.
- Progressive Logs: Output log real-time yang detail sehingga Laravel queue worker dapat memantau status secara live tanpa dianggap stuck.
- Fast Transcription: Transkripsi audio menggunakan Groq Cloud API (Whisper Large V3) β gratis dan super cepat (1β2 detik).
- Format .srt & .json: Menghasilkan file subtitle standar SRT serta format timestamps word-level JSON untuk penempatan waktu yang sangat akurat.
- Dynamic Styling (Advanced SubStation Alpha): Memanfaatkan
subtitle_styler.pyuntuk menghasilkan efek subtitle bergaya viral dengan highlight kata aktif (berwarna kuning tebal:&H00FFFF&) disertai animasi popup dinamis saat diucapkan pembicara. - Auto Burn-In (FFmpeg Filter): Melakukan proses burn-in langsung ke video output menggunakan filter FFmpeg secara optimal dan efisien tanpa merusak sinkronisasi audio.
- Multi-language: Mendukung berbagai bahasa secara otomatis (auto-detect language).
- Pantau status pemrosesan setiap klip secara real-time dengan progress bar.
- Status update live: downloading β face tracking β transcribing β completed.
- Debug console bawaan untuk melihat log proses secara detail.
- Lihat riwayat semua video dan klip yang pernah diproses.
- Hapus tugas yang gagal atau yang sudah selesai didownload.
- Status indikator visual: pending, processing, completed, failed.
- Desain modern dengan glassmorphism, gradient, dan micro-animations.
- Dark mode theme yang elegan dan nyaman di mata.
- Fully responsive β berfungsi baik di desktop maupun mobile.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BROWSER (Frontend) β
β Laravel Blade + Vite + Vanilla CSS β
β β
β Dashboard β Clip Selector β Processing β Results Page β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β HTTP / AJAX Polling
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββ
β LARAVEL BACKEND (PHP) β
β β
β VideoController βββ ProcessVideoClipJob (Queue) β
β β β β
β Video Model Clip Model β
β (videos table) (clips table) β
ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
β Symfony Process (subprocess)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PYTHON AI PIPELINE β
β β
β clipper_bot.py (Orchestrator) β
β β β
β βββ yt-dlp β Download segment YouTube β
β βββ face_tracker.py β MediaPipe/OpenCV tracking β
β βββ transcribe.py β Groq Whisper β SRT & JSON β
β βββ subtitle_styler.pyβ Dynamic ASS style & burn-in β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Software | Versi Minimum | Keterangan |
|---|---|---|
| PHP | 8.3+ | Runtime Laravel |
| Composer | 2.x | PHP dependency manager |
| Node.js | 18+ | Build frontend assets (Vite) |
| NPM | 9+ | Node package manager |
| Python | 3.10+ | AI pipeline scripts |
| FFmpeg | 6.0+ | Video processing & transcoding |
| SQLite | 3.x | Database (default, bisa diganti MySQL/PostgreSQL) |
| Layanan | Kegunaan | Link |
|---|---|---|
| Groq API | Transkripsi Whisper (speech-to-text) | console.groq.com/keys |
Catatan: Groq API sepenuhnya gratis dengan limit sangat besar. Cukup daftar akun dan generate API key.
git clone https://github.com/dapaaa07/ai-clipper.git
cd ai-clippercomposer install# Salin file environment template
cp .env.example .env
# Generate application key
php artisan key:generateEdit file .env dan sesuaikan konfigurasi berikut:
# Nama aplikasi
APP_NAME="Clipper.AI"
# Database (default SQLite, tidak perlu diubah)
DB_CONNECTION=sqlite
# Queue driver (wajib database untuk job processing)
QUEUE_CONNECTION=database
# Groq API Key (dapatkan gratis di https://console.groq.com/keys)
GROQ_API_KEY=gsk_YOUR_API_KEY_HERE# Buat file database SQLite
touch database/database.sqlite
# Jalankan migrasi untuk membuat tabel
php artisan migratephp artisan storage:link# Buat virtual environment Python
python3 -m venv python_venv
# Aktifkan virtual environment
source python_venv/bin/activate
# Install dependensi Python
pip install -r app/PythonScripts/requirements.txt
# Deaktifkan virtual environment
deactivate# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg -y
# Verifikasi instalasi
ffmpeg -versionnpm install# Untuk development (dengan hot reload)
npm run dev
# Untuk production
npm run buildAnda perlu menjalankan 3 proses secara bersamaan di terminal terpisah:
Terminal 1 β Laravel Development Server:
php artisan serveTerminal 2 β Queue Worker (untuk memproses video di background):
php artisan queue:work --timeout=1800 --tries=1 --memory=512Terminal 3 β Vite Dev Server (untuk hot reload frontend):
npm run devπ‘ Alternatif: Jalankan semuanya sekaligus dengan satu perintah:
composer dev
Buka browser dan akses: http://localhost:8000
Untuk menghindari error HTTP Error 429: Too Many Requests atau verifikasi bot (Sign in to confirm you're not a bot), Clipper.AI menggunakan pendekatan khusus dengan menyuntikkan cookies browser aktif dan memanfaatkan Javascript Runtime (Node.js).
-
Instal Node.js di Sistem: Pastikan Node.js terinstal di sistem Anda.
yt-dlpmemerlukan Javascript Runtime untuk memecahkan tantangan sandi signature player YouTube.node -v
-
Ekspor Cookies dari Browser:
- Pasang ekstensi browser seperti Get cookies.txt LOCALLY (tersedia untuk Chrome/Edge/Firefox).
- Buka YouTube di browser Anda dan pastikan Anda dalam keadaan aktif (login disarankan agar session cookies lebih tahan lama).
- Klik ikon ekstensi dan pilih Export / Download untuk mendapatkan format Netscape cookies.
- Simpan file tersebut dengan nama
cookies.txttepat di root direktori proyek Anda (/opt/lampp/htdocs/ai-clipper/cookies.txt).
-
Keamanan & Otomatisasi:
- File
cookies.txttelah ditambahkan ke.gitignoresecara otomatis sehingga aman dan tidak akan pernah ter-push ke GitHub publik Anda. - Skrip pipeline (
clipper_bot.py) akan mendeteksi keberadaan filecookies.txtdi root secara otomatis dan menyuntikkannya keyt-dlpbeserta argumen bypass handal lainnya (--js-runtimes node&--remote-components ejs).
- File
- Buka halaman utama (
http://localhost:8000). - Paste URL video YouTube yang ingin di-clip pada kolom input.
- Klik tombol "Analisis Video" β sistem akan mengambil informasi video secara otomatis.
- Atur waktu mulai dan waktu selesai untuk setiap klip yang diinginkan.
- Pilih aspect ratio: Vertikal (9:16) untuk Shorts/Reels/TikTok atau Horizontal (16:9).
- Anda bisa menambahkan banyak klip sekaligus dari satu video.
- Klik tombol "Ekspor Klip Sekarang" untuk memulai pemrosesan.
- Pantau progress setiap klip secara real-time:
- π₯ Downloading (0β20%) β Mengunduh segment video dari YouTube.
- π€ Face Tracking (20β55%) β AI mendeteksi wajah dan melakukan auto-reframe.
- π Transcribing (55β90%) β AI mentranskripsi audio menjadi subtitle.
- β Completed (100%) β Klip siap didownload.
- Setelah semua klip selesai diproses, klik "Lihat Hasil".
- Download file video klip (
.mp4) dan subtitle (.srt) yang dihasilkan.
ai-clipper/
βββ app/
β βββ Http/Controllers/
β β βββ VideoController.php # Controller utama (parse, clip, status)
β βββ Jobs/
β β βββ ProcessVideoClipJob.php # Queue job untuk processing video
β βββ Models/
β β βββ Video.php # Model video (youtube_url, title, dll)
β β βββ Clip.php # Model klip (timestamp, status, progress)
β βββ PythonScripts/
β βββ clipper_bot.py # Orchestrator utama pipeline AI
β βββ face_tracker.py # OpenCV/MediaPipe face tracking & crop
β βββ transcribe.py # Groq API Whisper transcription
β βββ subtitle_styler.py # Pembuat subtitle ASS & burn-in FFmpeg
β βββ requirements.txt # Dependensi Python
βββ database/
β βββ migrations/
β βββ create_videos_table.php # Skema tabel videos
β βββ create_clips_table.php # Skema tabel clips
βββ resources/
β βββ views/
β βββ dashboard.blade.php # Halaman utama (input URL)
β βββ clip_selector.blade.php # Halaman pilih timestamp & aspect ratio
β βββ processing.blade.php # Halaman monitoring progress real-time
β βββ results.blade.php # Halaman download hasil
βββ routes/
β βββ web.php # Definisi routes
βββ python_venv/ # Python virtual environment (gitignored)
βββ .env.example # Template konfigurasi environment
βββ composer.json # Dependensi PHP
βββ package.json # Dependensi Node.js
βββ vite.config.js # Konfigurasi Vite bundler
| Teknologi | Kegunaan |
|---|---|
| Laravel 13 | Framework PHP utama (routing, MVC, queue jobs) |
| SQLite | Database ringan (bisa diganti MySQL/PostgreSQL) |
| Laravel Queue | Background job processing untuk video pipeline |
| Teknologi | Kegunaan |
|---|---|
| Laravel Blade | Template engine server-side |
| Vite | Frontend build tool & HMR |
| Vanilla CSS | Styling premium (glassmorphism, gradient, animations) |
| Teknologi | Kegunaan |
|---|---|
| Python 3 | Runtime untuk AI pipeline scripts |
| OpenCV | Face detection (Haar Cascade) & video frame processing |
| yt-dlp | Download video segment dari YouTube |
| FFmpeg | Video transcoding, cutting, audio merging |
| Groq API | Cloud inference Whisper Large V3 (speech-to-text, gratis) |
Edit file .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ai_clipper
DB_USERNAME=root
DB_PASSWORD=your_passwordLalu jalankan migrasi ulang:
php artisan migrate:freshUntuk environment production, disarankan menggunakan Supervisor agar queue worker selalu berjalan:
# /etc/supervisor/conf.d/ai-clipper-worker.conf
[program:ai-clipper-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/ai-clipper/artisan queue:work --timeout=1800 --tries=1 --memory=512
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/path/to/ai-clipper/storage/logs/worker.log
stopwaitsecs=3600sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start ai-clipper-worker:*Queue worker memiliki timeout default 60 detik. Pastikan menjalankan dengan flag --timeout=1800:
php artisan queue:work --timeout=1800 --tries=1Video YouTube kemungkinan dalam codec AV1 yang tidak didukung OpenCV. Sistem sudah memiliki auto-transcode ke H.264, tetapi pastikan FFmpeg terinstall dengan benar:
ffmpeg -codecs | grep libx264Pastikan yt-dlp terinstall di dalam Python virtual environment:
source python_venv/bin/activate
pip install yt-dlp
deactivatePastikan API key valid di file .env. Dapatkan key gratis di console.groq.com/keys.
Proyek ini dilisensikan di bawah MIT License.
Dibuat dengan β€οΈ menggunakan Laravel + Python + OpenCV + Groq AI
# Cliper-AI