agentsclimarketplace

Jellyfin renaming

Skill techstay/some-skills/skills/jellyfin-renaming

A collection of AI agent skills that extend LLM capabilities with Obsidian task management, multi-backend web search, and more.

Install
npx -y skills add techstay/some-skills --skill jellyfin-renaming

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Manually rename Jellyfin movie, TV show, anime, special episode, external subtitle, external audio, movie directory, and TV show directory names for reliable library matching. Use when the user wants to automatically rename real media files or folders on disk, clean messy release filenames, convert files to Jellyfin movie or SxxExx show naming, align subtitles with videos, preserve traceability, or verify Jellyfin-compatible media naming without using bulk renaming scripts or paid renaming tools.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

20.2 KB, as published. Nobody here has run it

Jellyfin Renaming

Manually decide and apply Jellyfin-compatible movie and TV show file and directory renames. Treat every rename as a reviewed mapping, not a blind bulk text transformation.

Core Rule

When the user gives real filesystem paths and asks to rename media, perform the rename on disk after building and checking a mapping. If the user gives only a list of names or explicitly asks for suggestions, return exactly one output filename for each input filename, in the same order.

If a movie, episode, special, subtitle, audio track, version label, or language suffix cannot be identified with confidence, keep the original name.

Absolute Prohibition: Never Delete Files

Never delete any file under any circumstance. Every operation that would remove a file must instead move that file to a Rubbish/ folder inside the affected movie or show folder. This rule has no exceptions — not for duplicates, not for noise files, not for files the user calls "junk". After all operations are complete, always remind the user:

⚠️ Please review the Rubbish/ folder and delete it manually when you are sure the files inside are no longer needed.

Manual Workflow

StepWhat to do
1. Identify contextUse the movie or series title, year, season, folder name, and surrounding files before deciding a final name.
2. Remove noiseDrop release group, source, codec, resolution, audio channel, CRC/hash, website, and bracketed download tags unless they are needed as movie version labels.
3. Preserve evidenceKeep extensions, subtitle language/flag suffixes, multi-episode ranges, split-part markers, edition/version labels, and meaningful special labels.
4. Match JellyfinPrefer official Jellyfin movie and show patterns, including movie folders, season folders, SxxExx markers, version labels, and external-track suffixes.
5. Refuse guessesIf the input does not contain enough information, output the original filename unchanged.
6. Check safetyBefore renaming, check for path collisions, invalid characters, case-only conflicts, and ambiguous matches.
7. Apply carefullyRename files before parent directories when needed; rename deeper paths before shallower paths.
8. Record traceabilityAfter completing all renames for a movie or show, create a rename log that records every original path and final path.

Automatic Rename Execution

Use this workflow when the user asks to rename actual directories or files.

StepRequirement
Plan firstBefore executing any filesystem operation, output a numbered step-by-step plan listing every rename, every move-to-Rubbish, and every new directory to be created. Wait for implicit or explicit user acknowledgement, then execute the steps one by one in the listed order.
InventoryList only the target movie/show folder and the files needed for the task. Do not modify unrelated media.
MappingBuild a reviewed old-path to new-path mapping for files and directories.
Conflict checkStop before renaming if two sources map to the same target, a target already exists, or a rename would move media outside the intended folder.
Directory orderRename files first, then season folders, then show/movie folders. For nested directory renames, process deepest paths first.
Case-only renamesOn case-insensitive filesystems, use a temporary intermediate name before applying a case-only rename.
Subtitle pairingRename subtitles and external audio after the corresponding video basename is finalized.
Unwanted filesNever delete files directly. Move any file that should be removed to Rubbish/ inside the affected movie or show folder. After all operations are complete, remind the user to review Rubbish/ and delete it manually.
LogCreate or append rename-log.md in the affected movie or show folder after the rename succeeds.

Do not use generic bulk renaming scripts or paid renaming tools. It is acceptable to use normal filesystem operations to apply the reviewed mapping.

TMDB Lookup Script

Use the local TMDB helper when a movie or series title, year, media type, or provider id needs confirmation before renaming.

Requirements:

ItemDetails
Environment variableTMDB_API_KEY must contain a TMDB API read access token.
Working directoryRun commands from skills/jellyfin-renaming/scripts/.
OutputThe script prints JSON records with id, title, original_title, overview, release_date, media_type, vote_average, and poster_path.

Commands:

uv run tmdb.py "Movie or Show Title"
uv run tmdb.py "Movie or Show Title" --lang en-US --limit 5 --pretty
uv run tmdb.py --help

Use TMDB results as supporting evidence, not as an automatic rename source. Pick the result that matches the surrounding files, release year, original title, and media type.

Jellyfin Movie Rules

Use these rules for Movies libraries.

