Open-source project
ZeroQI/Absolute-Series-Scanner avatar
ZeroQI/Absolute-Series-Scanner

Absolute-Series-Scanner teaches Plex about sagas, absolute numbering and anime specials

Seasons, absolute mode, Subfolders...

1,114 stars155 forksPythonLicense varies

At a glance

What is it?
Absolute-Series-Scanner is a Plex series scanner that reads folder structures a stock Plex scanner ignores, grouping episodes by saga or arc, handling absolute versus season numbering and passing a forced id through to a metadata agent. It is aimed at anime library owners whose files are organised in ways Plex does not expect.
Who is it for?
Absolute-Series-Scanner suits an anime library that is organised by saga, arc or absolute episode count, because it recognises folder shapes the stock Plex scanner ignores and hands a forced id to the metadata agent so the series can be pinned.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 21 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The scanner and the metadata agent are separate things, and the split decides who fixes your problem

The first thing the documentation does is draw a boundary, and it is the most useful section in the file. A Plex series scanner makes the video files show up in Plex and populates the series name, including a forced id passed to the agent search function, the series year as an optional field, the season number, the episode number, and the episode title. The episode title is not filled in by the default Plex series scanner, but the scanner itself fills it, and it is then overwritten by the metadata agent. A Plex metadata agent searches the metadata source using the series name the scanner gave it, assigns the series a guid, and updates all the metadata fields, from series title and summary through year, episode title, summary, posters, fanart and tags. The rule that follows is short: if a file is not showing in Plex, or shows at the wrong season or episode number, or is not passing through the forced id, it is a scanner issue, and anything else is metadata and agent specific. That sentence is a triage procedure.

Sagas and arcs become seasons, while the absolute numbering stays absolute

The feature list has a section headed with the scanner functions that differ from the Plex series scanner, and the entries that matter most for anime libraries are the folder-shape ones. Episodes can be grouped in transparent or Ark folders with names like [01] Saga xxx, [02] Story xxx and [03] Arc xxx, which is the common way long running series are organised on fansub sites. There is a seamless grouping folder pattern of the form Dragon Ball/[01] Dragon Ball/ep xxx.ext, where a nested folder repeats the series name. Season folder advance support covers names like Season xxx title_for season. And the saga grouping can be used as seasons while keeping the absolute numbering, with TVDB4 creating the seasons for you from a database when they are not specified. The result is a display of absolute series without renaming files, either with seasons under tvdb2, tvdb3 and tvdb4, or remapped chronologically under tvdb5, or grouped and displayed as a tvdb series under anidb2, which needs an accurate mapping in the ScudLee files to work.

Absolute and season numbering are both accepted, and the naming table spells out the templates

The scanner supports absolute and season numbering, and the file naming table gives a set of concrete templates to work from. The episode name pattern is Season %S/%SN s%0Se%0E, with Season 2/Show Name s02e03.ext as the example, and multi-episode files extend the same pattern into s02e03-05.ext. Multi-part episodes are recognised through a set of markers, cdX, discX, diskX, dvdX, partX and ptX, as in Show Name s02e03 - pt1.ext. Specials go in a folder named Specials or Season 0 and are picked up as s00e01, OP1, Ed3a, NCOP or S01 style files, and non-special extra material belongs in an Extras folder. Blu-ray rips are handled with the path form /path/to/series-library/Series Name Season 2, where the disc folder inside carries the name Series.Name.Disc1.S02.E01-E12 and the BDMV/STREAM directory holds the files. The table also lists splitting folders 0-9 and A to Z, with the instruction to add each as its own folder and not to use the parent folder.

AniDB numbering, special characters and dot-prefixed files all get special handling

Some of the most specific behaviour in the scanner exists because of how fansub rippers name files. AniDB numbering support is listed, covering patterns like (NC)OP, (NC)ED and SpXX, and the specials are grouped and displayed as a tvdb series under the anidb2 mode when the ScudLee mapping file is accurate. Japanese and special characters are handled, with CØDE: BREAKER given as the example, and files that start with a dot such as .Hack are treated as series content rather than as hidden files. The episode title is taken from the filename, which is useful when the series has not been matched yet even though the agent rewrites it later. Movies inside a series library are supported, either named the same as the folder or containing Complete Movie. There is also a support for Filebot xattr series ids, which uses the scanner files from the filebot plex-agents project, and a forced id in the series name or an id file for the agent gets passed through.

plexignore, zip contents and YouTube playlists are handled in ways Plex does not do

