About this project

This project targets users who need to turn video content into social sharing images, providing frame selection, subtitle processing, compositing, and quality-check capabilities as an Agent Skill. It supports local videos and, via yt-dlp, online videos the user is authorized to use; URL mode can also fetch metadata and subtitle tracks, optionally using Whisper or other speech recognition to build timestamps. The project distinguishes two subtitle sources: native mode keeps only existing subtitle pixels from the video frames without OCR redrawing, translation, or rewriting; script mode draws timestamped, reviewed dialogue onto real video frames, clearly marked as post-hoc subtitles. If the video has only separate, toggleable subtitle tracks, the Skill requires stating the limitation first and obtaining consent before switching to script mode, avoiding mixing modes. The full workflow includes source acquisition, checking real frames, determining burned-in vs. standalone subtitle tracks, transcript alignment, selection of quotes, returning to real frames to calibrate timestamps, generating a manifest or lines JSON, compact 3:4 rendering, and per-image visual QA. The repository offers three working modes: local finished videos, full URL processing, and content production paired with a topic-writing Skill. Scripts can generate evenly sampled candidate frame overviews or frames around a specified timestamp (before/after); then preview subtitle crop regions and output native or scripted subtitle JPGs. Multi-image tasks produce a contact-sheet overview while preserving a timestamp list. Layout follows a spec where the main image occupies most height, subtitle strips are compact and contiguous with no extra gaps, and the main image ratio auto-adjusts based on subtitle count. Core dependencies include Python 3.10+, Pillow, imageio-ffmpeg or system FFmpeg; URL mode additionally requires yt-dlp and Deno or Node.js; script mode needs a CJK font for drawing Chinese/Japanese/Korean text. The project provides read-only environment diagnostics, non-blocking version checks, and GitHub Actions tests. In URL mode, if YouTube login or age verification is encountered, yt-dlp may temporarily read Chrome cookies after explicit user authorization; docs state cookies are not exported, saved, uploaded, or written to the repo. Code and Skill instructions are under the MIT License; input videos, generated images, and third-party content within them receive no additional rights under this license.