Skip to content

Latest commit

 

History

History
executable file
·
147 lines (102 loc) · 7.65 KB

File metadata and controls

executable file
·
147 lines (102 loc) · 7.65 KB

KometaThemes

KometaThemes Banner

v2.0.0.0


🇮🇹 Italiano

Plugin avanzato per Jellyfin che scarica le sigle anime (OP ed ED) da animethemes.moe con supporto multi-provider, gestione multi-stagione e generazione playlist globale.

Funzionalità

🎬 Supporto Multi-Stagione (NEW v2.0) Rilevamento automatico della stagione tramite regex multilingua (Season 2, 2a Stagione, Part II, numeri romani...). Mapping dei range episodi API alle stagioni Jellyfin. Elaborazione delle stagioni figlie di una Series.
🎵 Multi-OP/ED per Stagione (NEW v2.0) Modalità AllPerSeason: scarica tutte le sigle della stagione rilevata. Ogni OP/ED è un file separato per la rotazione continua in Jellyfin.
🏷 Naming Migliorato (NEW v2.0) Formato: OP1 - Guren no Yumiya__50.mp3. Nome tema dall'API + tipo e sequenza. Fallback a OP1__50.mp3 se troppo lungo.
📋 Playlist Globale (NEW v2.0) Generazione automatica M3U con tutte le sigle scaricate. Aggiornata dopo ogni sync. Nome playlist personalizzabile.
🔧 Gestione Temi per Item (NEW v2.0) API REST per sync, lista e cancellazione temi per singolo item. Pagina dedicata con badge scaricato/non e pulsanti one-click.
🔄 Risoluzione Multi-Provider AniDB, MyAnimeList, AniList, Kitsu, AniSearch — ordine di priorità configurabile. Fallback per titolo con fuzzy matching (Levenshtein). Compatibile con AnimeClick.
🎵 Supporto Completo Sigle Download audio (MP3) e video (WebM). Filtri configurabili: OP/ED, overlap, crediti, spoiler, NSFW. Normalizzazione volume via ffmpeg. Impostazioni separate per Serie e Film.
Performance & Resilienza Cache JSON persistente con TTL configurabili. Rate limiting token bucket (default 60 req/min). Retry Polly (3x backoff esponenziale) + circuit breaker. Download paralleli.

Installazione

  • Gestore Plugin: aggiungi l'URL del catalogo ai repository di Jellyfin: https://raw.githubusercontent.com/iCosiSenpai/iCosiSenpai-Plugins/main/manifest.json, trova "KometaThemes" e installa.
  • Manuale: scarica l'ultima release dalla pagina GitHub, estrai in config/plugins/KometaThemes/, riavvia Jellyfin.

Dopo l'aggiornamento, fai un hard refresh della dashboard: Ctrl+Shift+R.

Configurazione

  • Priorità Provider: AniDB → AniList → MyAnimeList → Kitsu → AniSearch (riordinabile)
  • Multi-Stagione: modalità Auto (nome + range episodi), Solo Nome, Solo Range Episodi
  • Max temi per stagione: limita quanti OP/ED scaricare per stagione
  • AllPerSeason: scarica TUTTI gli OP/ED appartenenti alla stagione rilevata
  • Playlist: attiva la generazione automatica, nome personalizzabile

Esempio Output

Per "Attack on Titan" Stagione 1:

theme-music/
  OP1 - Guren no Yumiya__50.mp3
  OP2 - Jiyuu no Tsubasa__50.mp3
  ED1 - Utsukushiki Zankoku na Sekai__50.mp3
  ED2 - Great Escape__50.mp3
backdrops/
  OP1 - Guren no Yumiya__0.webm

Changelog v2.0.0

  • Aggiunto: supporto multi-stagione con mapping range episodi, rilevamento regex (EN/IT/JP), FetchType AllPerSeason, download paralleli, naming OP1 - Nome.mp3, PlaylistManager M3U, API REST per-item, pagina gestione temi, pulsante Force Sync Now con log live, adattamento tema chiaro/scuro. AniList metadata matching. Skip/Ignore system.
  • Modificato: video themes abilitati di default (Single), sync task include Season items, UI riorganizzata
  • Risolto: temi assegnati a tutte le stagioni indiscriminatamente, impossibilità di scaricare OP1 e OP2 insieme, nessun tracking dei download