ItemPreferred formatNotes
Movie folderMovie Name (year) [providerid-id]Each movie should have its own folder. year and provider id are optional, but improve matching. Examples: [tmdbid-12345], [imdbid-tt0000000].
Main movie fileMovie Name (year) [providerid-id].extThe video filename should match the folder name exactly, before the extension.
Movie with no yearMovie Name/Movie Name.extAcceptable, but less reliable for matching.
External subtitle or audioMovie Name (year).language-or-flags.extThe basename should match the movie video basename. Use dot-separated language, title, and flag suffixes.
Disc foldersVIDEO_TS or BDMV inside the movie folderSupported for movies and music videos, but not for multiple versions, multiple parts, or external subtitle/audio tracks.
Disc images.iso and similarMay work but are not supported. Prefer remuxing to mkv or extracting to VIDEO_TS or BDMV.

Movie Versions

Jellyfin supports multiple versions of the same movie in one movie folder only when every version filename begins with the parent folder name exactly.

Movie (2021) [imdbid-tt12801262]/
Movie (2021) [imdbid-tt12801262] - 2160p.mp4
Movie (2021) [imdbid-tt12801262] - 1080p.mp4
Movie (2021) [imdbid-tt12801262] - Directors Cut.mp4

Rules:

RequirementDetails
Exact prefixThe filename must start with the folder name character-for-character, including year and provider id.
Version separatorUse space, hyphen, space: -. The hyphen is required.
Version labelLabels are user-defined, such as 2160p, 1080p, Directors Cut, or [Extended Cut].
Avoid unsupported separatorsDo not use periods or commas as the version separator.
Missing labelWithout a version label, Jellyfin may treat files as separate movies.

3D Movies

Preserve 3D tags when present. The first 3D tag must be 3D, combined with one supported format tag.

3D formatFlag
half side by sidehsbs
full side by sidefsbs
half top and bottomhtab
full top and bottomftab
Multiview Video Codingmvc

Valid examples:

Awesome 3D Movie (2022).3D.FTAB.mp4
Awesome 3D Movie (2022)_3D_htab.mp4
Awesome 3D Movie (2022)-3d-hsbs.mp4
Awesome 3D Movie (2022) - 3D_FTAB.mp4

Multi-Part Movies

For one movie split across multiple files, preserve supported part markers.

Movie Name (2010)/
Movie Name-cd1.mkv
Movie Name-cd2.mkv
Movie Name-cd3.mkv

Supported part types: cd, dvd, part, pt, disc, disk.

Supported separators between part type and part number: space, ., -, _, or no separator. Part numbers can be numbers or letters a through d.

Do not combine multi-part naming with multiple-version naming.

Jellyfin TV Show Rules

Use these rules for Shows libraries.

ItemPreferred formatNotes
Series folderSeries Name (year) [providerid-id]year and provider id are optional, but improve matching.
Season folderSeason 01Officially Season *; do not abbreviate to S01 or SE01. Padding with zeroes is recommended.
Regular episodeSeries Name S01E01.extTitle may be appended if useful: Series Name S01E01 Episode Title.ext.
Multi-episode fileSeries Name S01E01-E02.extJellyfin displays it as one entry with metadata from multiple episodes. Prefer split files when possible.
Split same episodeSeries Name S02E03 Part 1.ext, Series Name S02E03 Part 2.extUse only when one episode is split across multiple files.
Specials with provider metadataSeason 00/Series Name S00E01.extSpecial numbering varies by metadata provider. Verify before assigning numbers.
Specials without provider metadataSeason 00/Descriptive Special Name.extPrefer a descriptive name over guessed S00E## to avoid wrong metadata.

Episode Renaming

When the user provides a series name and season, normalize regular episodes to:

Series Name S01E01.ext

Rules:

SituationOutput
Single regular episodeSeries Name S01E01.ext
Consecutive combined episodesSeries Name S01E07-E08.ext
Existing correct SxxExxKeep the episode marker; only remove obvious noise if the user asked for cleanup.
Absolute anime numbering onlyConvert only if the season/episode mapping is clear from context or metadata; otherwise keep original.
No reliable episode markerKeep original filename.

Do not invent episode titles. Include titles only when they are already clear and useful.

Anime Specials, OP, ED, OVA, OAD

Anime downloads often label extras as OP, NCOP, ED, NCED, SP, OVA, or OAD. Handle them carefully:

CaseJellyfin-safe choice
Metadata provider has a matching special numberPut under Season 00 and use Series Name S00E##.ext.
No known provider special numberUse a descriptive filename in Season 00, such as NCOP 01.ext or OVA 01.ext.
User specifically wants suffix-style extrasUse Jellyfin extra suffixes such as -extra, -clip, -featurette, or .trailer only when appropriate.

Keep the original special type label when it matters. Do not force every OP/ED/OVA into a guessed S00E##.

Subtitle and Audio Matching

