Supported Media Types and Formats¶
Seven media types are supported. Each type has a dedicated processor, a set of supported file extensions, and a configured set of providers. Ambiguous formats (MP3, MP4) are resolved via heuristics and AI classification.
Books (EPUB)¶
Processor: EpubProcessor — priority 100
Supported formats¶
| Extension | Format |
|---|---|
.epub |
Electronic Publication (EPUB 2 and EPUB 3) |
.pdf |
Portable Document Format |
Extracted metadata¶
| Field | Confidence | Notes |
|---|---|---|
title |
0.95 | From OPF <dc:title> |
author |
0.95 | From OPF <dc:creator> |
publisher |
0.95 | From OPF <dc:publisher> |
language |
0.95 | From OPF <dc:language> (BCP-47) |
description |
0.95 | From OPF <dc:description> |
date |
0.95 | From OPF <dc:date> |
isbn |
1.0 | From OPF <dc:identifier> where scheme = ISBN |
word_count |
1.0 | Computed from content documents |
cover_image |
— | Extracted from EPUB manifest cover item |
Providers¶
Waterfall order during Stage 1:
- Open Library — ISBN-first lookup, description and cover
- Google Books — ISBN-first, falls back to title+author search
- Apple API — title+author search, cover art and ratings
- Wikidata — Stage 2, QID resolution via ISBN bridge
Ambiguity resolution¶
EPUB and PDF are unambiguous. No classification required.
Organization template¶
Audiobooks (M4B, MP3)¶
Processor: AudioProcessor — priority 95
Supported formats¶
| Extension | Format | Ambiguity |
|---|---|---|
.m4b |
MPEG-4 Audio Book | Unambiguous — always audiobook |
.mp3 |
MPEG Audio Layer 3 | Ambiguous — may be music or audiobook |
Extracted metadata¶
| Field | Confidence | Notes |
|---|---|---|
title |
0.90 | From ID3 TIT2 or M4B ©nam tag |
author |
0.90 | From ID3 TPE1 or M4B ©ART tag |
narrator |
0.85 | From ID3 TPE3 or M4B ©wrt tag |
album |
0.90 | Series name often embedded here |
year |
0.90 | From ID3 TDRC |
genre |
0.80 | From ID3 TCON |
track_number |
0.95 | From ID3 TRCK — used for multi-part audiobooks |
duration_sec |
1.0 | Computed from audio stream |
container |
1.0 | m4b or mp3 |
audio_bitrate |
1.0 | From audio stream properties |
asin |
1.0 | From ID3 custom tag TXXX:ASIN — used as retail bridge ID |
cover_image |
— | From embedded ID3 APIC frame |
Ambiguity resolution for MP3¶
Classification order for MP3 files:
TXXX:ASINtag present → audiobook- Genre tag contains "Audiobook", "Spoken Word", or "Podcast" → classified accordingly
TPE3(narrator) tag present → audiobook- Duration > 20 minutes → audiobook candidate
- AI
MediaTypeAdvisor— final classification using all available signals
Providers¶
- Apple API — ASIN-first lookup for Audible content; cover art, narrator, series data
- Wikidata — Stage 2, QID resolution
Organization template¶
Movies¶
Processor: VideoProcessor — priority 90
Supported formats¶
| Extension | Format | Ambiguity |
|---|---|---|
.mkv |
Matroska Video | Ambiguous — may be movie or TV |
.mp4 |
MPEG-4 Video | Ambiguous — may be movie, TV, or other |
.m4v |
iTunes Video | Ambiguous |
.webm |
WebM Video | Ambiguous |
.avi |
Audio Video Interleave | Ambiguous |
Extracted metadata¶
| Field | Confidence | Notes |
|---|---|---|
title |
0.75 | From filename parsing (lower confidence — filenames vary widely) |
container |
1.0 | mkv, mp4, etc. |
video_width |
1.0 | From video stream |
video_height |
1.0 | From video stream |
duration_sec |
1.0 | From container |
video_codec |
1.0 | e.g., H.264, HEVC, AV1 |
frame_rate |
1.0 | From video stream |
Ambiguity resolution for video files¶
Classification order:
- Filename matches
SxxExxor1x01season/episode pattern → TV - Filename contains year in parentheses
(2024)and no episode markers → Movie candidate - AI
MediaTypeAdvisorwith filename and duration as inputs - Promotion held at
NeedsReviewif classification confidence < threshold
Providers¶
- TMDB — title+year search; cover art (poster), description, ratings, cast, TMDB ID bridge
- Wikidata — Stage 2, QID resolution via TMDB ID bridge
Organization template¶
TV Shows¶
Processor: VideoProcessor — priority 90
Supported formats¶
Same as Movies. Classified as TV via filename pattern matching.
Extracted metadata¶
| Field | Confidence | Notes |
|---|---|---|
series_title |
0.70 | Parsed from filename before season/episode marker |
season_number |
0.95 | Parsed from SxxExx, Season xx, or xx x xx patterns |
episode_number |
0.95 | Parsed from filename |
episode_title |
0.70 | Parsed from filename after episode marker (when present) |
container |
1.0 | |
video_width, video_height |
1.0 | |
duration_sec |
1.0 | |
video_codec |
1.0 | |
frame_rate |
1.0 |
Filesystem conventions¶
TV follows the Plex naming convention for maximum compatibility:
Example:
Providers¶
- TMDB — series and episode metadata; poster and backdrop images
- Wikidata — Stage 2, QID resolution
Music¶
Processor: AudioProcessor — priority 95
Supported formats¶
| Extension | Format | Ambiguity |
|---|---|---|
.flac |
Free Lossless Audio Codec | Unambiguous — always music |
.ogg |
Ogg Vorbis | Unambiguous — always music |
.wav |
Waveform Audio | Unambiguous — always music |
.mp3 |
MPEG Audio Layer 3 | Ambiguous — see audiobooks |
.m4a |
MPEG-4 Audio | Ambiguous — may be music or audiobook |
Extracted metadata¶
| Field | Confidence | Notes |
|---|---|---|
title |
0.95 | From ID3 TIT2 or equivalent |
artist |
0.95 | From ID3 TPE1 |
album_artist |
0.95 | From ID3 TPE2 |
album |
0.95 | From ID3 TALB |
year |
0.90 | From ID3 TDRC |
track_number |
0.95 | From ID3 TRCK |
disc_number |
0.95 | From ID3 TPOS |
genre |
0.85 | From ID3 TCON |
duration_sec |
1.0 | |
cover_image |
— | From embedded APIC frame |
musicbrainz_recording_id |
1.0 | From TXXX:MusicBrainz Track Id — used as bridge ID |
musicbrainz_album_id |
1.0 | From TXXX:MusicBrainz Album Id |
Ambiguity resolution for MP3/M4A¶
Classification order:
- MusicBrainz tags present → music
track_numberpresent and duration < 15 minutes → music candidate- Genre tag is not "Audiobook", "Spoken Word", or "Podcast" → music candidate
- AI
MediaTypeAdvisor— final arbiter
Providers¶
- MusicBrainz — recording and release lookup via MBID bridge; track, album, and artist metadata
- Wikidata — Stage 2, QID resolution
Organization template¶
Follows Plex Music naming convention:
Example:
Comics¶
Processor: ComicProcessor — priority 85
Supported formats¶
| Extension | Format |
|---|---|
.cbz |
Comic Book Archive (ZIP) |
.cbr |
Comic Book Archive (RAR) |
Extracted metadata¶
From archive structure:
| Field | Confidence | Notes |
|---|---|---|
page_count |
1.0 | Count of image files in archive |
From ComicInfo.xml (when present):
| Field | Confidence | Notes |
|---|---|---|
title |
0.95 | <Title> element |
series |
0.90 | <Series> element |
issue_number |
0.95 | <Number> element |
volume |
0.90 | <Volume> element |
summary |
0.90 | <Summary> element |
year |
0.90 | <Year> element |
publisher |
0.90 | <Publisher> element |
writer |
0.90 | <Writer> element |
penciller |
0.90 | <Penciller> element |
colorist |
0.90 | <Colorist> element |
genre |
0.85 | <Genre> element |
language_iso |
0.95 | <LanguageISO> element |
ComicInfo.xml is the de facto standard metadata format for CBZ/CBR archives. Not all archives include it; files without it fall back to filename parsing.
Providers¶
- Metron (Comic Vine) — issue search by series+number; publisher, creator, and story arc data
- Wikidata — Stage 2, QID resolution for notable series
Organization template¶
Podcasts¶
Processor: AudioProcessor — priority 95
Supported formats¶
| Extension | Format |
|---|---|
.mp3 |
MPEG Audio Layer 3 |
.m4a |
MPEG-4 Audio |
Extracted metadata¶
| Field | Confidence | Notes |
|---|---|---|
title |
0.90 | Episode title from ID3 TIT2 |
podcast_title |
0.90 | Show name from ID3 TALB |
episode_number |
0.85 | From ID3 TRCK |
description |
0.85 | From ID3 COMM |
year |
0.90 | From ID3 TDRC |
duration_sec |
1.0 | |
cover_image |
— | From embedded APIC frame |
Podcast classification relies on genre tag ("Podcast") or manual Library Folder configuration specifying "media_types": ["Podcasts"].
Providers¶
- Apple Podcasts — show and episode lookup; description, cover art, ratings
- Podcast Index — open podcast database; additional episode metadata
- Wikidata — Stage 2, QID resolution for notable shows
Organization template¶
Ambiguous Format Summary¶
| Extension | Default Classification | Resolution Method |
|---|---|---|
.mp3 |
Uncertain | Heuristics → AI MediaTypeAdvisor |
.mp4 |
Uncertain | Filename pattern → AI MediaTypeAdvisor |
.m4a |
Uncertain | Heuristics → AI MediaTypeAdvisor |
.m4v |
Movie | Filename pattern → AI confirmation |
.mkv |
Movie or TV | Filename pattern → AI confirmation |
.avi |
Movie or TV | Filename pattern → AI confirmation |
.webm |
Movie or TV | Filename pattern → AI confirmation |
All other extensions (.epub, .pdf, .m4b, .flac, .ogg, .wav, .cbz, .cbr) are unambiguous and require no AI classification.