native-subtitle-quote-image — скилл

Скилл собирает из видео вертикальные картинки с кадрами и субтитрами: вырезает вшитые или рисует проверенные реплики

  • 2 859 ★ репозитория
  • Последний коммит
  • MIT
Скилл

Широкий доступ

Почему такой уровень

  • Если YouTube требует вход, скилл может использовать cookies браузера через `yt-dlp`, но только после вашего разрешения
  • Скилл скачивает чужие видео, и публикация кадров с чужими лицами и репликами может нарушать авторские права и права на изображение
  • Скрипты пишут файлы на диск и ставят пакеты Python с вашего согласия
Все причины и проверки

chengyi-ai/native-subtitle-quote-image

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/native-subtitle-quote-image

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Если YouTube требует вход, скилл может использовать cookies браузера через `yt-dlp`, но только после вашего разрешения
  • Скилл скачивает чужие видео, и публикация кадров с чужими лицами и репликами может нарушать авторские права и права на изображение
  • Скрипты пишут файлы на диск и ставят пакеты Python с вашего согласия

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

native-subtitle-quote-image делает из видео длинную картинку из реальных кадров с субтитрами, обычно в пропорции 3:4. Источником служит локальный файл или ссылка на YouTube, на которую у вас есть права. Скилл находит реплики по расшифровке, точно берет кадры, собирает коллаж и проверяет каждую картинку. Режимов два, и скилл их не смешивает. В режиме «нативные субтитры» команда `render` вырезает полосы субтитров, которые уже вшиты в картинку видео, без распознавания и перерисовки. В режиме «скриптовые субтитры» команда `render-script` рисует на реальном кадре ваши проверенные реплики из JSON и помечает их как поставленные позже. Если режим не назван, агент сначала спрашивает. Скрипты работают и без агента: `check-source` проверяет разрешение и декодирует первые 10 секунд, `sample` строит обзор кадров-кандидатов, `band` показывает область обрезки. Для ссылок нужен `yt-dlp`, перед работой скилл разово сверяется с последним релизом на GitHub.

Для кого. Для авторов соцсетей и контент-менеджеров, которые делают из интервью, сериалов и лекций картинки с цитатами по реальным кадрам.

Подходит, если

  • Нужна длинная картинка с пятью репликами из видео со вшитыми субтитрами, без перерисовки текста
  • Нужно разместить реплики из проверенной расшифровки или перевода на реальных кадрах как отмеченные субтитры
  • Нужно собрать несколько картинок из YouTube-видео на выбранную тему и сверить каждую
  • Нужно выбрать кадры без смазывания в момент смены субтитров: `sample` берет кадры вокруг заданных меток времени

Не подходит, если

  • Субтитры в видео включаются отдельной дорожкой: нативный режим их не вырежет, скилл предложит скриптовый режим только с вашего согласия
  • У вас нет прав на видео: скилл рассчитан на материал, который вы вправе обрабатывать
  • Нужно смонтировать видеоролик: скилл делает только статичные картинки
  • Нужна подделка цитат: скриптовые реплики берутся только из проверяемого источника и помечаются

Пример запроса к агенту

Используй native-subtitle-quote-image: возьми это видео с вшитыми субтитрами и собери нативную картинку из пяти реплик

Ограничения

Нужен Python 3 с пакетами из `requirements.txt`. Для ссылок нужен `yt-dlp`, для китайских, японских и корейских реплик нужны подходящие шрифты, что проверяет `check_environment.py --script-mode`. YouTube иногда требует вход, и тогда скилл просит разрешения использовать cookies браузера. Видео ниже 720p проходят только с вашего подтверждения. Доступ к YouTube из России может быть ограничен. Версию скилла хранит файл `VERSION`, о новом релизе скилл только сообщает и сам не обновляется. Работа проверяется тестами в каталоге `tests/`.

Как отключить. Удалите папку `native-subtitle-quote-image` из каталога скиллов агента, например `~/.claude/skills/` или `~/.codex/skills/`.

Частые вопросы

Как поставить native-subtitle-quote-image в Claude Code?

