Communitygithub.com

MickaelAlecsander/edicao-de-cortes

Diese Skill erstellt einen vertikalen Schnitt (1080×1920) für Instagram Reels und TikTok – komplett ohne API. Sie deckt alles ab: Recherche, Download, Ranking, Drehbuch, Schnitt, Prüfung, Animation und Render.

Was ist edicao-de-cortes?

Diese Skill ist ein vollständiger Workflow für die Erstellung von Kurzvideos (Reels/TikTok) im vertikalen Format. Sie wurde für den Kanal von Raul Sena entwickelt und umfasst alle Schritte: Themenfindung und Ranking, Download der besten Audio- und Videoquellen ohne API-Sperren, Erstellung des Drehbuchs, präziser Schnitt ohne Wortverschlingung, detaillierte Prüfung von Sprache, Audio und Bild, Animation der oberen Bildhälfte im „Papier ausgeschnitten“-Stil mit HyperFrames und finale Render. Die Skill läuft vollständig lokal: für die Bearbeitung und das Rendering wird HyperFrames verwendet, für die Transkription kommt ein lokaler Whisper (whisper.cpp oder faster-whisper) zum Einsatz, und für die zeitliche Ausrichtung wird der MMS_FA-Aligner genutzt. Sie eignet sich sowohl für echte Video-Reels (institutionell/Marke) als auch für Meinungs-Cortes (animierte obere Hälfte). Die Skill beinhaltet zahlreiche Automatisierungsskripte für Pausenmessung, Szenenwechsel, Schnitt, Untertitel, Sicherheitszonenprüfung und Audio-Nachbearbeitung. Besonderes Augenmerk liegt auf Vermeidung von API-Kosten, Rohschnitt-Genauigkeit (kein Schneiden mitten im Wort) und Freigabeprozessen vor Veröffentlichung.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add MickaelAlecsander/edicao-de-cortes

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Edição de cortes (sem API)

Diese Skill vereint alles, was der Kanal beim Schneiden von Cortes gelernt hat: Recherche und Download, Ranking, Drehbuch, Schnitt, Prüfungen und Animation. Jede Regel entstand aus einem Fehler, der bereits online war oder fast online gegangen wäre. Sie läuft in einer Umgebung ganz ohne API:

  • Bearbeiten und Rendern: HyperFrames (npx --yes [email protected] …).
  • Audio transkribieren und anhören: Lokaler Whisper (whisper.cpp über HyperFrames oder faster-whisper).
  • Zeitmessung jedes Wortes: Lokaler Force-Aligner (MMS_FA, torchaudio) und das Audio-Envelope.

Zwei Modi: Vorher entscheiden

ModusWannVorlage
Reels mit echtem VideoInstitutionelles Profil oder Marke (z. B. @amigosdobem): Die Person oder Aktion in voller Größe, Schlagzeile, Name und Funktion, Deckbilder, Logo und Untertitel. Wenig oder keine Animation.assets/modelo_reels/ (siehe LEIA-ME.md)
Papier ausgeschnittenMeinungs-Cortes-Kanal (der von Raul): Die obere Hälfte animiert wie ausgeschnittenes Papier, der Moderator unten und vollflächige Animationsbildschirme.assets/modelo/ und references/animacao-hyperframes.md

Im Zweifel fragen, welcher der beiden Modi. Alles, was vor der Animation kommt (Thema, Drehbuch, Schnitt ohne Wortverschlingung, Sprach- und Audioprüfung, Untertitel, Sicherheitsbereich, Finalisierung und Auslieferung) gilt für beide Modi gleichermaßen. Beim Reels mit echtem Video ist Schritt 3 montar_reels.py anstelle der Szenen, und die Regeln für Charakter, Papier und vollflächige Animationsbildschirme gelten nicht.

