**Wibby Server** is a self-hosted personal video media server built for Apple Silicon Macs. It uses a Go backend, SQLite for persistence, and a React web app. The macOS version is currently stable. Planned platform support will follow in this order: 1. Docker 2. Windows 3. Ubuntu The broader **Wibby** ecosystem is also in progress, with apps planned for: - Android TV - iOS, including iPhone and iPad - Apple TV - Android Apple Vision Pro support may be explored in the future. # Accepted Media Naming Formats Wibby scans supported video files recursively inside each library root. Supported video extensions: ```text .mkv .mp4 .m4v .avi .mov .webm ``` Ignored examples: ```text .DS_Store Thumbs.db ._filename.mkv sample.mkv ``` ## Movies Movie libraries accept folder-based names, file-based names, and scene-style names. ### Recommended movie format ```text Movies/ Movie Name (Year)/ Movie Name (Year).mkv ``` Example: ```text Movies/ Batman Begins (2005)/ Batman Begins (2005).mp4 ``` Parsed as: ```text Title: Batman Begins Year: 2005 ``` ### Movie file directly in the library root ```text Movies/ Movie Name (Year).mkv ``` Example: ```text Movies/ Inception (2010).mkv ``` Parsed as: ```text Title: Inception Year: 2010 ``` ### Movie folder with provider ID ```text Movies/ Movie Name (Year) {tmdb-ID}/ Movie Name (Year) {tmdb-ID}.mkv ``` Example: ```text Movies/ Batman Begins (2005) {tmdb-272}/ Batman Begins (2005) {tmdb-272}.mp4 ``` Parsed as: ```text Title: Batman Begins Year: 2005 Provider: tmdb Provider ID: 272 ``` ### Scene-style movie filename ```text Movies/ Movie.Name.Year.Quality.Source.Codec.mkv ``` Example: ```text Movies/ Inception.2010.1080p.BrRip.x264.YIFY.mp4 ``` Parsed as: ```text Title: Inception Year: 2010 ``` ### Movie inside collection folders ```text Movies/ Collection Name/ Movie Name/ video-file.mkv ``` Example: ```text Movies/ Marvel/ Iron Man/ video-file.mkv ``` Parsed as: ```text Title: Iron Man ``` Better: ```text Movies/ Marvel/ Iron Man (2008)/ Iron Man (2008).mkv ``` Parsed as: ```text Title: Iron Man Year: 2008 ``` ### Loose movie filename fallback ```text Movies/ Movie Name.mkv ``` Example: ```text Movies/ Iron Man.mkv ``` Parsed as: ```text Title: Iron Man ``` No year is detected unless the folder or filename includes one. ### Generic movie folder names These folder names are treated as generic and are not used as movie titles: ```text Movies Movie Films Film ``` ## TV Series TV libraries are parsed as episodes. The scanner accepts this layout: ```text TV Shows/ Show Name/ Season XX/ episode-file.mkv ``` With the updated parser, it also accepts flat Plex-style show folders: ```text TV Shows/ Show Name/ episode-file.mkv ``` ## TV show folder names ### Show name only ```text TV Shows/ Show Name/ ``` Example: ```text TV Shows/ Doctor Who/ ``` Parsed as: ```text Show: Doctor Who ``` ### Show name with year ```text TV Shows/ Show Name (Year)/ ``` Example: ```text TV Shows/ Doctor Who (1963)/ ``` Parsed as: ```text Show: Doctor Who Year: 1963 ``` This is recommended when multiple shows share the same name. ### Show name with TMDb ID ```text TV Shows/ Show Name (Year) {tmdb-ID}/ ``` Example: ```text TV Shows/ The Office (UK) (2001) {tmdb-2996}/ ``` Parsed as: ```text Show: The Office (UK) Year: 2001 Provider: tmdb Provider ID: 2996 ``` ## Season folders Season folders can use these formats: ```text Season 01 Season.01 Season_01 Season-01 Season 1 ``` Examples: ```text TV Shows/ Doctor Who (1963)/ Season 25/ ``` ```text TV Shows/ The Office (UK) (2001) {tmdb-2996}/ Season 01/ ``` ## Standard TV episode format Recommended: ```text TV Shows/ Show Name (Year)/ Season XX/ Show Name - SXXEYY - Episode Title.mkv ``` Example: ```text TV Shows/ Doctor Who (1963)/ Season 25/ Doctor Who - S25E02 - The Happiness Patrol (1).mkv ``` Parsed as: ```text Show: Doctor Who Year: 1963 Season: 25 Episode: 2 Episode title: The Happiness Patrol (1) ``` ## TV episode with show year in filename ```text TV Shows/ Show Name (Year)/ Season XX/ Show Name (Year) - SXXEYY - Episode Title.mkv ``` Example: ```text TV Shows/ Doctor Who (1963)/ Season 01/ Doctor Who (1963) - S01E01 - An Unearthly Child (1).mp4 ``` Parsed as: ```text Show: Doctor Who Year: 1963 Season: 1 Episode: 1 Episode title: An Unearthly Child (1) ``` ## Flat Plex-style TV episode format Accepted with the updated parser: ```text TV Shows/ Show Name (Year)/ Show Name - SXXEYY - Episode Title.mkv ``` Example: ```text TV Shows/ Doctor Who (1963)/ Doctor Who - S25E02 (149) - The Happiness Patrol (1).mkv ``` Parsed as: ```text Show: Doctor Who Year: 1963 Season: 25 Episode: 2 Episode title: (149) - The Happiness Patrol (1) ``` Cleaner version: ```text TV Shows/ Doctor Who (1963)/ Doctor Who - S25E02 - The Happiness Patrol (1).mkv ``` Parsed as: ```text Show: Doctor Who Year: 1963 Season: 25 Episode: 2 Episode title: The Happiness Patrol (1) ``` ## Flat Plex-style TV episode with TMDb show folder Accepted with the updated parser: ```text TV Shows/ Show Name (Year) {tmdb-ID}/ Show Name - SXXEYY - Episode Title.mkv ``` Example: ```text TV Shows/ The Office (UK) (2001) {tmdb-2996}/ The Office (UK) - S01E01 - Downsize.mp4 ``` Parsed as: ```text Show: The Office (UK) Year: 2001 Provider: tmdb Provider ID: 2996 Season: 1 Episode: 1 Episode title: Downsize ``` ## Episode filename with only SXXEYY Accepted with the updated parser when the show folder provides the show name: ```text TV Shows/ Show Name (Year)/ SXXEYY - Episode Title.mkv ``` Example: ```text TV Shows/ Doctor Who (1963)/ S25E02 - The Happiness Patrol (1).mkv ``` Parsed as: ```text Show: Doctor Who Year: 1963 Season: 25 Episode: 2 Episode title: The Happiness Patrol (1) ``` Also accepted inside a season folder: ```text TV Shows/ Doctor Who (1963)/ Season 25/ S25E02 - The Happiness Patrol (1).mkv ``` ## Multi-episode TV filename Accepted: ```text TV Shows/ Show Name (Year)/ Season XX/ Show Name - SXXEYY-EZZ - Episode Title.mkv ``` Example: ```text TV Shows/ Grey's Anatomy (2005)/ Season 02/ Grey's Anatomy (2005) - S02E01-E03.avi ``` Parsed as: ```text Show: Grey's Anatomy Year: 2005 Season: 2 Episode: 1 ``` Only the first episode number is stored. ## Date-based TV episodes Accepted: ```text TV Shows/ Show Name (Year)/ Season XX/ Show Name (Year) - YYYY-MM-DD - Episode Title.mkv ``` Example: ```text TV Shows/ The Colbert Report (2005)/ Season 08/ The Colbert Report (2005) - 2011-11-15 - Elijah Wood.avi ``` Parsed as: ```text Show: The Colbert Report Year: 2005 Season: 8 Air date: 2011-11-15 Episode title: Elijah Wood ``` ## Loose TV fallback If a video file is inside a valid show folder and season folder but the filename does not contain an episode number, Wibby may still accept it as a season item. Example: ```text TV Shows/ Show Name (Year)/ Season 01/ random-video-file.mkv ``` Parsed as: ```text Show: Show Name Year: Year Season: 1 Episode: unknown ``` This is accepted, but not recommended. Better: ```text TV Shows/ Show Name (Year)/ Season 01/ Show Name - S01E01 - Episode Title.mkv ``` ## Generic TV folder names These folder names are treated as generic and are not used as show names: ```text TV TV Show TV Shows Shows Show Series Television Television Shows ``` ## Recommended library layout Movies: ```text Movies/ Batman Begins (2005)/ Batman Begins (2005).mp4 Inception (2010)/ Inception (2010).mkv ``` TV shows with season folders: ```text TV Shows/ Doctor Who (1963)/ Season 25/ Doctor Who - S25E01 - Remembrance of the Daleks (1).mkv Doctor Who - S25E02 - The Happiness Patrol (1).mkv ``` Flat Plex-style TV shows: ```text TV Shows/ Doctor Who (1963)/ Doctor Who - S25E01 - Remembrance of the Daleks (1).mkv Doctor Who - S25E02 - The Happiness Patrol (1).mkv ``` TV shows with TMDb hint: ```text TV Shows/ The Office (UK) (2001) {tmdb-2996}/ Season 01/ The Office (UK) - S01E01 - Downsize.mp4 ```