Build

dotnet build -c Release

Richiede .NET 9.0 SDK.

Licenza

GPL-3.0 — Vedi LICENSE

🇬🇧 English

Enhanced plugin for Jellyfin that fetches anime themes (OPs and EDs) from animethemes.moe with multi-provider support, multi-season handling, and global playlist generation.

Features

🎬 Multi-Season Support (NEW v2.0) Automatic season detection via multi-language regex (Season 2, 2nd Season, Part II, roman numerals...). Episode range mapping from API to Jellyfin seasons. Child season processing within Series.
🎵 Multi-OP/ED per Season (NEW v2.0) AllPerSeason fetch type: downloads all themes belonging to the detected season. Each OP/ED is a separate file for continuous rotation in Jellyfin.
🏷 Improved Naming (NEW v2.0) Format: OP1 - Guren no Yumiya__50.mp3. Theme name from API + type + sequence. Fallback to OP1__50.mp3 if slug is too long.
📋 Global Playlist (NEW v2.0) Automatic M3U generation with all downloaded themes. Refreshed after every sync. Customizable playlist name.
🔧 Per-Item Management (NEW v2.0) REST API for per-item sync, listing, and deletion. Dedicated page with downloaded/missing badges and one-click buttons.
🔄 Multi-Provider Resolution AniDB, MyAnimeList, AniList, Kitsu, AniSearch — configurable priority order. Title fallback with fuzzy matching (Levenshtein). AnimeClick compatible.
🎵 Full Theme Support Audio (MP3) and video (WebM) downloads. Configurable filters: OP/ED, overlap, credits, spoilers, NSFW. Volume normalization via ffmpeg. Separate Series/Movie settings.
Performance & Resilience Persistent JSON cache with configurable TTLs. Token bucket rate limiting (default 60 req/min). Polly retry (3x exponential backoff) + circuit breaker. Parallel downloads.

Installation

  • Plugin Manager: add the catalog URL to Jellyfin repositories: https://raw.githubusercontent.com/iCosiSenpai/iCosiSenpai-Plugins/main/manifest.json, find "KometaThemes", install.
  • Manual: download the latest release from GitHub, extract to config/plugins/KometaThemes/, restart Jellyfin.

After upgrading, hard refresh the dashboard: Ctrl+Shift+R.

Configuration

  • Provider Priority: AniDB → AniList → MyAnimeList → Kitsu → AniSearch (reorderable)
  • Multi-Season: Auto mode (name + episode range), By Name, By Episode Range
  • Max themes per season: limit how many OP/ED to download per season
  • AllPerSeason: download ALL themes belonging to the detected season
  • Playlist: enable automatic generation, customizable name

Example Output

For "Attack on Titan" Season 1:

theme-music/
  OP1 - Guren no Yumiya__50.mp3
  OP2 - Jiyuu no Tsubasa__50.mp3
  ED1 - Utsukushiki Zankoku na Sekai__50.mp3
  ED2 - Great Escape__50.mp3
backdrops/
  OP1 - Guren no Yumiya__0.webm

Changelog v2.0.0

  • Added: multi-season support with episode range mapping, regex-based season detection (EN/IT/JP), AllPerSeason fetch type, parallel downloads, OP1 - Name.mp3 naming, M3U PlaylistManager, per-item REST API, per-item management page, Force Sync Now button with live log, dark/light theme adaptation. AniList metadata matching. Skip/Ignore system.
  • Changed: video themes default to Single, sync task includes Season items, UI reorganized
  • Fixed: themes assigned to all seasons indiscriminately, couldn't download OP1+OP2 together, no download tracking

Build

dotnet build -c Release

Requires .NET 9.0 SDK.

License

GPL-3.0 — See LICENSE


Author: iCosiSenpai | Repository: github.com/iCosiSenpai/KometaTheme | Themes source: animethemes.moe