|
|
--- |
|
|
license: cc-by-4.0 |
|
|
language: |
|
|
- pt |
|
|
tags: |
|
|
- video |
|
|
- transcription |
|
|
- whisper |
|
|
- ollama |
|
|
- ffmpeg |
|
|
- auto-cut |
|
|
--- |
|
|
|
|
|
# IA-local-transcript-autocut |
|
|
|
|
|
Ferramenta para **cortes automáticos de vídeo** usando transcrição local (Whisper) e IA local (Ollama). Tudo roda na sua máquina, sem enviar dados para a nuvem. |
|
|
|
|
|
> Cortes automáticos de vídeo com Whisper + Ollama. Transcreve, propõe cortes com IA local e exporta em MP4. |
|
|
|
|
|
**Repositório:** [github.com/travahacker/IA-local-auto-cut](https://github.com/travahacker/IA-local-auto-cut) |
|
|
|
|
|
## Fluxo |
|
|
|
|
|
1. **Transcreve** o áudio do vídeo com [faster-whisper](https://github.com/SYSTRAN/faster-whisper) |
|
|
2. **Propõe cortes** via Ollama (IA local) ou heurísticas (modo React, entrevistas) |
|
|
3. **Gera scripts ffmpeg** para exportar os cortes em MP4 |
|
|
|
|
|
## Pré-requisitos |
|
|
|
|
|
- **Python 3.9+** |
|
|
- **ffmpeg** (instalado no sistema) |
|
|
- **Ollama** (opcional, para propostas de cortes com IA — [ollama.ai](https://ollama.ai)) |
|
|
|
|
|
## Instalação |
|
|
|
|
|
```bash |
|
|
git clone https://huggingface.co/Veronyka/IA-local-transcript-autocut |
|
|
cd IA-local-transcript-autocut |
|
|
pip install -r requirements.txt |
|
|
``` |
|
|
|
|
|
## Uso |
|
|
|
|
|
### 1. Transcrição + cortes com IA (Ollama) |
|
|
|
|
|
```bash |
|
|
# Transcreve, propõe cortes com Ollama e gera script de export |
|
|
python video_cuts_offline_mac_plus_subs.py seu_video.mp4 --preview |
|
|
|
|
|
# Só transcrever (salva transcript.json) |
|
|
python video_cuts_offline_mac_plus_subs.py seu_video.mp4 --only-transcribe |
|
|
|
|
|
# Reusar transcrição existente |
|
|
python video_cuts_offline_mac_plus_subs.py seu_video.mp4 --only-propose --reuse-transcript |
|
|
``` |
|
|
|
|
|
### 2. Modo React (comentários em PT com lead-in em EN) |
|
|
|
|
|
Para vídeos de reação onde você comenta em português sobre conteúdo em inglês: |
|
|
|
|
|
```bash |
|
|
python video_cuts_offline_mac_plus_subs.py video.mp4 --react-mode --preview |
|
|
``` |
|
|
|
|
|
### 3. Cortes para entrevistas (pergunta + resposta) |
|
|
|
|
|
Gera cortes de perguntas curtas seguidas de respostas longas: |
|
|
|
|
|
```bash |
|
|
# Primeiro: transcrever |
|
|
python video_cuts_offline_mac_plus_subs.py entrevista.mp4 --only-transcribe |
|
|
|
|
|
# Depois: gerar cortes de entrevista |
|
|
python interview_cuts.py entrevista.mp4 --min 60 --max 150 --preview |
|
|
``` |
|
|
|
|
|
### 4. Títulos e descrições para redes sociais |
|
|
|
|
|
```bash |
|
|
python generate_post_texts_from_cuts.py base_do_video |
|
|
|
|
|
# Com IA local (Ollama) para copy mais criativo |
|
|
python generate_post_texts_from_cuts.py base_do_video --ollama-model llama3.1:8b |
|
|
``` |
|
|
|
|
|
## Persona (opcional) |
|
|
|
|
|
Para alinhar os cortes com seu perfil de criador(a), crie um `persona.json` a partir do exemplo: |
|
|
|
|
|
```bash |
|
|
cp persona.example.json persona.json |
|
|
# Edite persona.json com sua bio, pilares, tom, etc. |
|
|
``` |
|
|
|
|
|
Use com `--persona persona.json` no script principal. |
|
|
|
|
|
## Opções principais |
|
|
|
|
|
| Flag | Descrição | |
|
|
|------|-----------| |
|
|
| `--lang pt` | Forçar idioma da transcrição | |
|
|
| `--whisper-model small` | Modelo Whisper (tiny, base, small, medium, large) | |
|
|
| `--model llama2` | Modelo Ollama para propor cortes | |
|
|
| `--max-stories 8` | Número máximo de cortes | |
|
|
| `--max-length 60` | Duração máxima por corte (segundos) | |
|
|
| `--preview` | Gera vídeo de prévia com todos os cortes | |
|
|
| `--persona arquivo.json` | Arquivo com contexto de persona | |
|
|
|
|
|
## Arquivos gerados |
|
|
|
|
|
- `*_transcript.json` — Transcrição com timestamps |
|
|
- `*_cuts.json` — Metadados dos cortes propostos |
|
|
- `*_cuts.sh` — Script bash para exportar os MP4s |
|
|
- `export_parts/` — Pasta com os cortes em MP4 |
|
|
|
|
|
## Licença |
|
|
|
|
|
[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) — Creative Commons Attribution 4.0 International. Uso livre com atribuição. |
|
|
|