heygen-com/hyperframes / hyperframes-media
hyperframes-media
- Установки
- 148,335
- Автор
- heygen-com/hyperframes
Единый движок для создания аудио и медиа-ресурсов композиций: озвучка (TTS), фоновая музыка, звуковые эффекты, транскрипция, субтитры и удаление фона. Автоматически выбирает провайдера (HeyGen, ElevenLabs, Kokoro, Lyria, MusicGen) с деградацией при отсутствии ключей, поддерживает покадровые субтитры с караоке-эффектами и генерацию HTML-капшена.
Установить скилл
npx skills add https://github.com/heygen-com/hyperframes --skill hyperframes-media
Аудит безопасности
Gen Agent Trust Hub
warnThis skill facilitates media processing tasks like text-to-speech, transcription, and background removal using the HyperFrames CLI. It involves downloading machine learning models to the local file system and requires external package installations. A risk of command injection exists if user-supplied text or file content is passed unsanitized into the shell commands executed by the agent.
Audited: 5/8/2026, 3:33:18 AM
Socket
passNo alerts
Audited: 5/8/2026, 3:33:19 AM
Snyk
passRisk: LOW · No issues
Audited: 5/8/2026, 3:32:41 AM
Промпт скилла
HyperFrames Media
Create the audio and media assets a composition needs — voiceover (TTS), background music + sound effects, transcription, captions, background removal — then consume and animate that data in HTML. For placing assets into compositions, see hyperframes-core.
The audio engine — one source for TTS · BGM · SFX
Workflows do NOT hand-roll audio or vendor a copy. There is one engine — scripts/audio.mjs — that takes a neutral audio_request.json and writes audio_meta.json (plus assets under assets/voice|bgm|sfx):
# <MEDIA_DIR> = this skill's directory
node <MEDIA_DIR>/scripts/audio.mjs --request ./audio_request.json --hyperframes . --out ./audio_meta.json
All three capabilities degrade on ONE switch — whether a HeyGen credential is present (resolved from $HEYGEN_API_KEY / $HYPERFRAMES_API_KEY / ~/.heygen, not the CLI):
| Capability | HeyGen credential present | absent |
|---|---|---|
| TTS | HeyGen Starfish REST (native word timestamps) | → ElevenLabs → Kokoro (chain transcribe for words) |
| BGM | HeyGen music retrieval | Lyria → MusicGen local generation (detached) |
| SFX | HeyGen sound-effects retrieval (min_score 0.4) | bundled 21-file library (assets/sfx/) |
- Request (
audio_request.json):{ provider?, lang?, speed?, lines: [{ id, text, sfx?: [names] }], bgm: { mode?, query?, prompt? } }.idjoins each line back to the caller's model (a frame number, a scene id, …).bgm.mode=retrieve | generate | none; omit for auto (retrieve when credentialed, else generate). An explicitretrieveis strict — it skips rather than starting a detached generate (for callers with nowait-bgmstep). - Output (
audio_meta.json, id-keyed):{ tts_provider, voice_id, bgm, bgm_pending, …, voices: [{ id, path, duration_s, words }], sfx: [{ id, name, file, source, offset_s, duration_s, volume }], total_duration_s }. --only tts,bgm,sfxruns a subset and merges into an existing--out(e.g. TTS+BGM early, SFX once cues exist).- BGM generate is spawned detached (
bgm_pending: true) — runscripts/wait-bgm.mjsbefore assembling. scripts/heygen-tts.mjsis a single-shot CLI over the same code (one text → wav + words) for when you just need HeyGen TTS without a request file.
Full flag list + the audio_meta.json schema live in the header of scripts/audio.mjs. The references below cover the provider details and edge cases behind each capability.
Preflight — show sign-in status before any audio
Always run this before generating voice or BGM — inside a full workflow or a one-off "generate me a BGM/voiceover" request. No HeyGen credential is not a reason to silently fall back to local engines: first recommend signing in and let the user decide. Run the shared preflight and relay its output verbatim — don't improvise your own "missing key" prompt, and don't offer to write keys into a per-repo .env:
npx hyperframes auth status
- Signed in → it prints the account; proceed.
- Not signed in (
exit 1is expected here — "not signed in" is a normal state, not a failure) → it prints registration-first guidance. Recommend signing in:npx hyperframes auth loginis browser OAuth — it signs in and creates an account (always available through this repo's CLI). To use an existing HeyGen API key (from app.heygen.com/settings/api), runnpx hyperframes auth login --api-key— it saves to the shared~/.heygen(no per-repo.env). The output also lists the local engines voice/BGM will fall back to and apiphint when deps are missing. Relay this output as-is — don't paraphrase it into your own wording. Then STOP and wait for the user to choose — sign in, or say "go" / "local" to continue offline — before generating anything. This is a real decision point, not a passing note: don't fold it into another question, and don't proceed past it on your own. (Exception: in autonomous / non-interactive mode, note the status and continue offline.) npx hyperframes auth status --jsonreturns{ configured, recommended_action, offline_engines }for deterministic branching.- If the CLI can't run (not on PATH and
npxcan't fetch it) → still recommend signing in (npx hyperframes auth login) and STOP for the user's choice — don't treat "no credential" as a silent green light for local generation.
Credential resolution, full key priority, and the local-dependency list are in references/requirements.md.
Provider chains (the detail behind the engine)
TTS — first available provider wins (the engine, or npx hyperframes tts "..."):
| Order | Provider | Detected when | Word timestamps |
|---|---|---|---|
| 1 | HeyGen (Starfish) | $HEYGEN_API_KEY / hyperframes auth login | Yes, native — pass --words narration.words.json to capture |
| 2 | ElevenLabs | $ELEVENLABS_API_KEY set | No — chain transcribe after |
| 3 | Kokoro-82M (local, 54 voices) | always (no key required) | No — chain transcribe after |
The published
hyperframes ttsCLI is often the local-only build (its--helpsays "Kokoro-82M", no--provider/--words) and silently falls back to Kokoro even with$HEYGEN_API_KEYset. That is why the engine's HeyGen path is the self-containedscripts/heygen-tts.mjs(REST), NOT the CLI; the CLI is used only for the Kokoro path. Seereferences/tts.md.
BGM & SFX — by default retrieved from the HeyGen audio library (/v3/audio/sounds), same credential as HeyGen TTS, with the no-credential fallback from the switch above:
| Asset | HeyGen type | Lands in | Fallback (no credential) |
|---|---|---|---|
| BGM | music | assets/bgm/track.mp3 (retrieve) · track.wav (generate) | Lyria / MusicGen generation |
| SFX | sound_effects (min_score 0.4) | assets/sfx/<slug>.mp3 | bundled 21-file library (assets/sfx/* + manifest.json) |
See references/bgm.md and references/sfx.md.
Routing
| Task | Read |
|---|---|
The audio engine — request/meta schema, --only, the switch | scripts/audio.mjs (header comment) |
npx hyperframes tts / heygen-tts.mjs — providers, voices, words | references/tts.md |
| BGM — HeyGen retrieval + local Lyria / MusicGen generation | references/bgm.md |
| SFX — HeyGen retrieval (min_score 0.4) + bundled local library | references/sfx.md |
npx hyperframes transcribe — Whisper, model rules, output shape | references/transcribe.md |
npx hyperframes remove-background — transparent cutouts | references/remove-background.md |
| TTS → transcription → captions (no recorded voiceover) | references/tts-to-captions.md |
| Caption authoring — style detection, layout, word grouping, exit | references/captions/authoring.md |
| Transcript handling — input formats, quality gates, cleanup, APIs | references/captions/transcript-handling.md |
| Caption motion — karaoke, marker effects, audio-reactive | references/captions/motion.md |
| Model caches, system dependencies, troubleshooting | references/requirements.md |
Non-negotiable rules
- One engine, no vendored copies. Produce audio via
scripts/audio.mjs(orheygen-tts.mjsfor one-shot HeyGen TTS). Don't re-implement TTS/BGM/SFX inside a workflow — write anaudio_request.jsonadapter and call the engine. - "HeyGen available" = a resolvable credential, not the CLI. The whole switch keys off
heygenCredential(); the publishedhyperframes ttsmay be Kokoro-only, and there is nohyperframes bgm/hyperframes sfxcommand at all. - Voice IDs are provider-specific.
am_michaelis Kokoro-only; HeyGen UUIDs don't work on Kokoro. If you pass--voice, also pin--providerto avoid silent provider drift when the user's env changes. - Always pass
--modeltotranscribe. The CLI defaultsmall.ensilently translates non-English audio. Seereferences/transcribe.md→ "Language Rule". - HeyGen returns word timestamps; ElevenLabs / Kokoro do not. The engine chains
transcribeautomatically for the latter two; standalone, pass--wordsto HeyGen or runtranscribeagainst the audio file. - Captions consume the flat word-array format with
{ id, text, start, end }. Seereferences/transcribe.md→ "Output Shape". remove-background --background-outputis hole-cut, not inpainted. For "scene without the person", a different tool is needed. Seereferences/remove-background.md→ "When NOT the right tool".- BGM/SFX default to HeyGen retrieval; the no-credential fallback is generation (BGM) or the bundled library (SFX).
/audio/soundsranks by a text query — name effects concretely (glass shatter, notdramatic sound); a no-match skips, never blocks the render. SFX sit at volume ~0.35 under voice + BGM. Seereferences/sfx.md/references/bgm.md. - Treat workflow caption HTML as generated output. For preset-backed videos, the reusable skin source lives at
.hyperframes/caption-skin.htmland the workflow script writescompositions/captions.html; do not edit generatedcompositions/captions.htmlto fix the skin. Rebuild via the workflow'scaptions.mjs, or use that workflow's explicit overrides mechanism when present.
Все файлы скилла
- assets/sfx/CREDITS.md
- assets/sfx/manifest.json
- references/bgm.md
- references/captions/authoring.md
- references/captions/motion.md
- references/captions/transcript-handling.md
- references/remove-background.md
- references/requirements.md
- references/sfx.md
- references/transcribe.md
- references/tts-to-captions.md
- references/tts.md
- scripts/audio.mjs
- scripts/heygen-tts.mjs
- scripts/lib/bgm.mjs
- scripts/lib/concurrency.mjs
- scripts/lib/concurrency.test.mjs
- scripts/lib/heygen.mjs
- scripts/lib/python.mjs
- scripts/lib/python.test.mjs
- scripts/lib/sfx.mjs
- scripts/lib/sfx.test.mjs
- scripts/lib/tts.mjs
- scripts/lib/tts.spawn.test.mjs
- scripts/lib/tts.test.mjs
- scripts/lyria-recipe.py
- scripts/wait-bgm.mjs
- SKILL.md
Другие скиллы автора
hyperframes-cli
459,464 установокheygen-com/hyperframes
CLI-инструмент для создания видео через HyperFrames: инициализация проекта, поиск готовых анимаций по описанию, авторинг, проверка качества и рендер. Помогает быстро получать обратную связь, диагностировать ошибки сборки и запускать рендер в облаке или локально.
hyperframes
444,457 установокheygen-com/hyperframes
HyperFrames — это инструмент для создания и редактирования видео из HTML-композиций с управлением таймингом через data-атрибуты. Он поддерживает анимацию, рендеринг, публикацию и пакетную обработку проектов, автоматически выбирая нужный рабочий процесс в зависимости от задачи. Полезен для быстрого производства роликов, презентаций и моушн-графики без ручного видеомонтажа.
hyperframes-registry
401,979 установокheygen-com/hyperframes
Скилл для работы с реестром HyperFrames: устанавливает блоки и компоненты через `hyperframes add`, ищет по каталогу с учётом смысла запроса и подключает их в композицию. Помогает настроить атрибуты, расположение файлов и сообщить о недостающих элементах каталога.
hyperframes-core
346,113 установокheygen-com/hyperframes
Hyperframes Core — технический контракт для сборки видео из HTML: композиции описывают тайминг через data-атрибуты, анимации перематываются, медиа управляется фреймворком. Описывает структуру проектов, треки, субкомпозиции, переменные, правила детерминизма и проверку через CLI. Нужен для создания корректных и предсказуемых рендеров.
remotion-to-hyperframes
251,469 установокheygen-com/hyperframes
Скилл портирует существующие Remotion-композиции в HyperFrames (HTML + GSAP), автоматически сопоставляя API и проверяя качество перевода по SSIM-метрикам. Отклоняет неподдерживаемые паттерны вроде React-стейтов и предлагает обходные пути, экономя время на ручной миграции.
hyperframes-keyframes
248,254 установокheygen-com/hyperframes
Скилл для создания покадровой анимации в композициях HyperFrames: зум, панорамы, перебивки, рефреймы и переходы между сценами. Охватывает GSAP, CSS, Anime.js и WAAPI, помогает выбрать подходящий механизм анимации, настроить тайминг, работу с текстом и SVG, а также избегать ошибок с синхронизацией и производительностью.
general-video
219,888 установокheygen-com/hyperframes
Универсальный навык для создания и редактирования видео через HyperFrames: от простых роликов до многосценных проектов. Автоматизирует выбор рабочего процесса, управление медиафайлами, следование брифам и проверку качества на каждом этапе.
faceless-explainer
205,164 установокheygen-com/hyperframes
Превращает любой текст — статью, заметку или конспект — в готовый сценарий объясняющего видео с полностью синтетическим визуальным рядом. Автоматически подбирает стиль, строит раскадровку, генерирует закадровый голос и собирает ролик в формате explainer. Подходит для образовательных и популярных видео без реальных съёмок и видеоматериалов.
product-launch-video
204,747 установокheygen-com/hyperframes
Превращает ссылку на продукт или готовый сценарий в готовое промо-видео: захватывает сайт, анализирует бренд, создаёт сценарий и собирает ролик по кадрам. Подходит для анонсов, обзоров функций и презентаций продуктов.
motion-graphics
201,110 установокheygen-com/hyperframes
Создаёт короткие дизайнерские моушн-графики до 10 секунд: кинетическая типографика, анимированные цифры и графики, логотипы, нижние трети, карты, твиты и интерфейсы. Без озвучки, результат — MP4 или прозрачный оверлей. Подходит для эффектных акцентов в видео и соцсетях.
pr-to-video
183,893 установокheygen-com/hyperframes
Превращает GitHub pull request в короткое видео-объяснение изменений кода: changelog, обзор новой функции, разбор исправления или рефакторинга. Скилл сам анализирует diff, коммиты и файлы, строит сценарий и рендерит готовый ролик с озвучкой.