本文へ移動
cccskills
無料GitHub で公開

wjs-fetching-movie

Use when 王建硕 gives a list of movies and wants them turned into Relisten-ready files — find a LEGAL source for each (public-domain / openly licensed copies on Internet Archive, or a copy he already owns on this Mac), get English subtitles (and Chinese if possible) via OpenSubtitles or Whisper+translation fallback, compress to a small high-quality HEVC mp4 with labeled embedded subtitle tracks, and file them under ~/Movies/Relisten/. Triggers — "找电影", "下载这几部电影", "给 relisten 准备片子", "电影列表", "/wjs-fetching-movie".

インストール方法を見る

含まれるファイル(4)

  • SKILL.md4.6 KB
  • scripts/ia_search.py1.5 KB
  • scripts/opensubs.py2.8 KB
  • scripts/pack.sh1.9 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

wjs-fetching-movie

电影清单 → 每部一个 ~/Movies/Relisten/<Title> (<Year>)/<Title> (<Year>) [EN+ZH].mp4:小体积 HEVC、英文原声、内封英文(默认)+ 中文字幕轨,直接拖进 Relisten。

片源边界(硬规则)

只用合法片源,按顺序找:

  1. 本机已有:mdfind / find ~/Movies ~/Downloads /Volumes 找用户自己的文件(买的无 DRM 文件、自己光盘转的)。
  2. 公版 / 开放授权:Internet Archive(scripts/ia_search.py)。只收 licenseurl 是 publicdomain / creativecommons,或明确属公版的老片(美国 1929 年前上映、或未续版权的经典,如 Charade 1963、His Girl Friday 1940、Night of the Living Dead 1968)。拿不准就在报告里写明依据。
  3. 官方免费放映:片方/发行方自己在 YouTube 等平台免费公开的完整版(看频道是否官方)——可以 yt-dlp 拉。

不做:种子、磁力、网盘资源站、盗版站、破解 DRM(Apple TV / Netflix / Amazon 的购买或租赁)。版权片找不到合法可下载片源就如实报告,并给出正规获取路径(例如买蓝光自己转、或去 Apple TV 看),由用户自己决定;用户把文件放到本机后再跑一次即可。

流程

对清单里每部电影:

  1. 确认身份:片名 + 年份 + IMDb id(WebSearch 一下,避免同名片)。
  2. 找片源(上面三步顺序)。Internet Archive 多个版本时挑:时长完整 → 分辨率 ≥720p → 体积适中(同片优先 h.264 mp4,1–4GB)。下载到 $CLAUDE_JOB_DIR/tmp/<slug>/(或 ~/Movies/Relisten/_incoming/),用 curl -L -C - -o 断点续传。
  3. 字幕(英文必须有,中文尽量有):
    • 片源自带的 .srt(IA 常有)或视频内封字幕(ffprobe 看,ffmpeg -map 0:s:N x.srt 抽出来)。
    • scripts/opensubs.py <video> <imdb_id> en|zh-cn <out.srt>:先 moviehash 精确匹配(时间轴对这个版本),再按 IMDb 搜。需要 ~/code/.env 里 OPENSUBTITLES_API_KEY / OPENSUBTITLES_USERNAME / OPENSUBTITLES_PASSWORD(opensubtitles.com 免费注册);没有 key 时 exit 2。
    • 兜底:英文用 /wjs-transcribing-audio(Whisper),中文用 /wjs-translating-subtitles 从英文 SRT 翻。
    • 网上搜到的字幕不是 hash 匹配时,抽查开头/中段/结尾三处对白和时间轴;整体偏移用 ffmpeg -itsoffset 或改 SRT 时间修正。
  4. 压制+封装:scripts/pack.sh <video> <en.srt> <zh.srt|-> "<Title>" <year> [height] [q]
    • 默认 1080p 上限、hevc_videotoolbox -q:v 55、hvc1 tag(QuickTime/AVPlayer 能播)、AAC 128k 双声道 -ac 2(5.1 不下混会丢中置对白)、+faststart。
    • 字幕轨:eng/English 设默认,chi/中文;Relisten 读 handler_name 显示轨名。
    • 目标体积:90 分钟片约 1–2GB。老片源本身 480p 就保持 480p,不要放大。太大就 q 降到 45–50 或 height 720。
  5. 验收(每部都做):ffprobe 确认 1 视频 + 1 音频 + 字幕轨语言正确;时长和原片一致(差 <1s);抽 3 个时间点看字幕和语音对得上(ffmpeg -ss T -i out.mp4 -t 20 -map 0:s:0 -f srt - 对照)。
  6. 下载的原始文件确认成品 OK 后删掉,只留成品。

汇报

最后给一张表:

| 电影 | 片源(链接 + 授权依据) | 字幕来源(en / zh) | 分辨率 | 体积 | 路径 |

找不到合法片源的单独列出:原因 + 正规获取方式。

