Communitygithub.com

电影剧照查找器

将“我需要两人争吵后静坐沉默的剧照”转化为真实、可溯源的高清图片文件。适用于任何AI代理、任何操作系统,无需任何凭证。

电影剧照查找器 是什么?

这是一个专为AI代理设计的工具型技能,用于根据自然语言描述(如场景、情绪、台词)精确查找并提取电影剧照。它并非依赖单一的“银弹”API,而是构建了一个完整的流水线:先进行事实核查(避免网络谣言),然后选择最佳图像源(如movie-screencaps.com或FilmGrab),批量下载候选图片,生成带编号的缩略图联系表,借助视觉能力模型挑选最匹配画面,最终提供高清原图,并可进行字幕裁剪、合成等后期处理。技能不依赖任何API密钥或登录凭证,支持所有操作系统(Linux、macOS、Windows),并通过 `profiles/*.json` 配置文件灵活适配不同场景(如快速预览、社交媒体编辑等)。其关键设计原则是:**视觉筛选步骤不可跳过**(不能仅靠文件名猜测),**必须先验证事实**,并且严格遵守“无凭据”和“记录溯源”的规则,确保每个输出的图片都有可追溯的原始来源。

兼容平台✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/Fitzfeichi/movie-still-finder/tree/master

在你喜欢的 AI 中提问

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

文档

电影剧照查找器 是做什么的?

将“我需要两人争吵后静坐沉默的剧照”转化为真实、可溯源的高清图片文件。适用于任何AI代理、任何操作系统,无需任何凭证。

1. 先读这个:实际能做什么

不存在免费的公共API,能直接接收一句自然语言描述并返回精确的电影帧画面,尤其是带有对白字幕的画面。追求这种“银弹”只会浪费时间。有效的方法是一个流水线,由代理编排,并由具备视觉能力的模型挑选帧:

请求 -> 事实核查 -> 选择来源 -> 批量下载候选图片
      -> 编号联系表 -> 视觉帧挑选 -> 高清原图
      -> 裁剪字幕 / 合成字幕 -> 视觉复核
      -> 交付 + 来源清单

两个不可妥协的推论:

  • 视觉步骤不可跳过。 仅凭文件名或文本猜测帧必定失败。向具备视觉能力的模型(或人类)展示联系表。
  • 先事实核查。 关于电影的广泛流传的“事实”常常是错误的(参见 references/fact-check.md)。在搜索前先核实台词/场景/剧集。

2. 快速开始(最小配置,默认方式)

pip install -r requirements.txt
python scripts/still.py probe                       # 测试当前哪些来源可达
python scripts/still.py grab --out ./work \
  --page "https://movie-screencaps.com/avatar-2009/page/114" \
  --image-referer "https://movie-screencaps.com/" \
  --limit 40
# -> ./work/candidates/*.jpg, ./work/contact_1.jpg, ./work/manifest.json
# 向视觉模型展示 contact_1.jpg,记下获胜的编号,然后:
python scripts/still.py sheet ./work/candidates     # 重新生成带编号的缩略表
python scripts/still.py crop ./work/candidates/p1_02.jpg --bottom 100 -o ./work/clean.jpg
python scripts/still.py deliver ./work --picks examples/sample-picks.json \
  --profile profiles/minimal.json --out ./delivery

始终先运行 probe:来源可用性会变化。如需完全离线运行,请参见 examples/quickstart.md 的D章节。--image-referer 通常设为网站根路径,而非文章URL。

如需对白台词,quote 可提供影片名称和毫秒时间戳:

python scripts/still.py quote "I see you" --title Avatar

完整演练:examples/quickstart.md。命令参考:scripts/still.py --help。

3. 在接触网络前先决定路线

请求类型首选来源备用来源
场景/氛围(“争吵后的沉默”、“两人背对背”)带说明的剧照文章,或FilmGrab策展帧(grab)逐帧画廊 + 视觉挑选
引述的台词 / “X说Y的那帧”quote → 时间戳 → 帧画廊 → subtitle(标记为合成)带原生字幕的文章截图
需要宽幅、干净、无字幕的封面图FilmGrab策展帧从观看截图裁剪底部 95-100 像素
用户有本地视频文件可选的本地语义搜索,参见 references/optional-adapters.md—
梗图而非剧照可选附录,references/meme-optional.md—

先运行 probe。它免费、无需登录,并能告诉你当前环境下哪些来源返回403/不可达,从而避免重复请求失效的主机。

4. 对所有代理都适用的规则

  1. 无凭证。 不要索要API密钥,不要代用户登录,不要绕过付费墙或反爬虫保护。收到403意味着“切换来源”,并在运行日志中记录。
  2. 只下载实际返回的URL。 永远不要编造图片URL。一个页面可达并不意味着其图片CDN可达:在信任整个画廊前先验证一张图片。如果图片在修改一次Referer后仍返回403,则切换来源——不要持续更换请求头。
  3. 记录溯源。 每张交付的图片都需要包含来源页面、直接图片URL、影片名称/年份,以及是否裁剪或合成了字幕。grab 会自动将这些信息写入 manifest.json。
  4. 标记合成的字幕。 如果你添加了原始帧中没有的字幕,必须在说明中注明。绝不要将其呈现为原生帧。
  5. 验证分辨率(默认宽度 >= 1000 像素)并在交付前用查看器打开最终文件。
  6. 尊重配置文件。 超出上述范围的行为(如人工介入选择、双文件夹交付、强制事实核查、封面裁剪预览)由 profiles/*.json 控制。不要静默启用额外规则。

5. 配置文件(可选行为)

默认的 profiles/minimal.json 是一个简单的通用流水线:寻找候选、挑选一个、附带溯源交付。其他一切均为可选。

python scripts/still.py rules --profile profiles/editorial-wechat.json
python scripts/still.py deliver ./work --picks picks.json \
  --profile profiles/editorial-wechat.json --out ./delivery

editorial-wechat.json 捆绑了人类编辑的工作流:带编号的预览和人工选择(绝不自动终选)、双文件夹交付且不删除任何候选、强制事实核查、强制字幕/来源标注,以及 2.35:1 封面裁剪预览。参见 profiles/README.md 了解完整模式。

6. 参考索引(渐进式披露)

只阅读当前步骤所需的内容。

文件何时阅读
references/workflow.md需要完整的端到端标准作业程序和验收清单
references/sources.md选择来源,或某个来源停止工作
references/pitfalls.md某步操作失败;包含已知的死主机和确切的失败模式
references/image-ops.md联系表、裁剪、字幕合成、字体
references/fact-check.md任何涉及引述台词或描述特定场景的请求
references/delivery.md溯源模式、双文件夹布局、版权边界
references/meme-optional.md用户要求梗图而非剧照
references/optional-adapters.md本地视频库,或其他基于登录/CLI的工具

7. 验收清单

  • 在搜索前已对台词/场景进行事实核查
  • 编号联系表已由视觉模型或人类查看过
  • 最终图片能正常打开且符合请求,而不仅仅是查询
  • 来源页面 + 直接图片URL + 影片/年份已在 manifest.json 中记录
  • 裁剪/合成的字幕已明确标注
  • 宽度 >= 1000 像素(或已说明偏差)
  • 已记录死主机和变通方案,而非静默重试
  • 未删除任何候选;中间文件已保留

8. 范围限制

本技能负责查找和准备图片。它不发布任何内容、不编辑用户稿件、不代用户决定最终封面(除非配置文件说明人类已选择),也不授予任何重新分发电影剧照的权利。参见 references/delivery.md 了解版权边界。

相关技能