Склонируйте репозиторий и выполните `mkdir -p ~/.claude/skills && cp -R skills/native-subtitle-quote-image ~/.claude/skills/`. Затем установите зависимости из `requirements.txt` и запустите `check_environment.py`.

Чем нативные субтитры отличаются от скриптовых?

Нативные субтитры вырезаются из пикселей видео без перерисовки. Скриптовые рисуются на кадре из проверенного JSON и помечаются как поставленные позже. Скилл не заменяет один режим другим без вашего согласия.

Работает ли скилл со ссылками на YouTube?

Да, через `yt-dlp`: скилл скачивает видео и вспомогательные дорожки. После скачивания `check-source` проверяет, что разрешение не ниже 720p и первые секунды декодируются.

Можно ли запустить скрипты без агента?

Да. Скрипт `native_subtitle_stitch.py` принимает команды `check-source`, `sample`, `band` и `render` с путем к видео, примеры лежат в README.

Какие размеры картинок получаются?

По умолчанию 3:4, но можно сохранить исходную пропорцию кадра или указать свою. Для нескольких картинок скилл делает общий обзор `final_contact_sheet.jpg`.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Скилл video-explainer собирает вертикальный ролик 9:16 из сценария: озвучка, субтитры, Remotion и проверка перед рендером

СкиллРасширенный доступ122Звезды репозитория

Скилл собирает из темы озвученное видео в 4K: исследование, сценарий, локальный TTS, монтаж на Remotion и сведение в FFmpeg

СкиллРасширенный доступ1,7 тыс.Звезды репозитория

Скилл ищет B-roll и дословные источники реплик, показывает их в Storyboard и отдает вырезки после вашего одобрения

СкиллШирокий доступ203Звезды репозитория

Скилл извлекает из длинного видео яркие фрагменты: скачивание, транскрипт, разбивка, анализ и нарезка клипов с заголовками

СкиллРасширенный доступ579Звезды репозитория

Скилл-видеорежиссер: по одной фразе собирает проект ролика с материалами, раскадровкой, титрами, анимацией, рендером через ffmpeg и проверкой

СкиллШирокий доступ378Звезды репозитория

Пара скиллов для агента: настройка среды монтажа и сборка вертикального короткого видео по восьми шагам с проверкой

СкиллРасширенный доступ615Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйЗвезды репозиторияГлавное отличие
native-subtitle-quote-image (эта карточка)нет2 859
YouTube Clipper Skillнет2 284вырезает фрагменты видео с YouTube и картинок не собирает
Claude Videoнет19 950позволяет агенту смотреть видео, без готовых картинок с субтитрами

Коротко о README

Документация на китайском, английском и корейском, в ней галерея готовых картинок, схема работы и команды скриптов. Среду скилл проверяет в режиме чтения, а недостающее ставит только после вашего согласия.

Бейдж для README

Исходный SKILL.md

---
name: native-subtitle-quote-image
description: 将本地视频或用户有权处理的在线视频,经过来源获取、文字稿定位、选题选句、精确取帧、紧凑裁切、拼图和逐张质检,制作成 3:4 或保留画面原比例的视频字幕长图。支持两种明确分开的输出:保留画面内已烧录字幕的原生字幕模式,以及把已审核的时间点与台词绘制到真实视频帧上的脚本字幕模式。用户要求原生字幕截图、字幕帧拼图、YouTube 金句长图、台词截图、不重绘字幕、自定义中文台词,或调整主图比例、字幕区域、台词间隔和美感时使用。
---

# 视频字幕拼图

先确认用户想要的字幕模式,再判断素材是否支持。不要把两种模式混为一种,也不要默默从原生字幕切到绘制字幕。

## 开始时确认模式

如果用户没有明确指定模式,先用用户当前使用的语言询问,并简短说明两种选择。中文提问可直接使用:

> 您当前是选择原生字幕还是脚本字幕?原生字幕会保留视频画面里已有的字幕,不重绘文字;脚本字幕会把您确认过的台词或翻译后期绘制到真实视频帧上,并标明是后期字幕。

