anysearch
API key for higher rate limits. Anonymous access available with lower rate limits.
Use this skill when a user provides a torrent name or file name and wants to fix recognition issues, or asks to add/manage custom identifiers (自定义识别词). This skill generates identifier rules based on the WordsMatcher preprocessing logic, checks for duplicates against existing
$ npx -y skills add jxxghp/moviepilot --skill generate-identifiers --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/generate-identifiersContext preview
The summary Claude sees to decide when to auto-load this skill.
Use this skill when a user provides a torrent name or file name and wants to fix recognition issues, or asks to add/manage custom identifiers (自定义识别词). This skill generates identifier rules based on the WordsMatcher preprocessing logic, checks for duplicates against existing
name: generate-identifiers version: 4 description: >- Use this skill when a user provides a torrent name or file name and wants to fix recognition issues, or asks to add/manage custom identifiers (自定义识别词). This skill generates identifier rules based on the WordsMatcher preprocessing logic, checks for duplicates against existing rules, and saves them through the structured MoviePilot API gateway. Because custom identifiers are global, generated rules must default to conservative, sample-specific regex patterns instead of broad matches unless the user explicitly wants global cleanup. Applicable scenarios include: 1) A torrent or file name is incorrectly recognized (wrong title, season, episode, etc.); 2) The user wants to block unwanted keywords from torrent names; 3) The user needs episode offset rules for series with non-standard numbering; 4) The user wants to force recognition of a specific media by source-native ID; 5) The user wants TV recognition to use a specific TMDB episode group. allowed-tools: moviepilot_api allowed-api-operations: config.identifiers.get config.identifiers.update media.recognize
This skill helps generate custom identifier rules for MoviePilot's media recognition system. Custom identifiers preprocess torrent/file names before the recognition engine runs, correcting naming issues that cause misidentification.
Use these `moviepilot_api` operations:
There are **four formats**. Operators must have spaces on both sides.
Removes matched text from the title. Supports regex.
SomeUniqueAlias
Use a bare block word only when the token itself is specific enough globally, or when the user explicitly wants a global cleanup rule.
Regex substitution. The left side is a regex pattern, the right side is the replacement (supports backreferences).
被替换词 => 替换词
**Special replacement for direct ID specification:**
被替换词 => {[tmdbid=xxx;type=movie/tv;s=xxx;e=xxx]}
被替换词 => {[doubanid=xxx;type=movie/tv;s=xxx;e=xxx]}Use the source-specific field that matches the target metadata provider: `tmdbid`, `doubanid`, `bangumiid`, or `anilistid`. Where `s` (season) and `e` (episode) are optional. For TMDB TV recognition, add `g=xxx` to specify an episode group:
被替换词 => {[tmdbid=xxx;type=tv;g=xxx;s=xxx;e=xxx]}Shifts episode numbers found between the front and back delimiter words. `EP` is the placeholder for the original episode number.
前定位词 <> 后定位词 >> EP-12
First performs replacement; episode offset only runs if replacement succeeded.
被替换词 => 替换词 && 前定位词 <> 后定位词 >> EP-12
Lines starting with `#` are comments and will be skipped during processing.
1. **Regex support**: All patterns support regular expressions. Special characters (`. * + ? ^ $ { } [ ] ( ) | \`) must be escaped with `\` when matching literally. 2. **Spaces matter**: The operators ` => `, ` <> `, ` >> `, ` && ` must have spaces on both sides. 3. **One rule per string**: Each element in the identifiers list is one rule. 4. **EP placeholder**: In episode offset expressions, `EP` represents the original episode number. Common patterns:
5. **Chinese number support**: Episode offset handles Chinese numbers (一二三四五六七八九十). 6. **Empty replacement**: Using nothing after `=>` is equivalent to a block word.
Custom identifiers are **global**. A new rule affects all future torrent/file recognition, not just the sample provided by the user.
When generating a new rule, default to **the narrowest regex that still fixes the user's sample**:
Bad (too broad for a global rule):
REPACK
1080p
S01E01 => {[tmdbid=12345;type=tv;s=1;e=1]}Better (scoped to the user's sample pattern):
(\[SubGroup\].*?My\.Show.*?2024.*?)REPACK => \1
Some\.Weird\.Name(?:\.2024)?(?:\.S01E\d+)? => {[tmdbid=12345;type=tv;s=1]}
\[Baha\] <> \[1080P\] >> EP-12Before saving, mentally test the rule against:
Parse the torrent/file name provided by the user. Identify:
Repo: jxxghp/moviepilot
API key for higher rate limits. Anonymous access available with lower rate limits.
Use this skill when the user asks the agent to open, browse, inspect, extract content from, click through, fill forms on, screenshot, or verify a web page with…
Use this skill when the user sends a slash command or asks to run a MoviePilot system or plugin command in natural language. Discover the live command catalog,…
Use this skill when the user asks to create, modify, debug, validate, or scaffold a MoviePilot local plugin. Covers MoviePilot V2 plugin development,…
Use this skill when the user asks to create, scaffold, update, or review a MoviePilot agent skill. This includes adding a new built-in skill under the…
Use this skill when you need to inspect, query, maintain, or carefully modify the MoviePilot database. This skill uses the bundled scripts/mp-db.py helper,…