Skip to content

Releases: 56cla/AniChapters

6.0

Choose a tag to compare

@56cla 56cla released this 22 Mar 07:16
ae59b16

AniChapters v6.0
Improvements
⚡ Parallel Theme Duration Fetching
Theme durations are now fetched in parallel instead of one by one. With multiple themes or versions, fetch time is reduced by up to 4x.
🔒 Secure Config Parser
supabase_config.py is now read safely line by line instead of using exec(). Previously any code inside the file would be executed — this has been eliminated.
🧠 Smart Cache Policy
High and medium confidence cache entries are returned immediately. Low and fallback confidence entries trigger a remote check for a better result.
🔢 Robust Version Comparison
Version checking now uses numeric tuple comparison. Tags like v6.0, 6.0, or 6.0.1 are all handled correctly.
🔍 Automatic DB Quality Validation
If a result from the shared database is missing an Opening chapter, it is automatically discarded and the episode is re-analyzed from scratch. This prevents bad community-submitted data from being silently used.

Bug Fixes
🐛 First-run crash on fresh install
The .themes folder was not being created before theme download began, causing a crash on first run.
🐛 Settings not saved in .exe builds
import json was missing from settings.py, causing all save and load operations to silently fail.

Notes

No breaking changes — all existing features are preserved
The .exe bundles all dependencies — no Python or pip required for end users

5.0

5.0

Choose a tag to compare

@56cla 56cla released this 20 Mar 20:49
3e2ee6d

AniChapters v5.0
What's New
☁️ Shared Chapter Database
AniChapters now connects to a shared cloud database powered by Supabase. When a user successfully detects chapters for an episode, the result is automatically uploaded and shared with all other users. On future runs, the app checks the database first — if a match is found, analysis is skipped entirely and chapters are applied instantly. A local SQLite cache is also maintained for offline use and faster lookups.
⏸️ Pause & Resume
You can now pause a batch analysis mid-way through. The current file finishes processing before the pause takes effect, and you can resume at any time without losing progress.
💾 Persistent Settings
Your preferences — including chapter name presets, custom names, and in-place editing mode — are now saved automatically and restored the next time you launch the app. Settings are stored per-user and require no manual configuration.
🔇 Silent Background Processing
Console windows no longer flash during batch operations. All background tools (mkvmerge, mkvpropedit, ffmpeg) now run silently without interrupting your workflow.

Bug Fixes
🐛 Audio analysis never ran on some episodes
ffmpeg always writes to stderr even on success. The old code treated any stderr output as a failure and exited immediately — meaning audio extraction silently failed before analysis even started. Fixed by checking returncode instead.
🐛 Chapter cache lost on every launch (.exe only)
The local SQLite cache was being saved inside PyInstaller's temporary _MEI folder, which is deleted when the app closes. The cache now saves next to the .exe and persists correctly across sessions.
🐛 Settings not saved when running as .exe
import json was missing from settings.py, causing all save and load operations to fail silently. Settings now persist correctly across launches.

Requirements

MKVToolNix — required for muxing and in-place editing
FFmpeg — required for audio analysis

Notes

Settings are saved to %APPDATA%\AniChapters\settings.json
The local chapter cache persists next to the .exe across sessions
In-place editing (mkvpropedit) modifies the original file directly — no extra copy is created

Full Changelog: 5.0...5.0

4.0

4.0

Choose a tag to compare

@56cla 56cla released this 09 Mar 16:53
a14cf25

AniChapters v4.0

AniChapters v4.0 introduces major improvements to the core engine, stability, and overall user experience. This update focuses on improving the accuracy of automatic chapter detection while addressing usability issues reported by users.

🚀 Highlights

Improved Audio Matching Engine

The audio matching system has been refined to provide more accurate OP/ED detection across a wider range of anime episodes. This improves chapter placement consistency and reduces false matches.

ffprobe Console Window Fix

The application no longer opens a terminal window during file analysis. ffprobe now runs silently in the background, resulting in a much smoother and less disruptive workflow.

Core Engine Improvements

Several internal improvements were made to the core processing logic to make analysis faster and more reliable.

Settings Persistence

The application now remembers the user's last selected settings and restores them automatically on startup.

Stability Improvements

Multiple fixes were applied to improve stability during batch processing and file analysis.

🔧 Technical Improvements

  • Improved audio processing workflow
  • Better handling of background subprocesses
  • Codebase cleanup and internal refactoring
  • Improved configuration handling

📦 Notes