用户已明确说“原生字幕”“保留画面原字幕”“不重绘字幕”,或“脚本字幕”“把指定台词/翻译绘制到画面上”时,按其选择继续,不重复询问。用户尚未选择时,可以只读检查素材以说明哪种模式可行,但不要执行模式专属的渲染;等用户选择后再继续。若所选模式与素材不匹配,说明具体原因并征求用户是否改选,不能自行切换。

## 非阻塞版本检查

每个新任务开始、处理素材之前运行一次:

```bash
python3 "<SKILL_DIR>/scripts/check_update.py" --json
```

- 脚本从 Skill 内的 `VERSION` 读取本地版本,只访问本项目的 GitHub Latest Release;默认 24 小时内复用一次缓存。
- 结果为 `update_available` 时,用一句话告诉用户当前版本、最新版本和 Release 链接,然后继续当前任务。只提醒,不自动更新、不覆盖本地 Skill。
- 结果为 `up_to_date` 时无需打扰用户。结果为 `unavailable` 时也不要阻塞当前任务;若只是运行环境禁止联网,可申请对 GitHub API 的只读访问并用 `--force` 重试一次,未获授权就继续任务。
- 缓存只包含检查时间、最新版本号和 Release 链接,不写入仓库,也不记录账号、素材或使用行为。

## 模式路由

| 条件 | 模式 | 成品文字来源 | 命令 |
|---|---|---|---|
| 关闭播放器 CC 后,截图里仍有字幕;用户要求保留原字幕 | **原生字幕模式** | 视频画面像素 | `render` |
| 视频没有需要的烧录字幕,但用户要求把经确认的台词、翻译或观点排成案例风格 | **脚本字幕模式** | 已审核 JSON 中的 `text` | `render-script` |

- 原生模式不得 OCR 后重绘、翻译、改写或覆盖字幕。
- 脚本模式必须明确称为“脚本字幕”或“后期绘制字幕”,不得宣称文字是画面原字幕。
- 脚本台词必须能回到原视频、用户稿件或其他明确来源复核;不编造人名、数据、引语或翻译含义。
- 用户只说“保留原字幕”时,不能因为原字幕难处理就转脚本模式。

## 按任务读参考文件

- **YouTube 等 URL**:先读 [references/yt-dlp-and-transcripts.md](references/yt-dlp-and-transcripts.md),获取用户有权处理的视频、元数据和辅助时间轴。URL 任务不能在一次公开请求失败后直接退回“只支持本地视频”:若 YouTube 返回机器人登录验证、年龄验证或用户自己的非公开视频限制,先说明原因并取得授权,再按参考文件用 `yt-dlp --cookies-from-browser chrome` 继续。字幕和视频分两条命令下载;下载前用 `yt-dlp -F` 枚举变体并按 AV1 → VP9 → H.264 择优,下载后必须运行 `native_subtitle_stitch.py check-source VIDEO --min-height 720`(解码前 N 秒无错误、分辨率达标)才能继续;视频报 HTTP 403 或自检失败时按参考文件的格式回退表逐级换变体,低于 720p 的级别须先征得用户确认,每次尝试记入 `download-attempts.log`;字幕报 429 时缩减语言并放慢请求,都不要无限重试。
- **读长视频 → 选题 → 写文章/帖子 → 配图**:读 [references/end-to-end-workflow.md](references/end-to-end-workflow.md)。
- **台词条太高、间隔太宽、缺少美感**:读 [references/visual-style.md](references/visual-style.md)。
- **报错、出图异常或结果不对**:先查 [references/troubleshooting.md](references/troubleshooting.md),按「症状 → 先查什么 → 怎么处理」逐项排查。
- **本地短视频且时间点已确定**:直接执行下面的核心流程。

## 环境与路径

将 `<SKILL_DIR>` 解析为当前 `SKILL.md` 所在目录的绝对路径;不要假设 Agent 的工作目录就是 Skill 目录。

```bash
# 本地原生字幕
python3 "<SKILL_DIR>/scripts/check_environment.py"

# 中日韩脚本字幕
python3 "<SKILL_DIR>/scripts/check_environment.py" --script-mode

Сообщить о проблеме

Foxx AInative-subtitle-quote-image
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.