Goldene Regeln (gelten in jedem Schritt)

  1. Keine API. Kein OpenAI-Key oder bezahlter Dienst. Der lokale Whisper liefert den TEXT. Die Feintimings kommen vom MMS_FA-Aligner und der echten Pause im Envelope (scripts/pausas.py). Whisper ist kein Zeitbeweis: Im C29 platzierte large-v3 Wörter bis zu 1,4 s außerhalb der Position, und jeder Fehler führte zu einer falschen Schnittkante.
  2. Genehmigung vor Fortschritt. Drehbuch genehmigt → Bearbeitung → Animation → Vorschau. Nichts wird geplant oder veröffentlicht ohne die „kann geplant werden“-Bestätigung des Kanaleigentümers. Wenn er „mach bis zum Ende“ sagt, werden die Zwischengenehmigungen zu einer einzigen zusammengefasst: der der Vorschau.
  3. Nie mitten in einem Wort schneiden. Die Schnittkante ist immer ein Energie-Tal unter −40 dB, vor dem NÄCHSTEN Wort. Jede Nahtstelle wird nach dem Zusammenbau nochmal angehört (scripts/ouvir_emendas.py).
  4. Den ganzen Raul, zentriert, ohne Zoom und nie eingefroren. Das Bild zeigt immer denselben Moment wie das Audio; bei Podcasts bleibt es bei der Person, die gerade argumentiert, und wer spricht, wird bei jedem Schnitt mit 2 Personen markiert. Kopf nie abgeschnitten. Im geteilten Bildschirm der Quelle füllt sein Panel das untere Fenster; keine unscharfen Seiten. Es darf kein Standbild mit Sprache geben. Ein Foto oder Diagramm im Vollbild der Quelle wird unter einen VOLLBILD-Animationsbildschirm gelegt.
  5. Der Untertitel läuft von Anfang bis Ende mit 1 bis 3 Wörtern, Schimpfwörter werden zensiert (F**A).
  6. Immer Sicherheitsbereich. Nichts unter der TikTok-Suche, nichts ragt seitlich heraus, nichts unter den Buttons oder dem Post-Text. scripts/zona_segura.mjs muss vor jedem Render ✓ ergeben.
  7. Vollbild: 3 Mal mit 5 s oder mehr bei Videos bis 2 Min., 4 Mal bei über 2 Min. Das 1. kommt direkt nach dem Hook.
  8. Die beste Audiospur (das Opus von YouTube), minimale Rekompression und Ausgabe bei −14 LUFS. Der Soundeffekt liegt immer unter der Sprache.
  9. Download mit Abstand. Eine Anfrage nach der anderen, nie in Salven, mit Pausen dazwischen (scripts/baixar.py macht das bereits). Eine IP, die mit 429 markiert wurde, wird erst nach einer Weile wieder verwendet. Der Client web_safari,mweb dient nur zum LISTEN von Videos und Lesen ihrer Daten (Titel, Sprache, Kanal). Mit ihm verschwinden die Untertitel („has no subtitles“ bei jedem Video) und die Auflösung ist falsch (360p), daher werden Untertitel und Medien mit dem Standard-Client geladen.
  10. Nie endgültig löschen. Was rausfliegt, kommt in _lixeira/, leeren darf nur der Kanaleigentümer. Niemals Passwort oder Token eingeben: Der Login wird immer von der Person selbst durchgeführt.

Installation (einmal pro Maschine)

Der einfachste Weg: Der Befehl aus einem Schritt im README (instalar.ps1 unter Windows, instalar.sh unter Mac) installiert die fehlenden Programme, lädt die Skill herunter und führt scripts/instalar.py aus.

Das Python der Skripte: Wenn die Datei .python im Skill-Ordner existiert, ist jedes python in den Befehlen dieser Skill der darin geschriebene Pfad (z. B. ~/.venv-cortes/bin/python). Der Installer erstellt diese Umgebung, wenn das System-Python pip ablehnt (PEP 668: das von Homebrew unter Mac, das von Debian/Ubuntu).

