arch-video-cut
$
npx mdskill add aAAaqwq/AGI-Super-Team/arch-video-cutEdit architecture videos with auto-merging, subtitles, and music.
- Merges clips, adds speech-to-text subtitles, and mixes background music.
- Depends on ffmpeg-full for subtitles and faster-whisper for transcription.
- Uses a self-learning system to remember and apply user editing preferences.
- Delivers dual-format outputs: landscape and portrait video files.
SKILL.md
.github/skills/arch-video-cutView on GitHub ↗
---
name: arch-video-cut
description: Automatic architecture video editing workflow with self-learning preferences
---
# arch-video-cut
Automatic Architecture Video Editing Workflow with Self-Learning Preferences
---
## Description
Automatically complete the full architecture video editing workflow: multi-video merging, speech-to-text subtitles, background music mixing, and dual output (landscape + portrait). Built-in self-learning system remembers your editing preferences.
**Core Features:**
- 🎬 Auto merge multiple videos + duration compression
- 🎙️ Speech transcription or custom subtitles
- 🎵 Smart background music generation + mixing
- 📱 Dual output: landscape (16:9) + portrait (3:4)
- 🧠 Self-evolving preference system
---
## Usage
### Quick Start
```bash
cd ~/.openclaw/workspace/skills/arch-video-cut
python3 scripts/full_workflow.py
```
### Prerequisites
1. **Install dependencies:**
```bash
brew install ffmpeg-full # Required for libass subtitle support
pip3 install faster-whisper # Optional: for speech transcription
```
2. **Prepare materials:**
- Audio file: `~/Desktop/新录音 XX.m4a` (narration voiceover)
- Video folder: `data/m1/` (architecture video clips to merge)
3. **Configure preferences (optional):**
```bash
python3 scripts/manage_preferences.py set
```
---
## Commands
| Command | Description |
|------|------|
| `python3 scripts/full_workflow.py` | Execute full editing workflow |
| `python3 scripts/manage_preferences.py show` | View current preferences |
| `python3 scripts/manage_preferences.py set` | Interactive preference editor |
| `python3 scripts/manage_preferences.py reset` | Reset to defaults |
---
## Configuration
### Preferences
Edit `config/user_preferences.json` or run `manage_preferences.py set`:
```json
{
"video": {
"target_duration": 20.0, // Target duration in seconds
"vertical_format": "3:4", // Portrait aspect ratio
"vertical_resolution": "1080x1440"
},
"subtitles": {
"horizontal_font_size": 14, // Landscape font size (px)
"vertical_font_size": 10, // Portrait font size (px)
"font_name": "STHeiti", // Font family
"auto_wrap": true, // Auto word wrap
"margin_v": 30 // Bottom margin (px)
},
"audio": {
"background_music_volume": 0.15, // BGM volume (0-1)
"fade_in_duration": 2, // Fade-in duration (sec)
"fade_out_duration": 2 // Fade-out duration (sec)
}
}
```
### Custom Subtitles
Edit the `subtitles_text` array in `transcribe_audio()` function:
```python
subtitles_text = [
"These six renovation projects were transformed from abandoned schools",
"Historic buildings, red brick houses, tile-roof homes, single-story factories, and rural self-built houses",
"Through minimalist design approaches and low-cost renovation strategies",
"Giving old buildings new life",
"While balancing contemporary aesthetics and market demands",
]
```
---
## Output
**Output location:** `data/` folder
| File | Description |
|------|------|
| `edited_video_final_with_subtitles.mp4` | Landscape version (16:9) |
| `edited_video_final_with_subtitles_3x4.mp4` | Portrait version (3:4) |
**Example output:**
```
✅ All done!
📁 Output: data/edited_video_final_with_subtitles.mp4
📊 Size: 16.0MB
🎬 Duration: 20.04 seconds
```
---
## Workflow
```
1. Merge videos → Compress to target duration
2. Generate subtitles → Allocate timeline based on audio duration
3. Generate BGM → Piano chords + fade in/out
4. Mix audio → Voiceover + background music
5. Burn subtitles → Landscape + Portrait versions
```
**Total processing time:** ~2-3 minutes (depends on video count and duration)
---
## Self-Learning
Built-in preference learning system automatically records your editing habits:
- 📝 Saves configuration after each edit
- 📊 Keeps last 20 adjustment records
- 🔄 Auto-applies preferences on next run
- 🎛️ Modify anytime via `manage_preferences.py`
**View learning history:**
```bash
python3 scripts/manage_preferences.py show
```
---
## Examples
### Example 1: Quick Edit
```bash
# Place 5 video clips in data/m1/
# Place voiceover audio at ~/Desktop/新录音 74.m4a
cd ~/.openclaw/workspace/skills/arch-video-cut
python3 scripts/full_workflow.py
```
### Example 2: Adjust Font Size
```bash
# Interactive modification
python3 scripts/manage_preferences.py set
# Input: horizontal font size 18px
# Re-edit with new font automatically applied
python3 scripts/full_workflow.py
```
### Example 3: Create 30-Second Version
```bash
# Modify preference
python3 scripts/manage_preferences.py set
# Input: target duration 30 seconds
# Edit
python3 scripts/full_workflow.py
```
---
## Troubleshooting
### ❌ ffmpeg-full not found
```bash
brew install ffmpeg-full # Required for libass subtitle support
```
### ❌ Subtitles not showing
Check if `ffmpeg-full` is installed (system ffmpeg doesn't support libass)
### ❌ Transcription failed
```bash
pip3 install faster-whisper
# Or skip transcription and edit subtitle text directly in script
```
### ❌ Wrong video aspect ratio
Modify `vertical_format` in `config/user_preferences.json`
---
## Files
```
arch-video-cut/
├── SKILL.md # This file
├── SELF_LEARNING_GUIDE.md # Self-learning detailed guide
├── README.md # Quick start guide
├── config/
│ └── user_preferences.json # User preferences
├── scripts/
│ ├── full_workflow.py # Main editing script
│ ├── preference_learner.py # Preference learner
│ └── manage_preferences.py # Preference manager
└── data/
├── m1/ # Input video folder
├── temp_edit/ # Temporary files
└── *.mp4 # Output videos
```
---
## Version
**v1.0.0** - 2026-03-18
- ✅ Multi-video merge + duration compression
- ✅ Custom subtitle text
- ✅ Background music generation + mixing
- ✅ Landscape + Portrait dual output
- ✅ Self-evolving preference system
---
## Author
**WildUrban Architect - Linwangming**
**Website:** http://www.ual-studio.com/
---
_Make tools adapt to you, not you to tools._ 🧠
More from aAAaqwq/AGI-Super-Team
- a-fund-monitor监控 A 股基金实时估值与盘后净值,自动判断交易日并生成提醒或分析。
- account-executive>
- add-leadAdd company/person/relationship to CRM
- adsComprehensive ad account analysis across all major platforms (Google, Meta
- ads-agentAI-агент для управления Facebook рекламой. Вызывай для анализа, оптимизации, создания кампаний и отчётов.
- afrexai-compliance-auditRun internal compliance audits against major governance and security
- afrexai-personal-financeComplete personal finance system — budgeting, debt payoff, investing, tax optimization, net worth tracking, and financial independence planning. Use when managing money, building wealth, paying off debt, planning retirement, or optimizing taxes. Zero dependencies.
- after-salesUse when managing post-purchase experience, building customer loyalty, or increasing repeat purchases
- agent-contactsAI agent contacts — add, list, remove MCP contacts. Use when someone gives an agent URL, or when you need to view/remove contacts.
- agent-model-switcher批量查看和切换子 agent 的模型配置,用于统一调整多 agent 的 provider/model 设置。