External subtitles and audio tracks should share the exact video basename, then add dot-separated language, title, or flag parts before the final extension.

Film (1986).mkv
Film (1986).default.en.forced.ass
Series Name S01E01.mkv
Series Name S01E01.ja.ass
Series Name S01E01.commentary.ja.aac

Supported flags include default, forced, foreign, sdh, cc, and hi. Multiple suffix parts are dot-separated.

When matching subtitle files to renamed videos:

RuleBehavior
Subtitle clearly matches one videoRename subtitle basename to the video basename and keep language/flag suffixes.
Subtitle has .ass, .ssa, .srt, .vtt, or similar extensionPreserve the subtitle extension exactly.
Subtitle has language suffixes such as .sc, .tc, .chs, .cht, .ja, .en, or .en_usPreserve those suffixes unless the user asks to normalize language codes.
Multiple possible video matchesKeep the subtitle filename unchanged.
Subtitle list order mattersReturn subtitle outputs in the exact order provided by the user.

Extras Reference

Jellyfin recognizes movie, show, season, and music-video extras by folder, exact filename, or suffix.

MethodSupported values
Extra foldersbehind the scenes, deleted scenes, interviews, scenes, samples, shorts, featurettes, clips, other, extras, trailers, theme-music, backdrops
Exact filenamestrailer.ext, sample.ext
Extra suffixes-trailer, .trailer, _trailer, trailer, -sample, .sample, _sample, sample, -scene, -clip, -interview, -behindthescenes, -deleted, -deletedscene, -featurette, -short, -other, -extra

Use extras only when the file is truly supplemental. Do not turn normal show specials or OVAs into extras if they are listed as episodes by the metadata provider.

Movie Images

Jellyfin supports local artwork files placed directly inside the movie folder. Local files take priority over artwork fetched from online metadata providers.

Generic Image Filenames

Use these filenames inside the movie folder for Jellyfin to recognize them automatically:

Image typeAccepted filenamesNotes
Primary (poster)poster.jpg, folder.jpg, cover.jpgMain movie cover shown in library grids.
Backdrop (fanart)backdrop.jpg, backdrop.webpBackground shown on the movie detail page.
Logologo.png, logo.svgTransparent title logo overlaid on artwork.
Bannerbanner.jpgWide strip image used in banner view.
Thumbthumb.jpgLandscape thumbnail used in some views.
Art (clearart)art.pngCharacter art or promotional transparent PNG.
Discdisc.png, disc.jpgDisc cover used in some themes.

Multiple backdrops are supported by appending a number:

Movie Name (2020)/
  Movie Name (2020).mkv
  poster.jpg
  backdrop.jpg
  backdrop-1.jpg
  backdrop-2.jpg
  logo.png

Media-Prefixed Image Filenames

Alternatively, name the image with the same basename as the video file and append a hyphen-separated image type:

Image typeFilename patternExample
Primary (poster)<video-basename>-poster.extMovie Name (2020)-poster.jpg
Backdrop<video-basename>-backdrop.extMovie Name (2020)-backdrop.jpg
Logo<video-basename>-logo.extMovie Name (2020)-logo.png
Banner<video-basename>-banner.extMovie Name (2020)-banner.jpg
Thumb<video-basename>-thumb.extMovie Name (2020)-thumb.jpg

Using generic filenames (poster.jpg, backdrop.jpg) is preferred for simplicity. Use media-prefixed filenames when multiple image sets must coexist in the same folder.

Supported Image Formats

.jpg, .jpeg, .png, .webp, .gif, .bmp, .tbn

Prefer .jpg for photos and .png for transparent images such as logos and clearart.

Image Handling Rules

RuleBehavior
Local files presentJellyfin uses local files and skips fetching that image type from online providers.
Multiple backdropsbackdrop.jpg is the primary; backdrop-1.jpg, backdrop-2.jpg, … are additional.
No local imageJellyfin fetches and caches the image from the configured metadata provider.
Embedded imagesJellyfin can extract artwork embedded in video containers if the Embedded Image Extractor plugin is enabled in library settings.
Metadata refreshAfter adding image files to an existing folder, run a library scan or trigger Refresh Metadata to apply them.

Image Renaming Guidelines

When renaming a movie folder or its video files, rename or verify image files in the same pass:

  • Generic image filenames (poster.jpg, backdrop.jpg) do not need renaming when the movie folder is renamed; they stay in place.
  • Media-prefixed image filenames must be updated to match the new video basename.
  • Do not remove or discard existing local artwork files unless the user explicitly requests it.
  • Record image file renames in the rename log alongside video and subtitle renames.

Rename Log

After all files and directories for a movie or show have been renamed, create a log file in that movie or show folder so the original paths can be traced later.

Recommended log filename:

rename-log.md

Recommended content:

# Rename Log

