Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add jianshuo/claude-skills --skill wjs-fetching-moviegit clone --depth 1 https://github.com/jianshuo/claude-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jianshuo/claude-skills/wjs-fetching-movie)<a href="https://agentmods.dev/skills/jianshuo/claude-skills/wjs-fetching-movie"><img src="https://agentmods.dev/badge/skills/jianshuo/claude-skills/wjs-fetching-movie/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jianshuo/claude-skills/wjs-fetching-movie"><img src="https://agentmods.dev/badge/skills/jianshuo/claude-skills/wjs-fetching-movie.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00136 | $0.01439 |
| Opus 5.5 | $0.00054 | $0.00576 |
| Sonnet 5.5 | $0.00027 | $0.00288 |
| Haiku 4.5 | $0.00014 | $0.00144 |
Grade A, and why
wjs-fetching-movie scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
2. **找片源**(上面三步顺序)。Internet Archive 多个版本时挑:时长完整 → 分辨率 ≥720p → 体积适中(同片优先 h.264 mp4,1–4GB)。下载到 `$CLAUDE_JOB_DIR/tmp/<slug>/`(或 `~/Movies/Relisten/_incoming/`),用 `curl -L -C - -o` 断点续传。 How it starts
The opening of the file, as written. The whole thing — 53 lines — stays where its author put it; the contents beside it link to each section on GitHub.
wjs-fetching-movie
电影清单 → 每部一个 ~/Movies/Relisten/<Title> (<Year>)/<Title> (<Year>) [EN+ZH].mp4:小体积 HEVC、英文原声、内封英文(默认)+ 中文字幕轨,直接拖进 Relisten。
片源边界(硬规则)
只用合法片源,按顺序找:
- 本机已有:
mdfind/find ~/Movies ~/Downloads /Volumes找用户自己的文件(买的无 DRM 文件、自己光盘转的)。 - 公版 / 开放授权:Internet Archive(
scripts/ia_search.py)。只收licenseurl是 publicdomain / creativecommons,或明确属公版的老片(美国 1929 年前上映、或未续版权的经典,如 Charade 1963、His Girl Friday 1940、Night of the Living Dead 1968)。拿不准就在报告里写明依据。 - 官方免费放映:片方/发行方自己在 YouTube 等平台免费公开的完整版(看频道是否官方)——可以
yt-dlp拉。
不做:种子、磁力、网盘资源站、盗版站、破解 DRM(Apple TV / Netflix / Amazon 的购买或租赁)。版权片找不到合法可下载片源就如实报告,并给出正规获取路径(例如买蓝光自己转、或去 Apple TV 看),由用户自己决定;用户把文件放到本机后再跑一次即可。
流程
对清单里每部电影:
- 确认身份:片名 + 年份 + IMDb id(WebSearch 一下,避免同名片)。
- 找片源(上面三步顺序)。Internet Archive 多个版本时挑:时长完整 → 分辨率 ≥720p → 体积适中(同片优先 h.264 mp4,1–4GB)。下载到
$CLAUDE_JOB_DIR/tmp/<slug>/(或~/Movies/Relisten/_incoming/),用curl -L -C - -o断点续传。 - 字幕(英文必须有,中文尽量有):
- 片源自带的 .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 时间修正。
- 片源自带的 .srt(IA 常有)或视频内封字幕(
- 压制+封装:
scripts/pack.sh <video> <en.srt> <zh.srt|-> "<Title>" <year> [height] [q]- 默认 1080p 上限、
hevc_videotoolbox -q:v 55、hvc1tag(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。
- 默认 1080p 上限、
- 验收(每部都做):
ffprobe确认 1 视频 + 1 音频 + 字幕轨语言正确;时长和原片一致(差 <1s);抽 3 个时间点看字幕和语音对得上(ffmpeg -ss T -i out.mp4 -t 20 -map 0:s:0 -f srt -对照)。 - 下载的原始文件确认成品 OK 后删掉,只留成品。
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 53 lines · 136 tokens per session scan A 97d215ecaa75
wjs-fetching-movie is a skill published in the GitHub repository jianshuo/claude-skills (135 stars, last pushed 4d ago), licensed MIT. It adds 136 tokens to every session and 1,439 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-16.
Other skills, from other repositories
baoyu-translate
A translation workflow for converting articles and other text into another language. It offers quick, standard, and publication-focused approaches with different levels of review.
extract-source-sample
Given the path to a finished content-goose ad-run folder, extract everything that defines that ad — recipe shot list, VO script, characters, voices, world, atom-skills, master mp4 — and emit a source-sample.json in the exact shape the upload-ad-sample skill writes to the Goose Ads library. Also links every character…
i18n-parity
MANDATORY for every coding agent and contributor touching localized content — keep all five localization surfaces (dashboard UI keys, wiki page, full mirrored guides, locale-aware formatting, language switchers) in parity across every supported language. Use automatically (without being asked) whenever you add or…
internationalization
Plan and run a multi-language or multi-region site. Use this skill when adding new locales, choosing URL structure for languages (subfolders vs subdomains vs ccTLDs), implementing hreflang, planning translation workflow, handling currency and date formats, designing for RTL languages, or auditing a stalled…
hreflang-international
International / multilingual SEO audit focused on hreflang correctness: missing or broken return tags, wrong language/region codes, missing x-default, self-referencing errors, hreflang vs canonical conflicts, and inconsistent signals across HTML head, HTTP headers and XML sitemap. Also reviews URL structure (ccTLD vs…
i18n-helper
A helper for adding internationalization, which lets software show different languages and regional text. It finds user-visible text written directly in code and moves it into language files.