Communitygithub.com

Kambaxon/Kambax-tiktok

NUR verwenden, wenn der User ausdruecklich den Karten-/Geopolitik-Stil (Satellitenkarte, eingefaerbte Laender, geomania99) verlangt. Standard fuer neue Videos ist doku-3d-video.

Kambax-tiktok란 무엇인가요?

이 스킬은 TikTok 크리에이터가 지정된 지리/정치 스타일(위성 지도, 국가 색칠, 'geomania99')의 비디오를 HyperFrames로 완전히 코딩하여 제작할 수 있도록 지원합니다. 사용자가 명시적으로 이 스타일을 요청할 때만 사용되며, 기본값은 'doku-3d-video'입니다. 스킬은 코드 생성, 카메라 이동, 색상 변화 및 내러티브 구조에 대한 엄격한 규칙을 적용하여 특정 시각적 외관(예: 독일은 #2f5bea 로열 블루, 터키/러시아/이란은 #e02424 빨간색)과 드라마 투르크(후크, 에스컬레이션, 전환점)를 보장합니다. 주요 구성 요소로는 이미지 타일, 아이콘, 폰트 및 음성 합성(Piper)을 위한 로컬 설정, 음성 해설 및 단어 타임스탬프를 위한 Python 스크립트, 지도 생성, 아이콘 검색 및 자막 추가 기능이 포함됩니다. HyperFrames는 체크, 스냅샷, 렌더링 단계 관리에 사용되며, 각 비디오의 프레임 0은 후크 로 시작해야 합니다(색칠된 국가와 인물/아이콘 표시). 이 스킬은 로컬 리소스에 의존하고(네트워크 제한을 우회하기 위해) 컨테이너의 휘발성을 처리하며, 완성된 비디오를 Git 저장소 푸시 없이 지속하기 위해 사용자에게 직접 전송합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Kambaxon/Kambax-tiktok/tree/HEAD/.claude/skills/geo-karten-video

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Geo-Karten-Videos (TikTok, Deutsch)

Der Benutzer ist ein TikTok-Ersteller. Jedes Video wird vollständig im Code mit HyperFrames erstellt (zuerst den hyperframes-Skill lesen: Render-Vertrag, check, snapshot, render). Sprache: immer Deutsch – Skript, Voiceover, Untertitel, Beschriftungen, Antworten an den Benutzer.

Ablauf (ohne Rückfragen, wenn der Benutzer ein Thema nennt)

  1. Einmal pro Container: bash ~/.claude/skills/geo-karten-video/scripts/setup.sh (Kacheln, Icons, Schriftarten, GSAP lokal, Grenzen, Piper-Stimme. Netzwerk: nur npm, PyPI und GitHub sind offen. Esri/NASA-GIBS/HuggingFace/jsdelivr sind blockiert, daher die Umwege hier.)
  2. Projekt: bash scripts/projekt.sh <slug> -> /home/user/videos/<slug>
  3. Skript (skript.txt, eine Zeile = ein Beat/Satz). Länge: 30 s ~ 65–70 Wörter, 60–75 s ~ 150–170. Zahlen für die Stimme ausschreiben, Anzeige mit {}: sechsundvierzig{46}. Abkürzungen ausschreiben (Lkw -> Laster). Fakten nur, wenn belastbar; geschätzte Werte mit „rund“/„etwa“ und Konjunktiv bei Gedankenexperimenten.
  4. Voiceover + Wortzeiten: python3 scripts/voice.py skript.txt assets/audio --speed 1.05 -> voice.wav (48 kHz, -15 LUFS) + words.json. Hat der Benutzer eine eigene Aufnahme: diese verwenden (Wortzeiten dann per npx hyperframes transcribe --model small --language de, falls Modelle erreichbar).
  5. Karte: python3 scripts/map.py assets/map --bbox lon0,lon1,lat0,lat1 --laender DEU,... --staedte "Berlin:13.40,52.52;..." (Regionen/Bundesländer: --admin1 "Bayern;Sachsen-Anhalt"). Bild <= ~5000 px Kante halten.
  6. Icons: python3 scripts/icons.py --suche "oil" und python3 scripts/icons.py assets/icons name=HEX ...
  7. Szenen bauen – Vorlage: templates/beispiel-keiner-arbeitet/ (index.html, karte.html, skript.txt). Untertitel: python3 scripts/captions.py assets/audio/words.json compositions/untertitel.html --duration <s>
  8. npx hyperframes check --json -> npx hyperframes snapshot --at ... -o snap (max. ~6 Zeitpunkte pro Aufruf, sonst wird der Prozess beendet) -> Bilder ansehen -> korrigieren.
  9. Render im Hintergrund: npx hyperframes render -o renders/<slug>.mp4 -q delivery -w 2 --quiet (run_in_background). Danach mit ffprobe prüfen, Kontaktabzug ansehen, Datei an den Benutzer schicken.

Der Look (aus 3 Referenzvideos analysiert – genau so bauen)

Format: 1080x1920, 30 fps, 30–75 s. Kein Intro, kein Logo, Frame 0 ist schon Hook (Land eingefärbt + Figur/Icon).

Karte = Bühne, eine durchgehende Kamerafahrt. Satellitenbild, Meer dunkles Petrol, Land natürlich grün/beige. Kaum harte Schnitte: Kamera zoomt/schwenkt zwischen Beats (0.8 s power2.inOut), dazwischen langsamer Drift. Kamera = ein Wrapper #k-cam (transform-origin 0 0), Ziel per cam(px, py, scale) -> Kartenpixel auf Bildschirmmitte (540, 900). Alles, was an Orten hängt (Icons, Labels, Länder), liegt IM Kamera-Wrapper in Kartenpixeln. Große Zahlen und „TAG 1“-Labels liegen im Bildschirmraum.

Länder als SVG-Pfad: Fläche halbtransparent (fill-opacity ~0.66, Satellitentextur scheint durch), heller Rand (~2.5 px), Schlagschatten drop-shadow(0 10px 10px rgba(0,0,0,.45)). Farbe per GSAP auf CSS-fill tweenen (nicht attr, CSS schlägt das Attribut). Feste Farben pro Land: Deutschland #2f5bea (Royalblau), Türkei/Russland/Iran #e02424 (Rot), Ukraine #e5a82e (Gelborange), USA #5aa9ff (Hellblau), Akzentregion #a8d82a (Limette), Partei/Region-Highlight #f2a41c (Orange). Farbwechsel erzählen mit (z. B. blau -> grau -> rot bei Absturz).

Ländernamen: Schreibschrift Kalam 700, weiß, schräg (-8 bis -14 Grad), groß, Schatten, gerne angeschnitten.

Figuren/Personen: Freisteller-PNG (vom Benutzer, da keine Bildgenerierung) oder OpenMoji-Figuren, immer mit weißem Sticker-Rand + Schatten (Klasse .st: drop-shadow(3px 0 0 #fff) drop-shadow(-3px 0 0 #fff) drop-shadow(0 3px 0 #fff) drop-shadow(0 -3px 0 #fff) drop-shadow(5px 9px 7px rgba(0,0,0,.45))). Sie stehen auf ihrem Land, ploppen rein (back.out(2.2), 0.45 s) und schrumpfen raus (0.22 s power3.in).

Icons: Flat mit dicker dunkler Kontur (OpenMoji): Zapfsäule, Ölfass, Geld, Explosion, Schiffe, Flaggen, Wahlurne … Mengen = viele kleine Icons über Städte verteilt, gestaffelt 40–70 ms.

Zahlen: Montserrat Black, weiß, riesig (170–230 px), harter Schatten, oben im Bild (top ~240 px), zählen hoch (1.0 s power2.out). Datum/Tag-Labels 96 px.

Untertitel: EIN Wort pro Einblendung, GROSSBUCHSTABEN, Montserrat Black ~68 px, weiß mit dunklem Schatten, zentriert bei y ~1400 (wie Referenz, unteres Drittel), kleiner Pop pro Wort. Wird von captions.py erzeugt.

Belege: Schlagzeilen-/Dokument-Screenshots als schräg einfliegende „Zettel“; gelegentlich B-Roll-Foto (2–3 s), dann zurück zur Karte.

Sound: Voiceover ist die Uhr. SFX sparsam (assets/sfx): pop bei wichtigen Stickern, whoosh bei Kamerafahrten, error bei Kreuz/Stopp, impact-bass beim Wendepunkt. Musik nur, wenn der Benutzer eine Datei liefert (kein Musik-Zugang hier).

Dramaturgie

  1. Hook 0–3 s: Frage oder Eilmeldung + Gesicht/Land sofort sichtbar.
  2. Kontext: konkrete Zahl/Datum/Quelle.
  3. Eskalation in Schritten (Tag 1 / Tag 3 / Tag 7 oder Ereignis -> Reaktion -> Folge), alle 1–3 s ein neues Element.
  4. Wendepunkt/Payoff (Zahl kippt, Land färbt sich um, Shake + Impact).
  5. Ende: rauszoomen + offene Frage an die Zuschauer (Kommentare). Kein Abspann.

Technische Fallen (gemessen)

  • GSAP lokal einbinden (assets/vendor/gsap.min.js), CDN ist blockiert.
  • snapshot mit vielen Zeitpunkten wird beendet -> in Blöcken von ~6.
  • Render mit -w 2 (großes Kartenbild + Filter brauchen RAM).
  • Piper-Stimme klingt synthetisch (16 kHz) – dem Benutzer eine eigene Aufnahme oder ElevenLabs-Datei anbieten; dann voice.wav ersetzen und Wortzeiten neu bestimmen.
  • Bildnachweis klein oben rechts: „Bild: NASA Blue Marble“.
  • Der Container ist flüchtig: fertige Videos sofort an den Benutzer schicken; Skill/Projekte nur dauerhaft, wenn in ein Git-Repo gepusht.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