- Media: Movie or Series Name (year)
- Date: YYYY-MM-DD
- Scope: movie, season, show, subtitles, or mixed

| Original filename | New filename | Notes |
| ----------------- | ------------ | ----- |
| Original.Name.1080p.x265.mkv | Movie Name (2020).mkv | Removed release noise. |

Rules:

RequirementDetails
Record every renameInclude renamed directories, video files, subtitle files, audio tracks, NFO files, and relevant extra files.
Use paths when executingWhen actual filesystem renames were performed, record relative paths from the affected movie or show folder, not just basenames.
Preserve unchanged files when usefulIf a file or directory was reviewed but left unchanged because it was uncertain or already correct, record that in Notes.
Keep the log localStore the log in the affected movie or series folder, not in a global location.
Do not overwrite historyAppend a new dated section if rename-log.md already exists.

Execution and Output Contract

When asked to rename real files or directories:

RequirementDetails
Apply renamesPerform the filesystem renames after the mapping and safety checks pass.
Stop on ambiguityIf any planned rename is ambiguous or unsafe, do not partially apply that group; report what needs clarification.
Report concise resultsSummarize what was renamed and where the log was written.
Preserve extensionsKeep .mkv, .mp4, .ass, .ssa, .srt, .vtt, .aac, etc.
Preserve uncertaintyKeep original filenames when unsure.
Avoid filesystem-invalid charactersDo not introduce <, >, :, ", /, \, `
Never delete directlyMove any file that would be deleted to a Rubbish/ folder inside the affected movie or show folder instead of removing it. After all operations complete, remind the user: "Please review Rubbish/ and delete it manually when you are sure the files are no longer needed."

When asked only to generate proposed filenames:

RequirementDetails
No explanationOutput filenames only unless the user asks for reasoning or a rename log.
One line per inputPreserve count and order exactly.
Preserve extensionsKeep .mkv, .mp4, .ass, .ssa, .srt, .vtt, .aac, etc.
Preserve uncertaintyKeep original filenames when unsure.
Avoid filesystem-invalid charactersDo not introduce <, >, :, ", /, \, `

Common Corrections

ProblemPrefer
Movie.Name.2020.1080p.x265.mkvMovie Name (2020).mkv
Movie Name (2020) 4K.mkvMovie Name (2020) - 4K.mkv when it is a version label.
Movie Name (2020).Directors.Cut.mkvMovie Name (2020) - Directors Cut.mkv
Movie version filename does not start with folder nameStart with the exact folder name, then add - Version Label.
Season S01/ or S01/Season 01/
Show S1E1.mkvShow S01E01.mkv
Show 01.mkv with known seasonShow S01E01.mkv
Show S01 E01.mkvShow S01E01.mkv
Show S01E01 [1080p][x265][AAC].mkvShow S01E01.mkv
subtitle.ass for a known videoShow S01E01.ass or Movie Name (2020).ass
Guessed special numberKeep descriptive name or original filename until verified.

Quality Checklist

  • Confirm output line count equals input line count.
  • Confirm every extension is preserved.
  • Confirm movie files match their movie folder basename unless they are versions, 3D variants, or multi-part files.
  • Confirm movie version files start with the exact folder name and use - before the label.
  • Confirm subtitle language, title, and flag suffixes are preserved.
  • Confirm multi-episode and multi-part ranges remain represented.
  • Confirm no guessed episode, special, movie year, or provider id was introduced.
  • Confirm season folders are Season *, preferably padded such as Season 01.
  • Confirm rename-log.md is created or appended after the full movie or show rename is complete.

Gives 0 of the 12 instructions most video audio skills give

Counted across 621 of the 795 authors here whose files we hold, read 2026-08-06

  • read individual rule files for detailed explanationsin 21 of 621, across 9 files
  • Use WAV PCM 16kHz mono audio formatin 13 of 621, across 4 files
  • render final videoin 13 of 621, across 6 files
  • use this skill when dealing with Remotion codein 11 of 621, across 4 files
  • save generated audio to a WAV filein 11 of 621, across 4 files
  • handle conversion errors gracefullyin 10 of 621, across 6 files
  • add captions to videos alwaysin 10 of 621, across 4 files
  • generate music from text descriptions using MusicGenin 9 of 621, across 2 files
  • do not skip pipeline layersin 9 of 621, across 3 files
  • do not make one tool do everythingin 9 of 621, across 3 files
  • never ask the user to paste their full API keyin 9 of 621, across 3 files
  • use azure document intelligence for complex pdfsin 9 of 621, across 4 files

Said here and by no other author read

  • Never delete files under any circumstance
  • Move unwanted files to a Rubbish folder
  • Keep original names if identification lacks confidence
  • Drop release group, codec, and resolution tags
  • Check for path collisions and ambiguous matches
  • Rename files before parent directories

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.