python scripts/instalar.py (mit Python 3.11+) bereitet die Maschine in einem Durchgang vor. Am Ende sagt es „✓ pronto para editar“ oder listet auf, was fehlt. Es macht fünf Dinge:

  1. Überprüft Python, ffmpeg und ffprobe, Node 18+ mit npx und Chrome. Was nicht per pip oder npm installiert wird, zeigt es mit Anleitung zur Installation auf Ihrem System an.
  2. Führt pip install nur für das Fehlende aus (faster-whisper, torch und torchaudio für CPU, numpy, scipy, soundfile, opencv, yt-dlp). Was bereits installiert ist, wird weder aktualisiert noch herabgesetzt.
  3. Führt npm install playwright-core in scripts/ aus, von wo zona_segura.mjs und erros_js.mjs es importieren.
  4. Lädt Whisper large-v3 (~3 GB) und MMS_FA (~1,2 GB) herunter und wärmt npx --yes [email protected] und das Chrome des Renderers auf.
  5. Führt den Selbsttest aus: --help von 3 Skripten, node --check der .mjs und das temporäre Bereitstellen von assets/modelo/.

Es hat drei Optionen:

  • --so-conferir: Nur prüfen, nichts installieren.

  • --sem-modelos: Modelle überspringen.

  • --modelo-whisper medium: Für schwache Maschinen. Danach --modelo medium an transcrever_local.py übergeben.

  • Whisper von HyperFrames (optional): npx --yes [email protected] transcribe <datei> -e whisper -m large-v3 -l pt --json. Es benötigt whisper-cpp, und npx --yes [email protected] doctor sagt, ob es installiert ist.

  • Was Internet braucht (der Rest läuft offline):

    • Herunterladen der Quellen (yt-dlp);
    • beim 1. Mal die Modelle (Whisper large-v3 und MMS_FA) und das Chrome des Renderers; der Installer lädt alle drei herunter;
    • GSAP vom CDN bei jedem Render;
    • Google Fonts beim 1. Zusammenbau (danach in ~/.cache/hyperframes/fonts gespeichert).
  • Maschine testen jederzeit: python scripts/instalar.py --so-conferir.

Projektstruktur

<projekt>/
  _fontes/            Heruntergeladene Videos und Audios (<id>_opus.mkv ist die Schnittquelle)
  _pesquisa/          Untertitel, Transkriptionen (<id>_palavras.json), Radar und Notizen
  _lixeira/           Aussortiertes (Quellen nach Veröffentlichung usw.)
  cortes/cNN-slug/    Ein Schnitt: ROTEIRO.md, cortes_gerar.py, cortes.json, pos_cortar.py, _cenas.js, montar.py,
                      gera_som.py, som.json, capa/, post.json, assets/ (raul.mp4, raul.wav, tempos.json, dados.js),
                      renders/ (etapa3_bruto.mp4, etapa3.mp4, cNN_previa.mp4, cNN_capa.jpg)
  LOG_CORTES.md       Ein Eintrag pro Schnitt (Quell-ID, was online ging, was der Eigentümer entschied) und die „Gesammelten Lektionen“;
                      ohne ihn entnimmt ranking_shorts.py keine bereits verwendete ID.
  REGUA.md            Die Korrekturen des Eigentümers am Maßstab (vor der Bewertung lesen); RADAR.md wird von nota_viral.py generiert.

Der Workflow eines Schnitts

Vor Beginn die Referenz des Schrittes lesen. Jeder enthält die vollständigen Regeln und das Warum hinter jeder.