Three capabilities stand out because they go beyond what a normal scanner does. First, .plexignore is fully working including subfolders, so you can exclude parts of a library from being scanned at all. Second, video files inside a zip file are displayed, with the documentation noting they are not playable, which means the entry appears in the library and gets a metadata treatment even though you cannot stream it from there. Third, a YouTube playlist with its id in the series or season folder is added without numbering or renaming needed, and a channel id in a series folder works as well. The metadata source guidance follows the same pattern of being specific about which database suits which content: for anime, AniDB is the source, and the Hama agent uses an offline title database from it, preferring the main title or the romaji x-jat form, and it uses ScudLee's xml mapping files to cross reference the AniDB id to the tvdb series, with support for AniDB, TheTVDB and, when the mapping file has it, TheMovieDB, MyAnimeList and TelevisionTunes. For TV series, TheTVDB, TVrage or TheMovieDB are listed, and for movies the convention is Movie Title (Year).ext.

The scanner writes its own per-series logs, and needs libxslt to run

The only stated requirement is the libxslt library, an XML stylesheet transformation library, installed on the host. The repository layout is consistent with a Plex agent bundle rather than a standalone program. The top level holds a Scanners directory, a .github and .vscode directory, the README, and three XML data files: anime-list-corrections.xml, tvdb4.mapping.xml and tvdb4.posters.xml. Those names describe their role, since the mapping file is what carries the AniDB to tvdb cross reference the anidb2 mode depends on, and the corrections file holds anime list corrections. The scanner also writes per-series logs, named xxx.filelist.log and xxx.scanner.log, into the Logs folder under the Hama bundle's DataItems directory, which is where you look when a series scans wrongly. The project links to a wiki page listing the full set of Plex metadata fields available, and to the agent's own readme for anything that is an agent problem rather than a scanner problem.

The naming rules have traps, and the documentation is direct about them

Two rules in the documentation are the kind that quietly break a library, so they are worth repeating. Do not use a semicolon in file names. Plex gives only the title up to that character to media.title for a movie and to media.show for a TV series, and it truncates even the file path, so a semicolon in a name will cut the metadata short in a way that looks like a scanner bug. The second rule concerns the metadata source choice, and the reasoning is unusually blunt. The AniDB English titles have horrors like bombshells from the sky for the series Asobi ni Iku yo, which is why the main title or the romaji form is preferred. TheTVDB is described as having high resolution posters, background images, screenshots and episode summaries, all of which AniDB lacks, but it does not carry porn series, and the documentation notes that no database site will store DVD boxset specific files. The reference naming conventions for Plex and for XBMC are linked for anyone who wants the underlying rules rather than this scanner's extensions.

Editorial conclusion

Absolute-Series-Scanner suits an anime library that is organised by saga, arc or absolute episode count, because it recognises folder shapes the stock Plex scanner ignores and hands a forced id to the metadata agent so the series can be pinned. It is the wrong tool for a plain library of series with clean season folders, since the stock scanner already handles those, and it is the wrong tool if your metadata agent is not the Hama bundle, because the scanner only populates fields and the agent fills in titles and artwork. Before you install it, check the naming table against your own folders and read the responsibilities split, so you know which of your problems belong to the scanner and which to the agent. The repository does not state a licence, the only tagged release dates from 2015-10-10, and the last push was on 2026-10-02.

Frequently asked questions

What is the difference between the Plex series scanner and the metadata agent in this project?

The scanner makes files show up in Plex and populates series name, year, season, episode and episode title, and it passes a forced id through to the agent. The agent searches the metadata source, assigns the series a guid and updates titles, summaries, posters, fanart and tags. A wrong season or episode number is a scanner issue, while wrong artwork or missing summaries are agent issues.

Does Absolute-Series-Scanner support saga and arc folders?

Yes. Episode grouping in transparent or Ark folders with names like [01] Saga xxx, [02] Story xxx and [03] Arc xxx is supported, and sagas can be used as seasons while keeping the absolute numbering, with TVDB4 creating the seasons for you from a database when they are not specified.

What are the requirements for running the scanner?

The only stated requirement is the libxslt library, an XML stylesheet transformation library, installed on the host. The scanner also writes per-series logs named xxx.filelist.log and xxx.scanner.log into the Logs directory of the Hama bundle's DataItems folder.

Which naming conventions does the scanner accept?

The documented templates are Season %S/%SN s%0Se%0E for episode names, s02e03-05.ext for multi-episode files, cdX, discX, diskX, dvdX, partX and ptX markers for multi-part episodes, Specials or Season 0 for specials such as s00e01, OP1, Ed3a and NCOP, and an Extras folder for other material.

Can the scanner handle YouTube playlists and zipped video files?

A YouTube playlist with its id in the series or season folder is added without numbering or renaming needed, and a channel id in a series folder works too. Video files inside a zip file are displayed, although the documentation notes they are not playable.

Official sources

  1. Issues
  2. README
  3. Releases
  4. ZeroQI/Absolute-Series-Scanner on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/zeroqi-absolute-series-scanner.svg)](https://hysenlabs.com/projects/zeroqi-absolute-series-scanner)

Was this useful?