Communitygithub.com

Karthic1981/hoodini-ai-agents-skills.gitni-ai-agents-skills

将任意视频转换为电影式滚动驱动着陆页——类似苹果风格,滚动时逐帧播放视频。适用于用户提供视频文件并要求“从该视频生成着陆页”、“滚动式网站”、“Apple风格滚动网站”、“帧滚动英雄页”等场景。

hoodini-ai-agents-skills.gitni-ai-agents-skills 是什么?

该技能将用户提供的视频文件转化为一个自包含的HTML着陆页,其核心是一个“滚动驱动”的英雄区:视频帧不按时间播放,而是根据用户滚动位置切换。该技能首先通过ffmpeg(通过`references/extract-frames.py`脚本)从源视频中提取均匀间隔的帧(默认80帧,根据视频时长在40-160帧之间调整),然后生成一个包含粘性英雄区(`position: sticky`)的HTML页面,该英雄区使用JavaScript滚动监听器来交换显示当前帧。页面还包含标题、标语、分区内容和行动号召按钮。对于YUV.AI品牌项目,它会自动应用霓虹风格(粉红/青色/白色,默认用于YUV.AI网页)或暖色编辑风格(粉红/黄色/骨色,适用于特定项目),并严格避免使用卡片风格(紫色/黄色,仅限幻灯片)。对于非YUV.AI项目,它会根据视频氛围选择合适的调色板。输出为单个文件夹,包含`index.html`和`frames/`目录,可直接部署到Vercel、Netlify或Cloudflare Pages等静态托管平台。该技能鼓励将所有着陆页保存在`~/Documents/yuv-projects/landings/<slug>/`下以便后续查找。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Karthic1981/hoodini-ai-agents-skills.gitni-ai-agents-skills/tree/HEAD/skills/video-to-landing-page

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

视频 → 滚动驱动着陆页

构建一个电影式着陆页,其中英雄区是随滚动播放视频,而非按时间播放——类似于苹果产品页面或GitHub Copilot着陆页。帧从源视频提取,并在用户滚动时切换;在粘性英雄区下方,正常滚动的部分承载文案和行动号召按钮。

何时调用

  • 用户提供视频并提出需要着陆页、滚动式网站、帧滚动英雄区或基于视频的网站。
  • 提及“Apple风格滚动”、“GitHub Copilot着陆页”、“随滚动擦除”、“随滚动帧”。
  • 希伯来语对应表述:“דף נחיתה מסרטון”、“אתר עם גלילה”、“סרטון בגלילה”。

保存位置

默认路径: ~/Documents/yuv-projects/landings/<slug>/ —— 始终将着陆页保存于此,以便后续查找。如父目录不存在,请先创建。

mkdir -p ~/Documents/yuv-projects/landings
cd ~/Documents/yuv-projects/landings
# 在此处构建 <slug>/。

最终路径:~/Documents/yuv-projects/landings/<slug>/。每次构建完成后告知用户着陆页的存放位置。


工作流程(8步)

  1. 探测源文件 —— 使用 ffprobe 获取时长、帧率、尺寸、音频信息。
  2. 选择帧数 —— 默认 80。最低 40(低于此值会出现卡顿),上限 160(页面过重)。根据时长决定:≤10秒 → 50帧,10–30秒 → 80帧,30–60秒 → 120帧,>60秒 → 160帧。
  3. 确定输出目录 —— 默认 ~/Documents/yuv-projects/landings/<slug>/。<slug> 为简短标识,源自视频名称或主题。仅在用户明确要求时覆盖。
  4. 提取帧 —— 运行 references/extract-frames.py <源视频> <输出目录> [帧数]。输出 输出目录/frames/f_0001.jpg……等,统一JPG质量82,最大宽度1920像素(若源文件更大则缩小)。
  5. 复制并定制 references/landing-template.html 到 output-dir/index.html:
    • 将 __FRAMES__ 占位符替换为每帧的 <img> 标签(构建脚本在传递 --build-html 参数时自动完成)。
    • 填写 __HEADLINE__、__TAGLINE__、__CTA_TEXT__、__CTA_HREF__ 以及各分区内容。
    • 对于希伯来语内容:设置 <html lang="he" dir="rtl">,将字体切换为 Rubik/Assistant(参见 references/design-notes.md)。
  6. 优化帧 —— 构建脚本已自动将帧缩放至最大宽度1920像素。若页面总大小超过12 MB,则将质量降至75或减少帧数。
  7. 预览 —— 在输出目录内运行 python -m http.server,打开 http://localhost:8000。在性能良好的机器上滚动应流畅顺滑。
  8. 部署 —— 直接将文件夹部署到 Vercel/Netlify/Cloudflare Pages,无需额外构建步骤。