This release focuses on improving reliability and usability while laying the foundation for future features.

Thank you to everyone who tested the application and provided feedback!

v3.0

Choose a tag to compare

@56cla 56cla released this 07 Mar 03:50

AniChapters v3.0 — Shared Chapters Database
What's New
☁ Shared Chapters Database

AniChapters now supports a community-driven chapter database.

When a user analyzes an episode and generates chapters, the result is uploaded to a shared database.
Future users analyzing the same episode can skip audio analysis entirely and instantly load the existing chapters.

This significantly reduces processing time and allows the community to collaboratively build a large chapter library.

The system works using Supabase (PostgreSQL) as a centralized backend.

⚡ Smart Episode Lookup

Before running audio analysis, AniChapters now checks the shared database using:

AniList ID

Season number

Episode number

If chapters already exist, they are downloaded immediately and applied to the video.

💾 Local Cache System

A local cache database has been added to speed up repeated episode processing.

When chapters are downloaded from the shared database, they are also stored locally so the same episode can be loaded instantly in future runs.

Cache files are stored in a temporary runtime database:

shared_chapters_cache.db
🔑 Supabase Integration

Added full support for Supabase as the backend service.

The application now automatically:

Verifies database connectivity on startup

Tests read/write permissions

Ensures the shared chapters table is accessible

Only publishable API keys are used for client access.

📡 Improved AniList Integration

AniChapters now resolves the correct anime identifier automatically via AniList, ensuring reliable episode matching across users.

Files Changed
analyzer.py — Added shared DB lookup and result upload
app.py — Shared DB startup checks and cache integration
shared_db.py — New: database orchestrator (remote + cache)
remote_db.py — New: Supabase communication layer
api_anilist.py — New: AniList ID resolution
supabase_setup.sql — New: database schema for shared chapters
.gitignore — Added cache and credential exclusions
Notes

Only Supabase publishable keys are used for client access.

Local cache improves performance but the primary source of chapters is the shared database.

Database writes use upsert logic to prevent duplicate episode entries.

AniChapters v2.0

Choose a tag to compare

@56cla 56cla released this 05 Mar 15:08
07af4d0

AniChapters v2.0 — Core Engine Overhaul

What's New

🔧 Audio Matching Engine — Complete Rewrite

The audio matching engine has been fully replaced with a proven, battle-tested algorithm based on Auto Chap v4.2 (librosa + scipy signal correlation).

The previous engine used an NCC-FFT approach via ffmpeg that produced inconsistent results. The new engine uses:

  • librosa for accurate audio loading
  • scipy.signal.correlate for robust cross-correlation matching
  • A silence-prefix padding trick to correctly handle themes that appear at the very start of an episode
  • Parallel OP/ED processing via ThreadPoolExecutor

This results in significantly more accurate OP/ED detection across a wider range of shows.


🗂️ Theme Cache Location

Downloaded themes are now stored in a .themes folder next to your video files, making it easy to find and manage cached themes per series.


🧹 Clear Cache Improvement

The Clear Cache button now properly deletes downloaded theme files (.ogg) in addition to temporary processing files, and displays the total storage freed.


🚫 UI Cleanup

Removed an unnecessary internal log message that appeared during analysis.


Requirements

Make sure to install the new dependencies:

pip install librosa scipy audioread

Files Changed

  • analyzer.py — Replaced matching logic with Auto Chap v4.2 engine
  • app.py — Cache clearing + anime name passing improvements
  • core.py — New file: Auto Chap v4.2 engine (do not modify)
  • Requirements.txt — Added librosa, scipy, audioread

AniChapters v1.0

Choose a tag to compare

@56cla 56cla released this 05 Mar 10:07
1b52bce

AniChapters v1.0

AniChapters is a desktop tool that automatically detects anime Opening (OP) and Ending (ED) and generates MKV chapters.

The program analyzes your local video files and creates chapter timestamps automatically.

Features

  • Automatic OP/ED detection
  • Generate MKV chapters XML
  • Review detected chapters before exporting
  • Merge chapters into MKV files
  • Optional in-place editing using mkvpropedit
  • animethemes.moe integration

Download

Download AniChapters_v1.0.zip from the assets below.

How to use

  1. Extract the zip file
  2. Run AniChapters.exe
  3. Add your anime episodes
  4. Fetch themes
  5. Run analysis and export chapters

Notes

Some shows may require manual review if OP/ED differs between episodes.

Disclaimer

AniChapters does not download anime.
It only analyzes video files you already have.