Awesome
Plex scanner responsibilities
A Plex Series Scanner makes the video files showing in Plex and populate the following for the video files:
- Series name (including forced id passed to agent search() function)
- Series year (optional)
- Season number
- Episode number
- Episode title (not filled by plex default series scanner, but ASS fills it, but this will be overwritten by the metadata agent)
If a file is not showing in plex or showing at the wrong season and/or episode number, or is not passing through the forced id, then it is a scanner issue. Anything else is metadata related and agent specific.
If you post anything on the scanner github or thread for any issue like poster missing/wrong, episode thumbnail/screenshot/title/summary missing/wrong, then you clearly haven't read this and need to pay the RTFM tax by donating (or you just find this the best anime scanner and/or agent, much apreciated average is 5 euros). Also applies if you want assistance but didn't follow troubleshooting steps or include logs...
Plex Agent responsibilities
A Plex metadata agent will:
- Search the metadata source using the Series name given by the scanner and assign the series a guid, a unique identifier used to download the metadataa informations
- Update all the metadata information ((Series Title, summary year, episode title, summary, posters, fanart, tags, ...) for series and files showing in Plex thanks to the scanner.
- Full list of fields here: see https://github.com/ZeroQI/Hama.bundle/wiki/Plex-Metadata-Fields-Available for full list of fields) Any information missing or wrong inthere in Plex is an Agent issue, refer to the Agent readme here: https://github.com/ZeroQI/Hama.bundle/blob/master/README.md
Which Metadata/Title source to select?
- Anime: AniDB.net, Hama use an offline title database from them ("main title" is the best, or romaji "x-jat". "En" titles have horrors like "bombshells from the sky" for "Asobi ni Iku yo!" series). AniDB use small posters, no background. Hama use ScudLee's xml mapping files to crosss reference the anidb id to the tvdb series. Hama supports AniDB, TheTVDB, mainly, and if ScudLee mapping file has it, TheMoviedB, MyAnimeList, TelevisionTunes for full length theme songs, ...
- TV Series: TheTVDB.com or TVrage or TheMovieDB (support series now), no db site will store (DVD) boxset specific files (nor sport or porn for TheTVDB). TVDB has high resolution posters, background images, screenshots, and episodes summaries, all lacking from AniDB.net, but they do not carry porn series so no metadata for this type. TheTVDB uses seasons which can be practical for long anime. Episodes have titles and summary in many languages
- Movies: TheMovieDB.org, naming convention: "Movie Title (Year).ext"
- YouTube: Series/Movie library YouTube-Agent for Movies '{youtube-video_id}' and Series/seasons '{youtube-playlist_id}' (starts with PL then 16/32 chars)
Absolute series scanner functions that differes from Plex Series Scanner
- .plexignore' fully working including subfolders
- YouTube playlist with id in series or season folder get added without numbering/renaming needed, or channel id in Sereis folder
- Video files inside zip file gets displayed (not playable)
- Seamless 'Grouping folder': For example 'Dragon Ball/[01] Dragon Ball/ep xxx.ext'
- Season folder advance support: 'Season xxx title_for season'
- Episode grouping in transparent/Ark folders: '[01] Saga xxx', '[02] Story xxx', '[03] Arc xxx'
- Episode title is taken from the filename (to be re-written by the agent but usefull if series is not matched yet)
- Japanese and Specials chars handling ("CØDE:BREAKER") and files starting with dots (".Hack")
- AniDB numbering support ((NC)OP/(NC)ED/SpXX, etc...)
- Movies in series libraries support (names same as folder or contain " - Complete Movie")
- Forced id in series name or id file for the agent gets passed through
- Display absolute series without file renaming displayed with seasons (tvdb2/3/4) or remapped chronology wise (tvdb5) or anidb sereis grouped and displayed as tvdb series (anidb2, need mapping accurate in scudlee files to work)
- Use sagas as seasons keeping absolute numbering with TVDB4 and it create even the seasons for you from a database if not specified
- Versatile file format support. if a logical numbering format isn't supported let me know (no episode number in brackets or parenthesis though, that's moronic)
- put per-series logs ('xxx.filelist.log' and 'xxx.scanner.log' in /Plex Media Server/Plug-in Support/Data/com.plexapp.agents.hama/DataItems/Logs).
- Filebot Xattr series id support, uses the scanner files from https://github.com/filebot/plex-agents
Requirements
- Library libxslt (XML stylesheet transformation library) installed
File Naming Conventions / Numbering
This scanner supports absolute and season numbering, but here are two references for guidelines
- Naming convention for Plex: https://support.plex.tv/hc/en-us/sections/200059498-Naming-and-Organizing-TV-Shows
- Naming convention for XBMC: http://wiki.xbmc.org/index.php?title=Naming_video_files/TV_shows
- Specials chars handling ("CØDE:BREAKER") and files starting with dots (".Hack")
- Do not use semicolon: ';', replace with space as plex give only the title up to this character to media.title (if movie) / media.show (if TV Series) and truncate wven file path
Files
<TABLE> <THEAD> <TR> <TH> File naming convention </TH> <TH> Template / Folder </TH> <TH>Example </TH> </TR> </THEAD> <TBODY> <TR> <TD> Splitting folders: </TD> <TD> 0-9 </TD> <TD> 0-9, A,...,Z folder. Add EACH as folder. Do not use the parent folder </TD> </TR> <TR> <TD> Episode Name Pattern: </TD> <TD> Season %S/%SN s%0Se%0E </TD> <TD> Season 2/Show Name s02e03.ext </TD> </TR> <TR> <TD> Multi-Episode style: </TD> <TD> Extend </TD> <TD> Season 2/Show Name s02e03-05.ext </TD> </TR> <TR> <TD> Multi-part episodes: </TD> <TD> cdX, discX, diskX, dvdX, partX, ptX </TD> <TD> Season 2/Show Name s02e03 - pt1.ext </TD> </TR> <TR> <TD> Multi-Media Version: </TD> <TD> Movie Name (year) - 1080p.ext </TD> <TD> Movie Name (year) - 1080p.ext </TD> </TR> <TR> <TD> Specials scrapped: </TD> <TD> Specials, Season 0 </TD> <TD> s00e01/OP1/Ed3a/NCOP/S01/S1.ext </TD> </TR> <TR> <TD> Other non scrapped: </TD> <TD> Extras </TD> <TD> Extras/Show Name xxxx.ext </TD> </TR> <TR> <TD> BD rips </TD> <TD> /path/to/series-library/Series Name Season 2 </TD> <TD>Series.Name.Disc1.S02.E01-E12/BDMV/STREAM </TD> </TR> </TBODY> </TABLE>Specials
Hama is a anidb (single season) & tvdb (multiple seasons) agent so either naming convention is fine. It will detect either successfully but you can convert one convention to the other whicle displaying by forcing ids (further down)
Let's use One piece special "Heart of Gold":
TVDB seasons
- http://thetvdb.com/?tab=episode&seriesid=81797&seasonid=31892&id=5687281&lid=7
- "One piece/One Piece s00e35 Heart of Gold [sub fr].ext"
Anidb (single) season
- http://anidb.net/perl-bin/animedb.pl?show=anime&aid=69
- "One piece/One Piece s00e23 Heart of Gold [sub fr].ext"
- "One piece/One Piece S23 Heart of Gold [sub fr].ext"
####### Anidb type special numbering is detailed below:
<TABLE> <THEAD> <TR> <TH> Type </TH> <TH> Internal letter </TH> <TH> Episode number </TH> </TR> </THEAD> <TBODY> <TR> <TD> Specials </TD> <TD> S </TD> <TD> Episodes 001-100 </TD> </TR> <TR> <TD> OPs </TD> <TD> C </TD> <TD> Episodes 101-150 </TD> </TR> <TR> <TD> EDs </TD> <TD> C </TD> <TD> Episodes 151-200 </TD> </TR> <TR> <TD> Trailers </TD> <TD> T </TD> <TD> Episodes 201-300 </TD> </TR> <TR> <TD> OPs/EDs </TD> <TD> P </TD> <TD> Episodes 301-400 </TD> </TR> <TR> <TD> Others </TD> <TD> O </TD> <TD> Episodes 401-500 </TD> </TR> <TR> <TD> unmapped </TD> <TD> </TD> <TD> Episodes 501-600 </TD> </TR> </TBODY> </TABLE>One libray for both movies and TV series
Movie files in Series libraries (since this is a Series Scanner) are supported if:
- Files are in a folder with the same name or with a single file inside it
- Filename contain " - Complete Movie"
- Files are numbered (01|ep 01|s01e01)
Season folders
- Seasons folders can have series name afterwards ("Zero no Tsukaima / Season 1 Zero no Tsukaima"
- Files in "Extras" folders will be ignored.
- Allow grouping in Ark xxxxx folders transparently with seasons folders inside, or within a season folder
- Specials go in "Specials" or "Season 0" folders.
- Single seasons series will follow anidb specials numbering (unless specific tvdb guid forced).
- Multiple seasons series will follow tvdb specials numbering
- You can use Anidb numbering for specials (OP1a, NCOP, etc...) or explicitely label them as follow (s00e101, etc...).
- Include all files not recognised as Season 0 episode 501+
Local media assets
It is supported but through "local media assets" agent, add it and and put it before HAMA in the priority order.<BR /> https://support.plex.tv/hc/en-us/articles/200220717-Local-Media-Assets-TV-Shows
<TABLE> <THEAD> <TR> <TH> Data type </TH> <TH> Source </TH> <TH> Comment </TH> </TR> </THEAD> <TBODY> <TR> <TD> fanart </TD> <TD> art/backdrop/background/fanart-1.ext</TD> <TD> -1 can be ommited (same level as Video TS) </TD> </TR> <TR> <TD> Series poster </TD> <TD> Series folder: Show name-1/folder/poster/show.ext</TD> <TD> (jpg, jpeg, png, tbn) </TD> <TR> <TR> <TD> Season poster</TD> <TD> Season folder: Season01a.ext </TD> <TD> (jpg, jpeg, png, tbn) </TD> <TR> <TR> <TD> Banner </TD> <TD> banner/banner-1.jpg </TD> <TD> </TD> </TR> <TR> <TD> Theme song</TD> <TD> theme.mp3 </TD> <TD> </TD> <TR> <TR> <TD> Subtitles </TD> <TD> file name.ext (srt, smi, ssa, ass) </TD> <TD> </TD><TR> <TR> <TD> Plexignore files </TD> <TD> .plexignore </TD> <TD> </TD> <TR> </TBODY> </TABLE>Movie libraries can have "Extra" in a specifically named folders or with the following at the end of the filename (hyphen important, no space afterwards):
<ul><li>"Behind The Scenes" folder or "-behindthescenes" at the end of the filename <li>"Deleted Scenes" folder or "-deleted" at the end of the filename <li>"Featurettes" folder or "-featurette" at the end of the filename <li>"Interviews" folder or "-interview" at the end of the filename <li>"Scenes" folder or "-scene" at the end of the filename <li>"Shorts" folder or "-short" at the end of the filename <li>"Trailers" folder or "-trailer" at the end of the filename </ul> Note: "Extras" folder is skipped by the absolute series scanner, put unsorted files in there, it won't show up in PlexGrouping folder
- If you use "Grouping folder / Show Name / Season 1 / Show Name e01.ext" convention from the root, it will work but be scanned every time you scan.
- For YouTube, it it create too many API requests, unless you create 'Playlist.info.json' in library folder with YouTube-dl -J --dump-single-json <playlist-url> > Playlist.info.json
Forcing the movie/series ID
Hama supports the following guid_type:
- anidb for AniDB.net (and and the behaviour changing mode anidb2)
- tvdb for TheTVDB.com (and the behaviour changing modes: tvdb2, tvdb3, tvdb4)
- tmdb For TheMovieDB.net (and the series part of TheMovieDB: tsdb)
- imdb For the International Movie DataBase (ids starts with "tt...")
- youtube for youtube channel and playlist id (and video id on filenames)
You can specify the guid to use the following way:
- In Series folder name by adding " {guid_type-id_number}" at the end (like "Oruchuban Ebichu {anidb-150}")
- In "series_folder/guid_type.id" file with the id in it (ex: "Oruchuban Ebichu/anidb.id" file with "150" inside without double quotes)
- In custom search series name by adding " {guid_type-id_number}" at the end (ex " {anidb-150}") for modes which do not change the season or episode numbers at scanner level (so anidb, tvdb and not numbered guid_types unless tvdb4 and you already put the eps in their respective seasons folders)
Note: You may use either the old-style Absolute-Series-Scanner format with square brackets ([anidb-###]
) or the new style Plex-Folder-Id format with curly braces. ({anidb-###}
) They are both interchangable to help people with converting to the new format.
You can force the tvdb4 mapping with a "tvdb4.mapping" file in the series folder containing the mapping format. Because it doesn't have an XML extension, it won't accept XML tags inside. Format exemple is fom anime tvdbid="331753" name="Black Clover":
<PRE><CODE> 01|001|013|Introduction Arc 02|014|019|Dungeon Exploration Arc 03|020|027|Royal Capital Arc 04|028|039|Eye of the Midnight Sun Arc 05|040|050|Seabed Temple Arc 06|051|065|Witches' Forest Arc 07|066|072|Hot Springs Training Camp Arc 08|073|084|Royal Knights Arc 09|085|120|Reincarnation Arc 10|121|121|Arc 10 (unknown length) </CODE></PRE>Filebot Xattr series id support
Filebot support metadata in file system extended attributes, and has released a movies, series scanner and secondary agent here: https://github.com/filebot/plex-agents/blob/master/Scanners/Series/FileBot%20Xattr%20Series%20Scanner.py
One can instruct to save metadata in the OS file system metadata (examples attached)
- "database":"TheTVDB", "type":"TV Series","id":253463 => translate into {tvdb-id}
- "database":"AniDB", "type":"Anime", "id":578 => translate into {anidb-id}
- "database":"TheMovieDB::TV", "type":"TV Series","id":42009 => translate into {tsdb-id}
- "database":"TheMovieDB::??????","type":"Movies", "id":????? => translate into {tmdb-id} {"@type":"Movie","year":2016,"imdbId":2513074,"tmdbId":293767,"language":"en","id":293767,"name":"Billy Lynn's Long Halftime Walk","aliasNames":[]}
Advanced modes
If the season and/or episode numbers of your files don't match up with the AniDB or TVDB episodes, you can manually specify the season and the episode offset in the parent folder name.
The following suffixes are supported:
-
-sY}
All episodes in the folder are assigned to season Y, but the episode number stays the same. -
-eZ}
Episode numbers found in the files are adjusted.- For positive offsets, the episode number becomes epNum+Z-1. (Episode 1 will show up as episode Z)
- For negative offsets, the episode number becomes epNum+Z. (For Z=-13, episode 14 will show up as episode 1)
-
-sYeZ}
The effects of the options above are combined. -
!!IMPORTANT NOTES!!
- When defining your modes on your folders:
- If you don't use the same mode or compatible modes for all separate folders for a series, you will run into issues.
- "anidb2", "anidb3", "tvdb" & "tvdb2" will work together
- You might have to manually merge Plex series together if "anidb2"/"tvdb2" or "tvdb"/"tvdb2" are both used.
- "anidb2"/"anidb3"/"tvdb" should automatically merge (but Plex is not perfect so you still might have to manually merge)
- "anidb4" will not work correctly with any other modes so all folders of a series will have to have this mode
- "tvdb3" will not work correctly with any other modes so all folders of a series will have to have this mode
- "tvdb4" will not work correctly with any other modes so all folders of a series will have to have this mode
- If you don't use the same mode or compatible modes for all separate folders for a series, you will run into issues.
- When defining your modes on your folders:
Examples:
<PRE><CODE>== Example 1 == - "Bakuman {anidb2-7251}" = "Bakuman {tvdb-193811-s1}" = "Bakuman {tvdb-193811}" - "Bakuman 2011 {anidb2-8150}" = "Bakuman 2011 {tvdb-193811-s2}" - "Bakuman 2012 {anidb2-8836}" = "Bakuman 2012 {tvdb-193811-s3}" == Example 2 == - "Sailor Moon Crystal {tvdb2-275039}" - "Sailor Moon Crystal Season 3 {anidb2-11665}" = "{tvdb-275039-s3}" | "{tvdb2-275039-s3}" (depending if you keep absolute numbered eps in seasons) == Example 3 == - "Bleach {tvdb3-74796}" - "Bleach movie 1 Memories in the Rain {tvdb3-74796-s0}" - "Bleach movie 2 The Diamond Dust Rebellion {tvdb3-74796-s0e4}" == Example 4 == tvdb4 Custom selected Arcs as seasons (as tvdb use them as half seasons for black lagoon for example) The arc definition to split into seasons the absolute numbering is done using the following order: - Seasons folders manually created by the user with absolute numbered episodes inside (seasons already mapped manually) - in a local "tvdb4.mapping" file inside series folder with the following format lines, one per arc/season: <CODE>\<season_num\>|\<starting_ep_num\>|\<ending_ep_num\>|\<freeform_text_naming_the_season\>(optional)</CODE> - without doing anything using the online arc database [github tvdb4.mapping.xml](https://github.com/ZeroQI/Absolute-Series-Scanner/blob/master/tvdb4.mapping.xml) <anime tvdbid="79604" name="Black Lagoon"> 01|001|012|The First Barrage 02|013|024|The Second Barrage 03|025|029|Roberta's Blood Trail </anime> <anime tvdbid="289906" name="Seraph of the End"> 01|001|012|Vampire Reign 02|013|024|Battle in Nagoya </anime> "Black Lagoon {tvdb4-79604}" "Black Lagoon - The Second Barrage {tvdb4-79604-s2}" "Black Lagoon - Roberta`s Blood Trail {tvdb4-79604-s3}" "Seraph of the End - Vampire Reign {tvdb4-79604}" "Seraph of the End - Battle in Nagoya {tvdb4-79604-s2}" == Example 5 == "Hand_Tool_Rescue {youtube2-UCasG9kJWi1eVxM0QkyqKVJQ}" </CODE></PRE>.plexignore files
https://support.plex.tv/articles/201381883-special-keyword-file-folder-exclusion/
- Warning: This is an advanced feature and is not intended for general users.
- Blank lines and lines starting with # are ignored.
- The * character is a wildcard.
- Patterns without the forward-slash (/) character (e.g. *.mkv) match filenames in the same directory as the .plexignore file, or its subfolders
- Patterns with the forward-slash (/) character (e.g. somedir/*) match directory and file patterns relative to the directory containing the .plexignore file only, not is subfolders
Plex system folder location
Source: https://support.plex.tv/articles/202915258-where-is-the-plex-media-server-data-directory-located/ Location:
- Windows: %LOCALAPPDATA%\Plex Media Server
- OSX: ~/Library/Application Support/Plex Media Server/
- Linux and NAS Devices: $PLEX_HOME/Library/Application Support/Plex Media Server/
- Debian, Fedora, CentOS, Ubuntu: /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/
- FreeBSD: /usr/local/plexdata/Plex Media Server/
- FreeNAS: ${JAIL_ROOT}/var/db/plexdata/Plex Media Server/
- ReadyNAS: /apps/plexmediaserver/MediaLibrary/Plex Media Server/ /data/plex_conf/Library/Application Support/Plex Media Server
- Synology, Asustor: /Volume1/Plex/Library/Application Support/Plex Media Server/
- TerraMaster: /home/plex/Library/Application Support/Plex Media Server
- Thecus: /raid/data/module/Plex/sys/Plex Media Server/
- Western Digital /mnt/HD/HD_a2/plex_conf/Plex Media Server/
- Western Digital My Passport Wireless Pro: /shares/Storage/.wdcache/.plexmediaserver/Application Support/Plex Media Server/ Variable path:
- QNAP: getcfg -f /etc/config/qpkg.conf PlexMediaServer Install_path then add '/Library/Plex Media Server'
- Seagate: sudo rainbow —enter com.plex.plexmediaserver. Once in, you can go to the data directory:
You can actually move the plex system folder/storage/database here: (i give no warranty it works, you lunatic!)
- PMS: PMS settings > Server > General > 'The path where local application data is stored'
- registry: HKEY_CURRENT_USER\Software\Plex, Inc.\Plex Media Server key\LocalAppDataPath [type REG_SZ] the full path to the directory
- Windows simlink: stop PMS, mklink /D "C:\Users<yourusername>\Appdata\Local\Plex Media Server" "G:\Plex Media Server" then start PMS
Install / Update
- Download https://raw.githubusercontent.com/ZeroQI/Absolute-Series-Scanner/master/Scanners/Series/Absolute%20Series%20Scanner.py
- Save into [...]/Plex Media Server/Scanners/Series/Absolute Series Scanner.py
Note:
- "Scanners" and "Series" folder are not created by default and will need to be created.
- "Scanners" folder will be at the same level as "Plug-in Support" folder (in other words the same parent directory)
- "Absolute Series Scanner.py" resides in Series folder, do not create an additional folder not listed like "absolute-series-scanner-master" and add the correct permissions on the init.py file. This should be done with chmod +x under linux
- Once the scanner is installed correctly, when creating a library you can select the custom scanner, otherwise the drop-down selection list is not shown when creating a TV Series library on the advanced tab.
Linux install script example
<PRE><CODE> mkdir -p '/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Scanners/Series' wget -O '/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Scanners/Series/Absolute Series Scanner.py' https://raw.githubusercontent.com/ZeroQI/Absolute-Series-Scanner/master/Scanners/Series/Absolute%20Series%20Scanner.py chown -R plex:plex '/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Scanners' chmod -R 775 '/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Scanners' </CODE></PRE>Troubleshooting:
- Update the scanner to the latest (on windows, powershell script in same folder as the scanner can be used to update)
- If the scanner not listed in scanner list
- Make sure you did create a "Series" library, as a "Movie" library will not show a "Series" scanner like ASS
- Make sure it is saved in [...]/Plex/Library/Application Support/Plex Media Server/Scanners/Series/Absolute Series Scanner.py
- Check scanner file size and open the scanner file to check if it does have html/xml tags (if html or xml tags are present, you downloaded the wrong file).
- [Optional] Recreate a Series library to the same folder, using Hama agent, this way all logs will start afresh
- if no files are showing, the scanner is crashing, probably a code error, check Plex Media Scanner.log for crash errors
- If Episodes are missing, wrong seasons or episode numbers, or series missing, check all "(custom ASS)" logs
- If library doesn't add new content then most likelly the scanner is crashing (after scanner update) and will revert any changes to the library so nothing changes...
- Please include impacted series scanner logs on EACH initial post when reporting "Issues", location below
Logs
Absolute series Scanner saves its custom logs in this relative path: Plex Media Server\Logs\ASS Scanner Logs...
If the scanner crash, you will get either no files (library creation) or no change (library already created) and will need to attach:
- [...]/Plex Media Server/Logs/Plex Media Scanner.log
To have logs saved per library and also a log is not created per series, you might need to create a Plex token id file (Never share your Plex token)
- Plex Media Server/X-Plex-Token.id containing the Plex token id by loggin on plex.tv/desktop, then https://plex.tv/devices.xml, it will be MediaContainer/Device ... token="xxxxxxxxxxxxxx"
For issues series specific (indicate if file not present, but create a token id file, see above):
- [...]/Plex Media Server/Plug-in Support/Data/com.plexapp.agents.hama/DataItems/Logs/root_folder_name.filelist.log
- [...]/Plex Media Server/Plug-in Support/Data/com.plexapp.agents.hama/DataItems/Logs/root_folder_name.scanner.log
- [...]/Plex Media Server/Plug-in Support/Data/com.plexapp.agents.hama/DataItems/Logs/Library_name/root_folder_name.filelist.log
- [...]/Plex Media Server/Plug-in Support/Data/com.plexapp.agents.hama/DataItems/Logs/Library_name/root_folder_name.scanner.log
You will find per-serie logs there with the following extensions as HAMA and ASS gather all logs in one place
- root/root folder name.filelist.log - Scanner filelist and 'plexignore logs
- root/root folder name.scanner.log - Scanner logs including: serie title season, episode number and preliminary title
- root/root folder name.agent-search.log - Agent search, show the assignment to the right serie
- root/root folder name.agent-update.log - Agent metadata update logs grom the guid assigned by the agent search function.
And post in either:
- Plex Support thread for Scanner (you are unsure if it is a bug)
- Github issue page (you have a bug)
- Creating a post or bug report without including relevant information like logs, serie impacted, or having not said the troubleshooting steps were followed will be recommended to pay the RTFM tax by donating. This part is called 'Exhibit A'.
Known issues:
<PRE><CODE> Nov 16, 2016 18:48:53.594 [0x7f48c2324800] DEBUG - Adding subdirectory for scanner: /home/plex/things/anime/Ah! My Goddess 2 Nov 16, 2016 18:48:53.597 [0x7f48c2324800] ERROR - No module in VideoFiles Nov 16, 2016 18:48:53.597 [0x7f48c2324800] ERROR - Error scanning directory . Nov 16, 2016 18:48:53.597 [0x7f48c2324800] ERROR - No module in Absolute Series Scanner Nov 16, 2016 18:48:53.598 [0x7f48c2324800] ERROR - We got an error scanning in /home/plex/things/anime </CODE></PRE>You bloody downloaded the web page and not the actual py file:
<PRE><CODE> Jul 23, 2016 12:55:54.558 [5288] ERROR - Error scanning directory . Jul 23, 2016 12:55:54.574 [5288] ERROR - No module in Absolute Series Scanner Jul 23, 2016 12:55:54.574 [5288] ERROR - Error in Python: Looking up module: Traceback (most recent call last): File "C:\Users\Administrator\AppData\Local\Plex Media Server\Scanners\Series\Absolute Series Scanner.py", line 8, in from lxml import etree # fromstring ImportError: DLL load failed: The specified module could not be found. </CODE></PRE>On windows install https://www.microsoft.com/en-us/download/details.aspx?id=48145 or other runtimes
<PRE><CODE> 2016-06-29 23:30:09,104 (30c) : CRITICAL (core:574) - Exception while loading code (most recent call last): File "C:\Program Files (x86)\Plex\Plex Media Server\Resources\Plug-ins-a17e99e\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\core.py", line 563, in load_code self.init_code = self.loader.load(self.init_path, elevated, use_xpython = Framework.constants.flags.use_xpython in self.sandbox.flags) File "C:\Program Files (x86)\Plex\Plex Media Server\Resources\Plug-ins-a17e99e\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\code\loader.py", line 47, in load code = self.compile(str(source), str(uni(filename)), elevated) File "C:\Program Files (x86)\Plex\Plex Media Server\Resources\Plug-ins-a17e99e\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\code\loader.py", line 52, in compile return RestrictedPython.compile_restricted(source, name, 'exec', elevated=elevated) File "C:\Program Files (x86)\Plex\Plex Media Server\Resources\Plug-ins-a17e99e\Framework.bundle\Contents\Resources\Platforms\Shared\Libraries\RestrictedPython\RCompile.py", line 115, in compile_restricted gen.compile() File "C:\Program Files (x86)\Plex\Plex Media Server\Resources\Plug-ins-a17e99e\Framework.bundle\Contents\Resources\Platforms\Shared\Libraries\RestrictedPython\RCompile.py", line 68, in compile tree = self._get_tree() File "C:\Program Files (x86)\Plex\Plex Media Server\Resources\Plug-ins-a17e99e\Framework.bundle\Contents\Resources\Platforms\Shared\Libraries\RestrictedPython\RCompile.py", line 59, in _get_tree tree = self.parse() File "C:\Program Files (x86)\Plex\Plex Media Server\Resources\Plug-ins-a17e99e\Framework.bundle\Contents\Resources\Platforms\Shared\Libraries\RestrictedPython\RCompile.py", line 56, in parse return niceParse(self.source, self.filename, self.mode) File "C:\Program Files (x86)\Plex\Plex Media Server\Resources\Plug-ins-a17e99e\Framework.bundle\Contents\Resources\Platforms\Shared\Libraries\RestrictedPython\RCompile.py", line 38, in niceParse compile(source, filename, mode) TypeError: compile() expected string without null bytes </CODE></PRE>Rights issues on Windows 2008 R2, solved by changing rights for:
- ...\Users\Administrator\AppData\Local\Plex Media Server\Plug-Ins
- ...\Users\Administrator\AppData\Local\Plex Media Server\Scanners
On linux (and Mac OS-X), permissions issues could prevent the scanner execution, but after creating folder and setting proper permissions, all was working. Exemples solved by creating folders and setting proper permissions:
- Mac OS-X" the logs don't go in default logs folder but a user folder: '/Users/renaldobryan/Library/Application Support/Plex Media Server/Logs/Plex Media Scanner (custom ASS).log'.
- "Feral Hosting Seedbox" error "IOError: (2, 'No such file or directory', '/media/sdt1/jusjtk91/Library/Application Support/Plex Media Server/Logs/Plex Media Scanner (custom ASS).log')".
Using the latest binhex plexpass docker returns: https://github.com/binhex/arch-plex
<PRE><CODE> Error in Python: Looking up module: Traceback (most recent call last): File "/config/Plex Media Server/Scanners/Series/Absolute Series Scanner.py", line 20, in from lxml import etree # fromstring ImportError: libexslt.so.0: cannot open shared object file: No such file or directory </CODE></PRE>Using the latest binhex plexstandard docker returns: https://github.com/binhex/arch-plex
<PRE><CODE> Error in Python: Looking up module: Traceback (most recent call last): File "/config/Plex Media Server/Scanners/Series/Absolute Series Scanner.py", line 20, in from lxml import etree # fromstring ImportError: libexslt.so.0: cannot open shared object file: No such file or directory </CODE></PRE>Solution: Opening the dockers terminal and running "pacman -S libxslt --noconfirm" then rebooting the docker fixes the issue.
Task list
- Support Media stubs .Disc files ? http://kodi.wiki/view/Media_stubs
- Shall i write a Movie scanner using the same code? The Plex default movie scanner does an good job i believe ?
Reference for editing Read-Me: Link to Markdown or https://help.github.com/articles/basic-writing-and-formatting-syntax/