Releases: FrostyAnime/Anime_SV
Release list
AnimeScape 0.10.5 for Windows
AnimeScape — Release Notes
Version 0.10.5 (current)
METADATA PIPELINE OVERHAUL
The "Update Metadata" button has been completely reworked. Instead of
blocking dialog boxes, it now shows a live console-style report in the
description pane with timing, status tags, and all synced IDs.
Metadata is now enriched from 6 providers in a fallback chain:
MAL Scrape → MALSync → arm-server → Kitsu → AniList → AniDB
Each step is reported as [OK], [FAIL], [WARN], [SKIP], or [...].
All cross-database IDs are stored per title:
MAL, AniList, AniDB, ANN, IMDB, TMDB, TVDB, Kitsu
IDs summary shown at the bottom of every update report:
IDs: MAL=5114 | AniList=5114 | AniDB=6107 | IMDB=tt1355642
The report header shows which API provider was used (Tenrai/Jikan/Kitsu).
PREQUEL/SEQUEL DESCRIPTION RESCUE
Sequel titles with stub descriptions like "Second season of" now
automatically get the original series description appended. The stub
text is preserved with an "Original Description:" header below it.
Resolution chain:
1. AniList relations (walks prequel graph by ID)
2. Kitsu relations (fallback when AniList is down)
3. MAL title search (strips season suffix, searches for original)
Incomplete stubs like "Second season of" (with no title) are
reconstructed: "Second season of Clevatess"
Roman numeral suffixes detected: "Clevatess II" → season 2
RELATED TITLES SUMMARY
A "Related:" summary is appended to the description showing all
related titles from AniList/Kitsu relations. Entries are filtered
by the base series name — titles sharing the brand go to "Related:",
others go to "Spinoffs:". Character and Summary relation types are
excluded. Highest season number is extracted and shown.
Example:
Related: Prequel: Attack on Titan, Sequel: Attack on Titan Season 3
Seasons known: up to Season 3
KITSU METADATA PROVIDER (NEW)
Kitsu (kitsu.io) added as a full metadata provider. No API key
required. Provides:
- Cross-database ID mappings (MAL, AniList, AniDB, TVDB)
- Media relationships (prequel, sequel, adaptation, etc.)
- Episode data (titles, synopses, air dates, thumbnails)
- Streaming links (Netflix, Hulu, Crunchyroll)
- Genres, artwork, ratings
Added to API provider selector: Hamburger → API Provider → Kitsu
Kitsu ID automatically stored for all titles during metadata update.
PER-HOST RATE LIMITING
Every API call now respects per-host rate limits:
AniDB: 1 req/2s
AniList: ~85 req/min
Jikan: ~55 req/min
Kitsu: ~60 req/min
MALSync: ~30 req/min
arm-server:~60 req/min
Applied automatically — no configuration needed.
RETRY WITH EXPONENTIAL BACKOFF
All HTTP calls retry on 429/5xx/network errors with exponential
backoff (0.5s → 1s → 2s → 4s → 8s cap) and 25% jitter.
Respects Retry-After header on 429 responses.
MATCH VALIDATION
Cross-provider title matches are now validated:
- Year must be within 2 years (tolerance for production vs airing)
- Type must be compatible (TV/ONA crossover allowed, TV vs Movie rejected)
Only applies to title-based matches. Direct ID lookups (MAL ID, MALSync)
are authoritative and skip validation.
PROVIDER DIAGNOSTICS (NEW)
Hamburger → Provider Diagnostics opens a test window for all 7
providers (MAL Scrape, AniList, AniDB, MALSync, arm-server, Kitsu,
Jikan). Each has a Test button with timing in ms and OK/FAIL indicator.
"Test All" runs everything. Console output shows detailed results.
REMOVED: HiAnime PROVIDER
HiAnime removed — the service is broken. Providers are now:
Nyaa, SubsPlease, SeaDex, nekoBT
Version 0.10.4
CONSOLE-STYLE METADATA REPORT
The "Update Metadata" button (renamed from "rescrape_current") now
shows a structured report in the description box for 20 seconds
instead of blocking dialog boxes. Shows each step with status tags,
elapsed time, and field change counts.
CROSS-DATABASE ID ENRICHMENT
MALSync API added for direct MAL→AniDB ID mapping.
arm-server added for AniList→all IDs enrichment.
All IDs stored in record and shown in update report.
KOREAN ORIGIN DETECTION
Korean anime now detected from Hangul characters in titles/synopsis
and known Korean producers. Origin sort: Chinese → Korean → Japanese.
AniList/AniDB METADATA FALLBACKS
AniList GraphQL and AniDB HTTP API added as fallback metadata
providers. Fill only missing fields — never overwrite good data.
Scrapling FIXES
Fixed two Scrapling API breaking changes that caused silent crashes:
- find_by_text(tag=...) → first_match=True
- page.html → str(page.body)
BODY TEXT SIZE CONTROL
New "Body Text Size" option in hamburger menu with platform-aware
defaults (Windows: 13px, Linux: 11px).
SELF-HEALING DISPLAY
Seasonal browser detects data/display mismatch after populate and
retries automatically. Filter preset synced on apply.
Version 0.10.3
RENAME TO AnimeScape
Build outputs renamed: AnimeScape.bin / AnimeScape.exe
Watch folder extension: .animeScape
nekoBT PROVIDER (NEW)
nekoBT added as a torrent provider via JSON API at nekobt.to.
Supports MAL ID and AniList ID search. No auth required.
AniList ID MAPPING IMPROVED
SeaDex AniList ID mapping replaced with direct AniList GraphQL +
AniMap API fallback. More reliable cross-database ID resolution.
SELF-HEALING + WINDOWS FIXES
Seasonal browser: event for initial load, self-healing display
retry, filter preset sync on apply. All Windows-specific timing and
rendering issues resolved.
AnimeScape 0.10.5 for Linux
AnimeScape — Release Notes
Version 0.10.5 (current)
METADATA PIPELINE OVERHAUL
The "Update Metadata" button has been completely reworked. Instead of
blocking dialog boxes, it now shows a live console-style report in the
description pane with timing, status tags, and all synced IDs.
Metadata is now enriched from 6 providers in a fallback chain:
MAL Scrape → MALSync → arm-server → Kitsu → AniList → AniDB
Each step is reported as [OK], [FAIL], [WARN], [SKIP], or [...].
All cross-database IDs are stored per title:
MAL, AniList, AniDB, ANN, IMDB, TMDB, TVDB, Kitsu
IDs summary shown at the bottom of every update report:
IDs: MAL=5114 | AniList=5114 | AniDB=6107 | IMDB=tt1355642
The report header shows which API provider was used (Tenrai/Jikan/Kitsu).
PREQUEL/SEQUEL DESCRIPTION RESCUE
Sequel titles with stub descriptions like "Second season of" now
automatically get the original series description appended. The stub
text is preserved with an "Original Description:" header below it.
Resolution chain:
1. AniList relations (walks prequel graph by ID)
2. Kitsu relations (fallback when AniList is down)
3. MAL title search (strips season suffix, searches for original)
Incomplete stubs like "Second season of" (with no title) are
reconstructed: "Second season of Clevatess"
Roman numeral suffixes detected: "Clevatess II" → season 2
RELATED TITLES SUMMARY
A "Related:" summary is appended to the description showing all
related titles from AniList/Kitsu relations. Entries are filtered
by the base series name — titles sharing the brand go to "Related:",
others go to "Spinoffs:". Character and Summary relation types are
excluded. Highest season number is extracted and shown.
Example:
Related: Prequel: Attack on Titan, Sequel: Attack on Titan Season 3
Seasons known: up to Season 3
KITSU METADATA PROVIDER (NEW)
Kitsu (kitsu.io) added as a full metadata provider. No API key
required. Provides:
- Cross-database ID mappings (MAL, AniList, AniDB, TVDB)
- Media relationships (prequel, sequel, adaptation, etc.)
- Episode data (titles, synopses, air dates, thumbnails)
- Streaming links (Netflix, Hulu, Crunchyroll)
- Genres, artwork, ratings
Added to API provider selector: Hamburger → API Provider → Kitsu
Kitsu ID automatically stored for all titles during metadata update.
PER-HOST RATE LIMITING
Every API call now respects per-host rate limits:
AniDB: 1 req/2s
AniList: ~85 req/min
Jikan: ~55 req/min
Kitsu: ~60 req/min
MALSync: ~30 req/min
arm-server:~60 req/min
Applied automatically — no configuration needed.
RETRY WITH EXPONENTIAL BACKOFF
All HTTP calls retry on 429/5xx/network errors with exponential
backoff (0.5s → 1s → 2s → 4s → 8s cap) and 25% jitter.
Respects Retry-After header on 429 responses.
MATCH VALIDATION
Cross-provider title matches are now validated:
- Year must be within 2 years (tolerance for production vs airing)
- Type must be compatible (TV/ONA crossover allowed, TV vs Movie rejected)
Only applies to title-based matches. Direct ID lookups (MAL ID, MALSync)
are authoritative and skip validation.
PROVIDER DIAGNOSTICS (NEW)
Hamburger → Provider Diagnostics opens a test window for all 7
providers (MAL Scrape, AniList, AniDB, MALSync, arm-server, Kitsu,
Jikan). Each has a Test button with timing in ms and OK/FAIL indicator.
"Test All" runs everything. Console output shows detailed results.
REMOVED: HiAnime PROVIDER
HiAnime removed — the service is broken. Providers are now:
Nyaa, SubsPlease, SeaDex, nekoBT
Version 0.10.4
CONSOLE-STYLE METADATA REPORT
The "Update Metadata" button (renamed from "rescrape_current") now
shows a structured report in the description box for 20 seconds
instead of blocking dialog boxes. Shows each step with status tags,
elapsed time, and field change counts.
CROSS-DATABASE ID ENRICHMENT
MALSync API added for direct MAL→AniDB ID mapping.
arm-server added for AniList→all IDs enrichment.
All IDs stored in record and shown in update report.
KOREAN ORIGIN DETECTION
Korean anime now detected from Hangul characters in titles/synopsis
and known Korean producers. Origin sort: Chinese → Korean → Japanese.
AniList/AniDB METADATA FALLBACKS
AniList GraphQL and AniDB HTTP API added as fallback metadata
providers. Fill only missing fields — never overwrite good data.
Scrapling FIXES
Fixed two Scrapling API breaking changes that caused silent crashes:
- find_by_text(tag=...) → first_match=True
- page.html → str(page.body)
BODY TEXT SIZE CONTROL
New "Body Text Size" option in hamburger menu with platform-aware
defaults (Windows: 13px, Linux: 11px).
SELF-HEALING DISPLAY
Seasonal browser detects data/display mismatch after populate and
retries automatically. Filter preset synced on apply.
Version 0.10.3
RENAME TO AnimeScape
Build outputs renamed: AnimeScape.bin / AnimeScape.exe
Watch folder extension: .animeScape
nekoBT PROVIDER (NEW)
nekoBT added as a torrent provider via JSON API at nekobt.to.
Supports MAL ID and AniList ID search. No auth required.
AniList ID MAPPING IMPROVED
SeaDex AniList ID mapping replaced with direct AniList GraphQL +
AniMap API fallback. More reliable cross-database ID resolution.
SELF-HEALING + WINDOWS FIXES
Seasonal browser: event for initial load, self-healing display
retry, filter preset sync on apply. All Windows-specific timing and
rendering issues resolved.
Linux-X86-0.10.1-Binary
Improvements to Seasonal Release Browser and Multi-OS compatibility
Anime_SV - Windows 0.10.2
Font issues resolved, more UI appearance controls. Assets like icons now packaged for WIndows binary. Seasonal Release UI fixes to improve usability on Windows
Anime_SV for Windows v0.10.1 OneFile
Improved Compatibility with Windows, some issues with Seasonal Release Browser.
0.9.0 Release
AnimeSV
AnimeSV is a portable desktop application for tracking anime progress, fetching metadata, and finding releases across multiple providers. It combines a personal database with an integrated torrent client and search engine.
Key Features
- Multi-Provider Search: Search Nyaa.si, SubsPlease, HiAnime, and SeaDex from one interface.
- Integrated Downloader: Built-in libtorrent client for downloading episodes directly, or open magnet links in an external client.
- Smart Tracking: Remembers your last watched episode, quality, and fansub group to find the next episode automatically.
- SxxExx Parsing: Extracts season/episode identifiers from filenames (supports
S01E05,S01 - 05,Ep05, and more). Toggle the SE column from the hamburger menu. - Metadata Fetching: Pulls cover art, descriptions, genres, and titles from MyAnimeList via Tenrai or Jikan APIs.
- Seasonal Browser: Browse current and past seasons with genre filtering, origin detection (Chinese/Japanese), and enrichment status.
- Watch Folder Automation: Trigger downloads by creating a file in your download directory.
- Autodownloader: Bulk scan your entire collection for new episodes.
- Configurable Scrape Backend: Choose BeautifulSoup (default) or Scrapling (adaptive, anti-bot bypass).
- Requirements Check: Detects missing Python modules at startup and via the hamburger menu.
- Customizable UI: Theme editor with color/font options, cross-platform scroll wheel support, ESC-to-close on all dialogs.
Getting Started
Standalone Binary (Recommended)
- Download
anime_sv.bin(Linux) oranime_sv.exe(Windows) from the releases page. - Make it executable (Linux):
chmod +x anime_sv.bin
- Run:
./anime_sv.bin
On first launch, the app creates its data directory at ~/.local/share/animescape/ (Linux) and initializes the database.
Running from Source
git clone <repo-url>
cd animeScrape
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python anime_sv.pyRequirements
Python Packages
| Package | Purpose | Required |
|---|---|---|
requests |
HTTP client | Yes |
beautifulsoup4 |
HTML parsing (default scraper) | Yes |
Pillow |
Cover art image processing | Yes |
scrapling[all] |
Adaptive web scraping with anti-bot bypass | Optional |
yt-dlp |
Video/stream extraction (used as CLI tool) | Optional |
libtorrent |
Internal torrent client | Optional |
Nuitka |
Building standalone binary | Build only |
platformdirs |
Cross-platform data directory resolution | Optional (fallback available) |
Install all at once:
pip install -r requirements.txt
pip install libtorrent # separate due to binary dependencySystem Dependencies
Japanese/CJK Font Support (required for correct title rendering):
| Distro | Command |
|---|---|
| Debian/Ubuntu | sudo apt install fonts-noto-cjk |
| Arch Linux | sudo pacman -S noto-fonts-cjk |
| Fedora | sudo dnf install google-noto-sans-cjk-fonts |
Checking Module Availability
The app checks for required modules at startup. You can also check manually via the hamburger menu: Check Python Modules. This shows which modules are installed in the current Python environment vs a .venv, and provides exact pip install commands for anything missing.
How to Use
Building Your Collection
- Click the Hamburger Menu (☰) → Manage Titles.
- Click Add New Title, type a name (e.g., "Frieren"), and select the match.
- The app scrapes metadata and adds it to your library.
Finding Releases
- Select an anime using << Prev / Next >> or the slider.
- Choose a Source from the dropdown (default: Nyaa).
- Results appear in the right pane.
- Right-click a result → Download (Internal) or Fetch & Watch (External).
Tracking Progress
- Every download is recorded. The app remembers your preferred Group, Quality, and Episode.
- Find Next Ep searches for the next episode based on your history.
Watch Folder Automation
- Enable Watch Folder checkbox in the main window.
- Create a file named
Search Term.animeSVin your download directory (e.g.,Frieren 05.animeSV). - AnimeSV detects it, finds the best match, and starts the download.
- The filename updates to show progress:
Frieren 05.20%→Frieren 05.completed.
Supported Providers
| Provider | Type | Notes |
|---|---|---|
| Nyaa | Torrents | General anime torrents (default) |
| SubsPlease | Torrents | Direct releases from SubsPlease |
| HiAnime | Streaming | Web-based streaming source |
| SeaDex | Index | Best-release index (requires AniList ID) |
| AllAnime | DEFUNCT (Cloudflare + API encryption) |
API & Scrape Providers
- API Provider (hamburger menu): Tenrai (default, faster) or Jikan for MAL data.
- Scrape Provider (hamburger menu): BeautifulSoup (default) or Scrapling (adaptive, ~2x faster, anti-bot bypass).
Configuration
Edit options.txt in the data directory (~/.local/share/animescape/options.txt):
| Key | Description | Default |
|---|---|---|
INTERNAL_TORRENT_DL_DIR |
Torrent download location | ~/.local/share/animescape/ |
OUTPUT_MAGNET_FILES_DIR |
Magnet file output directory | ~/.local/share/animescape/magnets/ |
UI_USE_CUSTOM_THEME |
Enable custom colors/fonts | False |
WATCH_FOLDER_ACTIVE |
Enable watch folder on startup | False |
API_PROVIDER |
MAL API backend | tenrai |
SCRAPE_PROVIDER |
Web scraping backend | beautifulsoup |
SHOW_SE_COLUMN |
Show Series/Episode column in search results | False |
TORRENT_PROFILE |
libtorrent performance profile | min_memory |
Data Directory
All persistent data lives in ~/.local/share/animescape/ (Linux). The app migrates existing data from the working directory on first run.
~/.local/share/animescape/
├── options.txt # User preferences
├── torrent_client.log # Torrent client log
├── database/
│ ├── anime_details.csv # Anime metadata
│ ├── search_terms.csv # Saved search terms
│ ├── episode_history.csv # Download history
│ ├── auto_downloads.csv # Autodownload records
│ ├── anime_data.csv # Query/MAL mapping
│ ├── seasonal_cache.json # Seasonal browser cache
│ └── filter_presets.json # Genre filter presets
├── images/ # Cached cover art
│ └── seasonal/ # Seasonal browser thumbnails
├── backups/ # Automatic database backups
└── fonts/ # Custom fonts (optional)
Override with the ANIMESCAPE_DATA_DIR environment variable.
Building
# Install build dependencies
pip install nuitka ordered-set
pip install -r requirements.txt
pip install libtorrent
# Build standalone binary
bash build_app.shCI builds for Linux and Windows run automatically via GitHub Actions on push.
Seasonal Browser
- Sort: By Release Date, Title, or Origin (Chinese → Japanese → Unknown)
- Filter: Genre filter with presets (Save, Load, Rename, Delete)
- Details Pane: Info tab (synopsis, metadata) and Status tab (enrichment log)
- Stale item pruning: Shows older than 1 year removed automatically
- Origin detection: Detects Chinese/Japanese origin from producer/studio data
Windows Zip folder 0.9.0
AnimeSV
AnimeSV is a portable desktop application for tracking anime progress, fetching metadata, and finding releases across multiple providers. It combines a personal database with an integrated torrent client and search engine.
This one has only just been built as a windows directory with the anime_sv.exe file in it. Many issues will not have been discoved yet.
Key Features
- Multi-Provider Search: Search Nyaa.si, SubsPlease, HiAnime, and SeaDex from one interface.
- Integrated Downloader: Built-in libtorrent client for downloading episodes directly, or open magnet links in an external client.
- Smart Tracking: Remembers your last watched episode, quality, and fansub group to find the next episode automatically.
- SxxExx Parsing: Extracts season/episode identifiers from filenames (supports
S01E05,S01 - 05,Ep05, and more). Toggle the SE column from the hamburger menu. - Metadata Fetching: Pulls cover art, descriptions, genres, and titles from MyAnimeList via Tenrai or Jikan APIs.
- Seasonal Browser: Browse current and past seasons with genre filtering, origin detection (Chinese/Japanese), and enrichment status.
- Watch Folder Automation: Trigger downloads by creating a file in your download directory.
- Autodownloader: Bulk scan your entire collection for new episodes.
- Configurable Scrape Backend: Choose BeautifulSoup (default) or Scrapling (adaptive, anti-bot bypass).
- Requirements Check: Detects missing Python modules at startup and via the hamburger menu.
- Customizable UI: Theme editor with color/font options, cross-platform scroll wheel support, ESC-to-close on all dialogs.
Getting Started
Standalone Binary (Recommended)
- Download
anime_sv.bin(Linux) oranime_sv.exe(Windows) from the releases page. - Make it executable (Linux):
chmod +x anime_sv.bin
- Run:
./anime_sv.bin
On first launch, the app creates its data directory at ~/.local/share/animescape/ (Linux) and initializes the database.
Running from Source
git clone <repo-url>
cd animeScrape
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python anime_sv.pyRequirements
Python Packages
| Package | Purpose | Required |
|---|---|---|
requests |
HTTP client | Yes |
beautifulsoup4 |
HTML parsing (default scraper) | Yes |
Pillow |
Cover art image processing | Yes |
scrapling[all] |
Adaptive web scraping with anti-bot bypass | Optional |
yt-dlp |
Video/stream extraction (used as CLI tool) | Optional |
libtorrent |
Internal torrent client | Optional |
Nuitka |
Building standalone binary | Build only |
platformdirs |
Cross-platform data directory resolution | Optional (fallback available) |
Install all at once:
pip install -r requirements.txt
pip install libtorrent # separate due to binary dependencySystem Dependencies
Japanese/CJK Font Support (required for correct title rendering):
| Distro | Command |
|---|---|
| Debian/Ubuntu | sudo apt install fonts-noto-cjk |
| Arch Linux | sudo pacman -S noto-fonts-cjk |
| Fedora | sudo dnf install google-noto-sans-cjk-fonts |
Checking Module Availability
The app checks for required modules at startup. You can also check manually via the hamburger menu: Check Python Modules. This shows which modules are installed in the current Python environment vs a .venv, and provides exact pip install commands for anything missing.
How to Use
Building Your Collection
- Click the Hamburger Menu (☰) → Manage Titles.
- Click Add New Title, type a name (e.g., "Frieren"), and select the match.
- The app scrapes metadata and adds it to your library.
Finding Releases
- Select an anime using << Prev / Next >> or the slider.
- Choose a Source from the dropdown (default: Nyaa).
- Results appear in the right pane.
- Right-click a result → Download (Internal) or Fetch & Watch (External).
Tracking Progress
- Every download is recorded. The app remembers your preferred Group, Quality, and Episode.
- Find Next Ep searches for the next episode based on your history.
Watch Folder Automation
- Enable Watch Folder checkbox in the main window.
- Create a file named
Search Term.animeSVin your download directory (e.g.,Frieren 05.animeSV). - AnimeSV detects it, finds the best match, and starts the download.
- The filename updates to show progress:
Frieren 05.20%→Frieren 05.completed.
Supported Providers
| Provider | Type | Notes |
|---|---|---|
| Nyaa | Torrents | General anime torrents (default) |
| SubsPlease | Torrents | Direct releases from SubsPlease |
| HiAnime | Streaming | Web-based streaming source |
| SeaDex | Index | Best-release index (requires AniList ID) |
| AllAnime | DEFUNCT (Cloudflare + API encryption) |
API & Scrape Providers
- API Provider (hamburger menu): Tenrai (default, faster) or Jikan for MAL data.
- Scrape Provider (hamburger menu): BeautifulSoup (default) or Scrapling (adaptive, ~2x faster, anti-bot bypass).
Configuration
Edit options.txt in the data directory (~/.local/share/animescape/options.txt):
| Key | Description | Default |
|---|---|---|
INTERNAL_TORRENT_DL_DIR |
Torrent download location | ~/.local/share/animescape/ |
OUTPUT_MAGNET_FILES_DIR |
Magnet file output directory | ~/.local/share/animescape/magnets/ |
UI_USE_CUSTOM_THEME |
Enable custom colors/fonts | False |
WATCH_FOLDER_ACTIVE |
Enable watch folder on startup | False |
API_PROVIDER |
MAL API backend | tenrai |
SCRAPE_PROVIDER |
Web scraping backend | beautifulsoup |
SHOW_SE_COLUMN |
Show Series/Episode column in search results | False |
TORRENT_PROFILE |
libtorrent performance profile | min_memory |
Data Directory
All persistent data lives in ~/.local/share/animescape/ (Linux). The app migrates existing data from the working directory on first run.
~/.local/share/animescape/
├── options.txt # User preferences
├── torrent_client.log # Torrent client log
├── database/
│ ├── anime_details.csv # Anime metadata
│ ├── search_terms.csv # Saved search terms
│ ├── episode_history.csv # Download history
│ ├── auto_downloads.csv # Autodownload records
│ ├── anime_data.csv # Query/MAL mapping
│ ├── seasonal_cache.json # Seasonal browser cache
│ └── filter_presets.json # Genre filter presets
├── images/ # Cached cover art
│ └── seasonal/ # Seasonal browser thumbnails
├── backups/ # Automatic database backups
└── fonts/ # Custom fonts (optional)
Override with the ANIMESCAPE_DATA_DIR environment variable.
Building
# Install build dependencies
pip install nuitka ordered-set
pip install -r requirements.txt
pip install libtorrent
# Build standalone binary
bash build_app.shCI builds for Linux and Windows run automatically via GitHub Actions on push.
Seasonal Browser
- Sort: By Release Date, Title, or Origin (Chinese → Japanese → Unknown)
- Filter: Genre filter with presets (Save, Load, Rename, Delete)
- Details Pane: Info tab (synopsis, metadata) and Status tab (enrichment log)
- Stale item pruning: Shows older than 1 year removed automatically
- Origin detection: Detects Chinese/Japanese origin from producer/studio data