Skip to content

Hands-on examples for automating Anki flashcard operations using Python and AnkiConnect

Notifications You must be signed in to change notification settings

timeless-residents/handson-anki

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Anki プログラミング活用ハンズオン

プロジェクト概要

このプロジェクトは、Ankiカード管理システムをプログラムから操作するための様々なユースケースを提供します。AnkiConnectプラグインを使用して、Pythonスクリプトからデッキの作成、カードの追加、学習データの分析などを自動化する方法を示しています。

前提条件

  • Python 3.12以上
  • Anki(デスクトップ版)
  • AnkiConnectプラグイン

セットアップ手順

  1. このリポジトリをクローンします

    git clone https://github.com/yourusername/handson-anki.git
    cd handson-anki
    
  2. Pipenvを使用して依存関係をインストールします

    pipenv install
    
  3. 追加の依存関係をインストールします(一部のユースケースに必要)

    pipenv install matplotlib
    
  4. Ankiを起動し、AnkiConnectプラグインがインストールされていることを確認します

使用方法

各ユースケースはshowroomディレクトリ内にあります。実行するには:

cd showroom/usecase-xxx
python main.py

※実行時はAnkiが起動している必要があります。

実装済みユースケース

  • usecase-000: 基本接続テスト - AnkiConnectへの接続とデッキ一覧の取得
  • usecase-001: 基本的なカード追加 - プログラミング用語デッキの作成と基本カードの追加
  • usecase-002: CSVファイルからのカードインポート - CSVファイルからデータを読み込みカードを作成
  • usecase-003: 学習統計の取得と分析 - 復習データの取得とグラフ化(matplotlibが必要)
  • usecase-004: 学習ダッシュボード - 学習予定や統計情報を表示するコンソールダッシュボード

依存関係

  • Python 3.12
  • requests: APIリクエスト用
  • matplotlib: グラフ作成用(usecase-003のみ)

予定ユースケース

基本操作

  • usecase-005: 複数デッキの一括管理と操作

言語学習特化 (6-10)

  • usecase-006: 例文とオーディオ付き語学カード生成
  • usecase-007: ターゲット言語の頻出単語リストからのデッキ作成
  • usecase-008: 翻訳APIを使った自動カード生成
  • usecase-009: テキスト文書からの単語抽出とカード作成
  • usecase-010: 発音記号と音声付き発音練習カード

データ分析・可視化 (11-15)

  • usecase-011: 学習曲線と記憶定着率の分析
  • usecase-012: 複数デッキの学習効率比較
  • usecase-013: タグベースの学習進捗追跡
  • usecase-014: 最適な学習スケジュールの提案
  • usecase-015: インタラクティブなダッシュボードの作成

高度な応用 (16-20)

  • usecase-016: スペース反復アルゴリズムのカスタマイズ
  • usecase-017: 画像認識APIを使った視覚学習カード
  • usecase-018: スマートフォン通知との連携
  • usecase-019: 学習データの外部バックアップと同期
  • usecase-020: AIによる学習パターン分析と最適化

AnkiConnectについて

AnkiConnectは、外部プログラムからAnkiを操作するためのプラグインです。このプロジェクトでは、AnkiConnectのJSON APIを使用してAnkiとの通信を行っています。

デフォルトでは、AnkiConnectはローカルホスト(127.0.0.1)のポート8765でリッスンします。

トラブルシューティング

  • 接続エラー: Ankiが起動していることと、AnkiConnectプラグインがインストールされていることを確認してください
  • 日本語フォントエラー: usecase-003でグラフの日本語表示に問題がある場合は、コード内のフォント設定を環境に合わせて調整してください

ライセンス

MIT License

Copyright (c) 2025

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Hands-on examples for automating Anki flashcard operations using Python and AnkiConnect

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages