wjs-fetching-movie

wjs-fetching-movie is a skill for Claude Code, Codex from jianshuo/claude-skills. It costs 136 tokens per session (1,439 once invoked), scanned A, original, MIT.

A workflow for finding legal movie files, downloading them, and preparing them with English and, when available, Chinese subtitles for Relisten. It uses files you own, public-domain or openly licensed sources, and official free releases.

In plain words
What is it for?
It is for identifying films, locating lawful sources, downloading suitable video, extracting or finding subtitles, translating subtitles when needed, and producing compact files that Relisten can use.
Why use it?
Finding a usable movie file and matching subtitles can involve copyright checks, format conversion, and subtitle timing. This workflow avoids piracy and reports when a legal downloadable copy cannot be found.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: reads .claude/ paths.

Good fit It is for identifying films, locating lawful sources, downloading suitable video, extracting or finding subtitles, translating subtitles when needed, and producing compact files that Relisten can use.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/jianshuo/claude-skills/wjs-fetching-movie
Install

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.

Any agent
npx skills add jianshuo/claude-skills --skill wjs-fetching-movie
Clone the repo
git clone --depth 1 https://github.com/jianshuo/claude-skills

Made for: Claude Code, Codex.

Its marketplace also offers this one on its own, as the plugin wjs-fetching-movie — /plugin install wjs-fetching-movie after adding the marketplace above.

Wrote 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.

agentmods badge for wjs-fetching-movie

README.md
[![agentmods](https://agentmods.dev/badge/skills/jianshuo/claude-skills/wjs-fetching-movie/github.svg)](https://agentmods.dev/skills/jianshuo/claude-skills/wjs-fetching-movie)
Your own site
<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.

agentmods 80×15 button for wjs-fetching-movie

Your own site · 80×15
<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>
Per session 136 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,439 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 3d ago against content hash 97d215ecaa75, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

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.

The scan reads SKILL.md. This mod also ships 3 executable files (scripts/ia_search.py, scripts/opensubs.py, scripts/pack.sh), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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` 断点续传。
wjs-fetching-movie/SKILL.md · 53 lines

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。

片源边界(硬规则)

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

  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 后删掉,只留成品。

Read the full file on GitHub · 53 lines

Files

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.

Changes

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.

  1. 3d ago First seen · 53 lines · 136 tokens per session scan A 97d215ecaa75

Subscribe to this mod's changes

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.

Related

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.

JimLiu/baoyu-skills · 121 tokens

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…

gooseworks-ai/goose-skills · 160 tokens

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…

hoangsonww/Claude-Code-Agent-Monitor · 95 tokens

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…

rampstackco/claude-skills · 123 tokens

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…

nowork-studio/notfair-plugin · 213 tokens

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.

laolaoshiren/claude-code-skills-zh · 33 tokens