Skip to content

Releases: 0xzerolight/anki_miner

v2.6.4

14 Jun 17:06

Choose a tag to compare

New features

  • Audiobook mining tab (#71). Queue audiobook and subtitle pairs and mine. Cover art becomes each card's Picture.

  • Expression audio on cards (#73). Enable in Settings->Anki and assign a note field.

    • Audio source chain. Expression audio is pulled from an ordered, reorderable list of sources: local audio packs if added, then JapanesePod101, then Google Translate. First hit wins. JapanesePod101+GoogleTTS is the zero-setup default.
    • Local audio pack import. Add a local-audio-yomichan-compatible folder (ajt_japanese, nhk16, forvo_ja, jpod). Indexed in place, so audio files don't move.
    • Google Translate TTS. Free fallback for words no pack or JapanesePod101 covers. Off by default.

Fixed

  • i+1 filter checks all unknown lemmas, not just mineable ones (#74).
  • Card style presets no longer bleed into unrelated card content.
  • Duplicate media filenames no longer re-encoded in batch stores.
  • A media file that vanishes mid-run counts as a failure instead of silently succeeding empty.
  • A corrupt anki_fields value survives config load instead of crashing.

Repo

  • Added the new Anki Miner icon to README.

(Skipped v2.6.3 due to ffmpeg bundling error breaking release.)

Full Changelog: v2.6.2...v2.6.4

v2.6.2

12 Jun 12:29

Choose a tag to compare

New features

  • YouTube playlist support (#70). Paste a playlist URL and it expands into the queue. Size cap with confirm dialog (default 100), duplicates skipped, mix/radio URLs treated as plain videos.
  • Source field on cards (#69). Stamp show/episode (or YouTube title) + timestamp into a mapped Anki field.
  • Card styling presets. Default, Yomitan / Lapis Classic, Minimal / Clean, or None.
  • YouTube word curation (#65). Review words before mining, with embedded player and multi-dictionary lookup.

Changed

  • Python 3.11+ required for PyPI/source installs. Standalone bundles unaffected. Dependency floors raised.
  • Cancel actually cancels in every mining mode; in-flight ffmpeg/yt-dlp killed, subprocess calls time-bounded.
  • Closing the window no longer abandons running work.

Fixed

  • Anki note type and field mapping validated up front (#52); target deck auto-created.
  • Non-ASCII filenames no longer crash extraction on Windows.
  • A failed episode in a batch no longer aborts the rest or loses finished cards (#51).
  • YouTube reliability: cookies-file works for age-restricted videos, one bad video can't kill the queue, live streams handled, no more close hang mid-curation.
  • Security: yt-dlp argument injection blocked; Jisho definitions HTML-escaped.
  • Card media no longer silently missing on large sessions; uploads chunked, earlier batches persist on failure.
  • Local DBs survive momentary locks; "known" marks survive a DB rebuild.
  • Episode-number matching: numeric titles ("86", "Mob Psycho 100") no longer steal the episode slot.
  • Dictionary fixes: Yomitan image sizing (#68), UTF-16 surrogate scrub on import (#67), paths with spaces.
  • Long tail of settings, batch-queue, deck-builder, and curation fixes in CHANGELOG.md.

Repo

  • New app icon: white 鉱 on black.
  • ~920 lines of dead code removed, big GUI classes split, ~2900 tests.
  • Supply chain pinned; tag workflows gated on green CI.
  • Welcomed @Geniusssmit and @cskings14.

Full Changelog: v2.6.1...v2.6.2

v2.6.1

07 Jun 15:57

Choose a tag to compare

Fixed

  • YouTube mining broken with "n challenge solving failed" / "Only images are available" (#64).
  • Cards missing audio/picture on large YouTube batches.
  • Long error text clipped in YouTube queue row.

Repo

  • Added a looping demo GIF + link to the full demo video in README.md.

Minor release, see v2.6.0 release notes for latest new features.

Full Changelog: v2.6.0...v2.6.1

v2.6.0

06 Jun 22:14

Choose a tag to compare

New features

  • Bundled ffmpeg: Windows, macOS, and Linux AppImage/portable builds ship ffmpeg, no separate install. (.deb, PyPI, and source installs still use system ffmpeg.)
  • Text size control (#63): Settings > Themes dropdown scales the whole UI (0.5x to 2x).
  • Custom YouTube cookies (#62): pull cookies from a browser or file for age-restricted or bot-gated videos.
  • Kana-only filters (#57): optionally drop hiragana-only or katakana-only words.
  • Word curation in batch mining (#60): the per-episode curation popup is now opt-in for batch runs.
  • Bundled name wordsets (#59): JMnedict proper-noun wordsets with per-wordset exclusion checkboxes.
  • Word Curator play/pause (#55).
  • Recent pairs remember the subtitle offset (#61).
  • Wider subtitle offset range: now Β±300 seconds (#53 - @sdobrau's contribution).

Performance

  • Subtitles tokenized once per line, MeCab and dictionary chain pre-warmed off the GUI thread, batched dictionary lookups and AnkiConnect media uploads, memoized furigana/reading, cached Deck Builder tokenization, faster Word Curator.
    Overall much faster launch and slightly faster mining and navigation.

Fixed

  • AV1 in-app preview disabled so it stops spamming decode errors. AV1 media still mines; only the preview is skipped.
  • Horizontal overflow in the Episode Mining tab (#56).
  • AppImage desktop shortcut broken on relaunch.
  • "All Themes" button opened the wrong tab.
  • Word curation: cancel no longer leaves a stray dialog; confirming with nothing selected now counts as a completed zero-card run, not a cancel.
  • Progress-bar percentage glitch, mismatched path bars, Max Sentence Duration tooltip, About dialog polish.

Repo

  • ffmpeg GPL license, source offer, and About attribution for the bundled binaries.
  • CI asserts bundled encoders (incl. libwebp_anim) in the release smoke test.
  • Restored the CI lint job (ruff + black).
  • Welcomed first-time contributor @sman68634.
  • 30 stars achieved :).

Full Changelog: v2.5.0...v2.6.0

v2.5.0

28 May 21:48

Choose a tag to compare

New features

  • Deck Builder tab: point at a folder of episode/subtitle pairs and mine the whole show into one frequency-ranked deck. Pick ALL, top N, or coverage % and preview before any cards are created.
  • Word Curator video player (#41): in-place playback of the source line on every row.
  • Multi-dictionary lookup in Word Curator (#43): every enabled offline dict's hit shown side-by-side, not just first-hit-wins.
  • Custom card styling (#44): generated cards ship with styling for the standard fields. No manual Anki note-type tweaks.
  • User-curated known-words list (#42): "Add to Known Words" button in Word Curator. Persists, skipped on every future run, survives DB rebuilds.
  • Yomitan pitch-accent zip importer: Settings, Dictionary, Pitch Accent File now accepts a Yomitan zip. Imports run in the background.
  • Configurable dictionary folder location (#45): point the dictionary store at a different drive.
  • Exclude Anki decks from known-word lookup (#38): pick decks under Settings, Filtering to ignore on the unknown-word check.
  • Dracula and Alucard themes (#48). All previously-added themes are now exposed in the Themes panel. 29 themes total.

Fixed

  • Batch mining pairing error (#39): same-episode collisions no longer collapse every video onto the first subtitle.
  • addNotes duplicate error aborting the rest of a batch: duplicates dropped client-side before AnkiConnect sees them.
  • Deck exclusion broken on names with _ or *: wildcards escaped before query injection.
  • DeckBuilder worker lifecycle on app close: torn down cleanly, build_finished suppressed on cancel.
  • Deck Builder built far fewer cards than the preview promised: two new config flags (bypass_optional_filters, allow_duplicate_cards) skip the per-episode reduction filters and let Anki re-card across decks so the build matches the preview exactly. Standard mining unchanged.
  • Deck Builder tab stuck on "Cancelling…": button state now resets on every worker finish, not just on cancel.
  • Progress bar stranded or jumped backwards across all mining tabs: new stage_weighted_progress helper maps per-stage progress to a single monotonic 0–100 across the run, shared by Single Episode and Deck Builder tabs.

Repo

Full Changelog: v2.4.7...v2.5.0

v2.4.7

26 May 22:08

Choose a tag to compare

Fixed

Full Changelog: v2.4.6...v2.4.7

v2.4.6

25 May 22:20

Choose a tag to compare

New Features

  • Manual audio track override (#35): new "Tracks" button next to "Test Timing" in Single Episode tab. Pick which audio stream to use instead of letting auto-detect choose. Same track flows through preview and final cards.

Changed

  • Snappier UI: table updates no longer flicker, Word Preview search no longer stutters, Analytics tab opens faster on repeat clicks, theme star clicks feel closer to instant.
  • Faster startup: app paints sooner, YouTube tab loads on demand, dictionary scan skips unchanged entries.
  • Faster mining: less duplicate work per episode, larger AnkiConnect batches, history queries indexed.

Fixed

  • Frequency filter ignored some words (#34): Max Frequency Rank now drops words missing from the frequency list. Set it to 0 to keep old behavior.
  • Audio track override could be ignored after swapping the video file: stale stream list now cleared at the start of each run.

Repo

  • CONTRIBUTORS.md added. Auto-generated table of everyone who filed an issue, opened a PR, started a discussion, or commented. Refreshes on activity and welcomes new arrivals by username in the commit message.
  • Special Thanks section added to README for exceptional contributors. First entry: StyraxBenzoin.

Full Changelog: v2.4.5...v2.4.6

v2.4.5

24 May 19:25

Choose a tag to compare

New Features

  • Sentence length filter (#33): drop cards whose example sentence exceeds an audio-duration or character cap. Applied after i+1 sentence selection so the cap binds the final chosen sentence.
  • Theme variants grouped by family: light/dark variants nest under one expandable row in Settings > Themes. Tri-state family star bulk-favorites the whole group in a single click.
  • Yomitan-format frequency dictionaries: Settings > Word Filtering > Frequency Source now accepts a Yomitan freq zip alongside frequency.csv. Rejects malformed archives (format != 3, non-positive ranks) with a clear error.
  • Background-threaded frequency import with modal progress, cancel, and overwrite confirmation.

Fixed

  • Theme colours now apply to the Analytics tab (was inheriting host palette).

Full Changelog: v2.4.4...v2.4.5

v2.4.4

23 May 13:10

Choose a tag to compare

Fixed

  • Remove dictionary now works on Windows after mining (#30). SQLite handle leak kept index.sqlite locked.
  • Re-import dictionary now works on Windows after mining (#32). Same lock blocked importer's atomic rename.
  • Single-file + batch tabs also release dictionary handles on idle (gap from #32 fix). Earlier release hook only covered YouTube tab.
  • CI smoke-min-deps job derives floor pins from pyproject.toml instead of hardcoded values.

Full Changelog: v2.4.3...v2.4.4

v2.4.3

22 May 21:22

Choose a tag to compare

New features

  • Multi-URL YouTube queue. Paste several URLs, probe each on Add, mine sequentially. Per-item retry-once on yt-dlp fetch errors. Replaces previous single-URL system.
  • Theme settings panel. New Settings tab 'Themes' lists every shipped and user theme; click to live-preview, star to favorite, Revert to undo.

Fixes

  • Per-row Re-import for dictionaries was undiscoverable (#29). Right-click menu on dictionary rows now exposes Re-import and Remove.
  • Remove did nothing on dictionary rows outside the main selection path (#30). Same right-click menu now exposes Remove.
  • Bold target word landed on the wrong characters in SentenceFurigana when a bracketed reading sat next to the target (#31).
  • Star toggle in the Themes panel was visually clipped.
  • YouTube progress bar stuck after Clear, cancel, or an unhandled worker exception.

Removed

  • Single-URL YouTubeWorkerThread (replaced by YouTubeQueueWorker).

Full Changelog: v2.4.2...v2.4.3