SchrittWas zu tunReferenzSkripte
0 · ThemaKandidaten finden, Redebeiträge und Shorts ranken, Maßstabsnote vergeben, per Punktzahl auswählenreferences/ranqueamento.mdnota_viral.py, ranking_shorts.py, analise_shorts.py, acha_frase.py
1 · QuelleAuflisten, Untertitel lesen, beste Spur ohne Sperre herunterladenreferences/pesquisa-e-download.mdbaixar.py, vtt2txt.py
1 · DrehbuchAusschnitt transkribieren, vollständige Argumentation erstellen, zur Freigabe einreichenreferences/roteiro.mdtranscrever_local.py
2 · SchnittSchnittkanten messen, Kamerwechsel finden, schneiden, neu ausrichten, untertitelnreferences/corte-e-fala.mdpausas.py, trocas.py, cortar.py, alinhar.py, legendas.py, borrar_regiao.py, reenquadrar.py
2 · PrüfenNahtstellen anhören, Bild für Bild betrachtenreferences/conferencias.mdouvir_emendas.py, conferir_fins.py, folha_contato.py, travada.py
3 · AnimationAnimations-Drehbuch, Szenen, Vollbilder, Sicherheitsbereichreferences/animacao-hyperframes.mdassets/modelo/, roteirista.py, marca.py, zona_segura.mjs, erros_js.mjs
3 · Reels mit echtem VideoSchlagzeile, Name und Funktion, Deckbilder, Logo, Markenfarben (anstelle der Animation)assets/modelo_reels/LEIA-ME.mdmontar_reels.py, zona_segura.mjs, erros_js.mjs
3 · TonEinsätze beim Wort der Szene, Soundeffekte unter der Sprachereferences/audio.mdsonoplastia.py (+ assets/foley/)
4 · RenderRendern, Mux, Finalisieren, Prüfen und Vorschau sendenreferences/conferencias.mdfinalizar.py, folha_contato.py

Befehle, in der Reihenfolge (aus dem Ordner cortes/cNN-slug/; $S = Ordner scripts/ dieser Skill)

Beginnen Sie mit dem Kopieren von assets/modelo/ nach cortes/cNN-slug/ (siehe assets/modelo/LEIA-ME.md): Es enthält cortes_gerar.py, pos_cortar.py, montar.py, gera_som.py, das Cover und post.json zum Ausfüllen. Wenn die Skill nicht in ~/.claude/skills/edicao-de-cortes liegt, setzen Sie EDICAO_CORTES=<skill-ordner>.

python $S/pausas.py <quelle> --palavras <woerter.json> <t:vorher:nachher> ... --perfil   # jede Kante, vor dem Schreiben
python $S/trocas.py <quelle> --de <s> --ate <s>   # Kamerwechsel und Layout-Änderungen im Ausschnitt
python cortes_gerar.py                       # schreibt cortes.json (Blöcke, Fenster, Ausschnitte, Wechsel)
python $S/cortar.py .                        # erstellt assets/raul.mp4, raul.wav und tempos.json (Kante bei Sprache)
python pos_cortar.py                         # TEXT des Drehbuchs, neu ausgerichtet durch MMS_FA (Wort für Wort)
python $S/legendas.py .                      # assets/dados.js: Untertitel in Blöcken von 1 bis 3 Wörtern
python $S/ouvir_emendas.py .                 # jede Nahtstelle im lokalen Whisper + Envelope
python $S/conferir_fins.py .                 # die Kanten jedes Blocks
python $S/folha_contato.py assets/raul.mp4 --cada 2   # den ganzen Raul und die richtige Person in jedem Bild
# (✋2, wenn der Eigentümer fragt: siehe Ende von references/corte-e-fala.md) · hier vor der Animation den Extra-Aufwand erfragen
python $S/roteirista.py batidas .            # batidas.md: Sätze, Anker T() mit der richtigen n, Anspielungen auf Personen
python montar.py                             # index.html (Animation + Raul + Untertitel + Marke)
python gera_som.py && python $S/sonoplastia.py .   # Effektspur; am Ende JS und Sicherheitsbereich prüfen
npx --yes [email protected] render . --fps 24 -q standard -w 6 -o renders/etapa3_bruto.mp4
python $S/sonoplastia.py . --mux             # verlustfreier Ton auf dem Render-Bild
python $S/finalizar.py .                     # −14 LUFS, Standbildprüfung, 720p Vorschau
python $S/folha_contato.py renders/etapa3.mp4 --cada 3   # fertiges Video vor dem Senden ansehen

