native-subtitle-quote-image — скилл
Скилл собирает из видео вертикальные картинки с кадрами и субтитрами: вырезает вшитые или рисует проверенные реплики
- 2 859 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Если YouTube требует вход, скилл может использовать cookies браузера через `yt-dlp`, но только после вашего разрешения
- Скилл скачивает чужие видео, и публикация кадров с чужими лицами и репликами может нарушать авторские права и права на изображение
- Скрипты пишут файлы на диск и ставят пакеты Python с вашего согласия
Установка
- Работает в
В терминале, через 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 и проверка перед рендером
Скилл собирает из темы озвученное видео в 4K: исследование, сценарий, локальный TTS, монтаж на Remotion и сведение в FFmpeg
Скилл ищет B-roll и дословные источники реплик, показывает их в Storyboard и отдает вырезки после вашего одобрения
Скилл извлекает из длинного видео яркие фрагменты: скачивание, транскрипт, разбивка, анализ и нарезка клипов с заголовками
Скилл-видеорежиссер: по одной фразе собирает проект ролика с материалами, раскадровкой, титрами, анимацией, рендером через ffmpeg и проверкой
Скиллы монтажа коротких видео
ChatGPT 剪短影音 Skills
Пара скиллов для агента: настройка среды монтажа и сборка вертикального короткого видео по восьми шагам с проверкой
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| 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