滚动机制

  • 外层滚动容器 .scroll-stage 高度以视口单位设置(默认 600vh = 滚动5屏遍历所有帧)。
  • 粘性英雄区 position: sticky; top: 0; height: 100vh,内含所有绝对定位且隐藏(除当前帧外)的帧。
  • 滚动监听器计算 progress = scrolledIntoStage / scrollableHeight,范围限制在0-1之间。
  • idx = floor(progress * (N - 1)) —— 将 .active 类切换到该帧。
  • 将监听器包裹在 requestAnimationFrame 中以确保60fps流畅度。

设计规则

  • 如果项目是 YUV.AI品牌(Yuval本人、其作品集、其品牌):调用 yuv-design-system,并根据媒介锁定模式:
    • 霓虹模式(YUV.AI网页的默认风格):热粉色(#FF1464)+ 霓虹青色(#00E5FF)+ 白色或深黑色背景。Anton + Inter(英文)/ Rubik + Assistant(希伯来文)。圆角0px或999px。
    • 暖色编辑模式:仅用于Hope、Marcus、bigcats.ai、practical.yuv.ai——粉色+黄色+骨色,使用米白而非纯 #fff。
    • 绝不可在着陆页中使用卡片模式(飞高紫/黄)——该调色板仅限幻灯片使用。
  • 如果项目非 YUV.AI品牌:不要应用yuv-design-system。选择与源视频氛围匹配的调色板。Anton + Inter仍是合理的默认选择,但非强制。
  • 英雄区叠加效果应微妙——添加暗角效果和一个大标题,不要淹没帧内容。
  • 英雄区下方的分区:浅色背景(霓虹模式下为白色,暖色编辑模式下为米白,通用暖色风格下为骨色),大号Anton标题,正文使用Inter字体18–22px,行动号召按钮为尖锐药丸形(border-radius: 999px)——霓虹模式下使用粉色填充,否则使用品牌色。
  • 希伯来语:遵循RTL,标题使用Rubik 900,正文使用Assistant 400/500。

文件参考

文件用途
references/extract-frames.py基于ffmpeg的帧提取器;可选一步构建完整的HTML
references/landing-template.html包含滚动机制的自包含着陆页骨架
references/design-notes.md排版、调色板和动效默认值

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Karthic1981/hoodini-ai-agents-skills.gitni-ai-agents-skills

Build a premium cinematic landing page with mouse-scrub video hero and brand-driven narrative-arc sections. Use whenever the user provides a hero video plus a product / subject / brand and wants a landing page, promo site, product showcase, marketing page, or storytelling site. Works for any language (RTL or LTR — Hebrew, English, Arabic, Spanish, French, Japanese, etc.) and any subject (food, tech, animals, fashion, services, SaaS, wildlife campaigns, music releases, books, real estate). The signature effect is mouse-driven video scrubbing — the hero video lives across the entire page as a fixed backdrop, and moving the mouse left-right scrubs the video timeline so the subject responds to the cursor. Below the hero, 4-5 fully-opaque sections each carry their own brand identity (color, typography emphasis, layout pattern) and walk the viewer through a narrative arc (e.g. longing → joy → nostalgia → contemplation → action). Triggers on phrases like "build a landing page from this video", "cinematic landing ...

Karthic1981/hoodini-ai-agents-skills.gitni-ai-agents-skills

Build a scroll-driven cinematic landing page from a short video. The user provides a 5–15 second video (often AI-generated); this skill extracts every frame at HD JPEG quality, then produces a single-hero HTML page where the user's scroll gesture scrubs the frames in place (the page itself never scrolls) and 5 dramatic text overlays crossfade in/out — Google Anton headlines, Caveat handwritten accents, locked body, virtual scroll. Use this skill whenever the user wants to "turn this video into a landing page", "make a scroll-scrub landing page", "build a parallax hero from this clip", "add a new landing page to the parasites showcase", "do the same as github/lion/hope for this new video", or any variant that pairs a short clip with dramatic scroll-triggered storytelling. Trigger even if the user only says "use my video for a landing page" — that is this skill.

相关技能