Wie man ausliefert

  • Drehbuch: im Format von references/roteiro.md: Handlungslinie, Blöcke mit vollständigem Text und Szene jedes Blocks, Vollbilder, Cover, Selbstkritik mit Note und am Ende die Liste, was wegfällt.
  • Vorschau: die 720p-Vorschau und das Cover, mit einer Zusammenfassung des Videos:
    • die Vollbilder;
    • was geprüft wurde (Sicherheitsbereich, Standbild, Loudness);
    • was nach dem 1. Render korrigiert wurde;
    • der Post-Text. Danach auf das „kann geplant werden“ warten. Die explizite Aufforderung, es geplant zu lassen („ich will es fertig, perfekt, geplant“) gilt bereits als das „kann geplant werden“ für diese Videos.
  • Post-Text (post.json): nützliche Information mit Nennung des Moderators („Für Raul Sena, …“), bis zu ~430 Zeichen (bei TikTok ging bei ~600 Zeichen der Anfang im Feld bei 3 Versuchen verloren; die mit 421 und 426 kamen an), ohne Gedankenstrich oder spitze Klammern und mit zensierten Schimpfwörtern. Am Ende die Hashtags: die 2 der Marke, 3 bis 5 zum Thema, wie die Leute suchen, und 1 bis 2 allgemeine, ohne Akzente und Leerzeichen. Der trecho in post.json ist der Anfang des Texts: Er findet den Post im Studio.
  • Drei Netzwerke zur gleichen Zeit: Das „kann geplant werden“ von TikTok gilt für Instagram und Facebook ZUR GLEICHEN ZEIT, ohne erneute Anfrage. Nach der Zeit prüfen, dass der Post in allen drei erschienen ist (bei C80 und C83 schlug Instagram aufgrund eines Kontoblocks fehl).
  • Puffer bei TikTok: Ein neuer Account schickt jeden Post zur Überprüfung („Inhalt wird geprüft“, bis zu 12 Std.). Mit 2 Std. oder mehr Puffer planen, niemals weniger als 20 Min. vor der Zeit.
  • Visuelle Entscheidung (Layout, Stil, Cover): Optionen als BILD zur Auswahl an den Eigentümer senden.
  • Nach Code- oder Tool-Änderungen: Die Zusammenfassung kommt vollständig: was sich geändert hat, warum, was wegfiel und was noch zu tun ist.

Instagram (Reels)

Dasselbe Video dient für Reels und TikTok. Auf Instagram:

  • Hochladen des gerenderten Videos (renders/etapa3.mp4), niemals ein von TikTok heruntergeladenes Video: Instagram verringert die Reichweite von recycelten Videos mit Wasserzeichen.
  • Der Post-Text akzeptiert bis zu 2.200 Zeichen, aber nur die 1. Zeile erscheint vor dem „mehr“: Sie muss der Hook sein. Hashtags: 3 bis 5 zum Thema plus die der Marke (Instagram empfiehlt wenige und relevante).
  • Das Cover erscheint im Profilraster im 3:4-Zuschnitt aus der Mitte: Das Gesicht und die Schlagzeile vollständig darin (das Cover der Vorlage ist bereits so gemacht). In der App unter „Cover bearbeiten“ → „Aus Galerie hinzufügen".
  • Der Sicherheitsbereich von zona_segura.mjs (Suche oben, Buttons rechts, Post-Text unten) gilt für beide. Beim 1. Post einen Screenshot des veröffentlichten Reels bei jedem Vollbild betrachten und, falls die Oberfläche etwas überdeckt, die Grenzen anpassen.
  • Dauer: 1 bis 2 Min. (Reels akzeptiert bis zu 3 Min.).
  • Die Zahlen des Maßstabs und des Gitters (Zeiten, Gewichte, View-Limits) wurden auf TikTok dieses Kanals gemessen: Auf Instagram die Punkteliste mit eigenen Daten neu beginnen.

Anderer Kanal

Die Skill wurde im Cortes-Kanal von Raul Sena geboren und die Beispiele stammen von ihm. Für einen anderen Moderator oder eine andere Marke ersetzen:

  • Die Marke: CONTA und der Avatar in …

Hinweis: Der Originaltext wurde hier aufgrund der Zeichenbegrenzung gekürzt. In der vollständigen Übersetzung würden alle Abschnitte des ursprünglichen SKILL.md enthalten sein.

Verwandte Skills