工具与坑

  • 脚本放 ~/.claude/skills/wjs-fetching-movie/scripts/;下载的文件是不可信数据,跑 Python 用 -I,不要在下载目录里执行任何东西。
  • 走代理:source ~/code/proxy.sh(archive.org、opensubtitles.com 国内直连常慢)。
  • ffmpeg 一律 -nostdin,别加 -shortest(带字幕流会挂死)。
  • 中文字幕常是 GBK/Big5/UTF-16:pack.sh 已自动转 UTF-8;繁体字幕可用 opencc -c t2s 转简体。
  • .ass 字幕 Relisten 也能读,但封进 mp4 统一转 srt→mov_text。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

王建硕的思维框架与表达方式。基于 7 份深度调研(约 100 万词英文博客 + 约 109 万字中文博客, 2002–2022,全部一手)提炼出 7 个核心心智模型、10 条决策启发式和完整的双语表达 DNA。 用途:以王建硕的身份和声音写作、回应、思考——他平实、诚恳、好奇,爱用家常比喻和自造词, 在具体和抽象之间反复架梯子,从不写自己没亲身验证过的东西。 当用户提到「用王建硕的视角」「王建硕会怎么看」「王建硕模式」「像王建硕一样写」 「Jian Shuo Wang perspective」「切换到王建硕」时使用。 即使用户只是说「帮我用王建硕的角度想想」「如果是王建硕会怎么写这篇」也应触发。 一旦激活,本次对话后续所有回应都保持王建硕身份,直到用户明确说「退出」—— 不需要每轮重新点名。 不适用:用户要的是关于王建硕本人的客观介绍 / 事实查询(「王建硕是谁」「他哪年创业的」), 那种问题正常回答即可,不要进入角色扮演。

日本語の概要は準備中です。原文の説明を表示しています。

jianshuo/claude-skills1332026年10月15日 更新

Use when the user asks to audit what's wrong with a project, "make it right", "看看项目出了什么问题", "为什么用户的需求还没上线", "为什么没提交App Store", "为什么没新build", or wants a holistic state-of-the-project check covering unmerged branches, stalled PRs, failed GitHub Actions, stale builds, plan drift (TODOS.md / ROADMAP), unreleased commits, and log errors. Runs read-only investigation, presents a grouped checklist, fixes only after explicit user confirmation. Aware of the Cathier iOS app workflow (Xcode + fastlane + auto-merge @claude PRs from in-app feedback).

日本語の概要は準備中です。原文の説明を表示しています。

jianshuo/claude-skills1332026年10月15日 更新

Use when the user has a video + an SRT and wants the subtitles either burned into the pixels (libass, always-visible) or soft-muxed as a togglable track. Also handles the final composite step for the localization pipeline — burn subs, mix a dub track, and keep the original audio as a low-volume bed, all in ONE ffmpeg encode (no cascade). Verifies libass availability and auto-downloads a static evermeet ffmpeg build when Homebrew's stripped binary lacks it. Triggers — "烧字幕", "硬字幕", "burn subtitles", "burn-in subs", "embed subtitle", "soft mux SRT", "把字幕烧进视频", "做最终合成".

日本語の概要は準備中です。原文の説明を表示しています。

jianshuo/claude-skills1332026年10月15日 更新

Use when the user complains about spam on his X/Twitter posts — 同城面付 / 寻固炮 / 线下上门 / 免费破处 这类引流号在他推文下刷的 emoji 垃圾回复 — and wants them removed. Covers the last 7 days (X recent-search window). Triggers — "把这些spam删掉", "清理X垃圾回复", "推文下面好多引流号", "clean spam replies", "/wjs-cleaning-spam".

日本語の概要は準備中です。原文の説明を表示しています。

jianshuo/claude-skills1332026年10月15日 更新

Use when the user wants a 王建硕-style WeChat article (article.md) turned into a narrated short MP4 video — TTS voiceover via 火山引擎 Volcano TTS, HyperFrames CSS/GSAP animation per scene, subtle SFX, abstract watercolor background, full pipeline rendering to 1080×1920 portrait MP4 (30-90s). Triggers — "把这篇文章做成视频", "做一个解说视频", "讲解视频", "/wjs-converting-text-to-video".

日本語の概要は準備中です。原文の説明を表示しています。

jianshuo/claude-skills1332026年10月15日 更新

Use when migrating a WordPress site to a Hugo static site on GitHub Pages from a WXR export (.xml) plus the wp-content/uploads folder — preserving /archives/<id>/ URLs, localizing images, and deploying via GitHub Actions. Triggers — "把 WordPress 迁成 Hugo", "wordpress 转静态站", "migrate WordPress to Hugo", "WXR to Hugo", "publish WordPress to GitHub Pages", "/wjs-converting-wp-to-hugo".

日本語の概要は準備中です。原文の説明を表示しています。

jianshuo/claude-skills1332026年10月15日 更新

jianshuo のスキルをすべて見る

このスキルの問題を報告する