← 返回
数据分析 Key 中文

Bunpro

Sync Bunpro Japanese grammar learning progress from the API to local storage for analysis and insights. Use when the user wants to backup their Bunpro progre...
将Bunpro日语语法学习进度从API同步至本地存储以便分析洞察。当用户想备份其Bunpro进度时使用。
mart1n-xyz
数据分析 clawhub v1.0.0 1 版本 100000 Key: 需要
★ 0
Stars
📥 945
下载
💾 12
安装
1
版本
#latest

概述

Bunpro Sync

Sync your Bunpro grammar learning progress locally for analysis and insights.

⚠️ Important: This uses a community-documented API. The official Bunpro API Key from settings does NOT work - you need the Frontend API Token from your browser.

Overview

This skill fetches your Japanese grammar progress from Bunpro and stores it in a local SQLite database. Track SRS stages, review forecasts, JLPT progress, and identify grammar leeches (items that keep falling back).

API Keys: The Two Different Tokens

Bunpro has two different API tokens that serve different purposes:

❌ DO NOT USE: "Official" API Key (from Settings)

  • Found at: bunpro.jp/settings/account
  • Looks like: d406663ff421af27c87caaa62eefdb7a (32 hex characters)
  • Does NOT work with the Frontend API endpoints this skill uses
  • Returns 401 Unauthorized errors

✅ USE THIS: Frontend API Token (from Browser)

  • Found in: Browser DevTools → Console or Application Storage
  • Looks like: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9... (long JWT, 200+ chars)
  • This is what the skill requires
  • Expires periodically (you'll need to refresh it)

How to Get the Frontend API Token

Method 1: Console (Recommended)

  1. Go to bunpro.jp and log in
  2. Press F12 to open DevTools
  3. Click the Console tab
  4. Paste this JavaScript and press Enter:

```javascript

Object.fromEntries(

new URLSearchParams(

document.cookie.replace(/; /g, '&')

)

).frontend_api_token

```

  1. Copy the long string that appears (starts with eyJ)

Method 2: Local Storage

  1. Go to bunpro.jp and log in
  2. Press F12 → Application tab (or Storage in Firefox)
  3. In the left sidebar, expand Local Storagehttps://bunpro.jp
  4. Look for token, authToken, or frontend_api_token
  5. Copy the value (starts with eyJ)

Method 3: Network Tab

  1. Go to bunpro.jp and log in
  2. Press F12 → Network tab
  3. Refresh the page
  4. Look for any API call (like /user or /queue)
  5. Click it → HeadersRequest Headers
  6. Find Authorization: Bearer eyJ...
  7. Copy the part after "Bearer "

⚠️ Token Expiry:

The Frontend API Token expires eventually (days/weeks). When you get 401 errors, repeat the steps above to get a fresh token.

Quick Start

Sync All Data

# Using environment variable (recommended)
export BUNPRO_FRONTEND_API_TOKEN="eyJ0eXAiOiJKV1Qi..."
python3 scripts/sync.py

# Or pass token directly (less secure)
python3 scripts/sync.py --token "eyJ0eXAiOiJKV1Qi..."

# Store in specific directory
python3 scripts/sync.py --data-dir ~/bunpro-data

Sync Specific Data

# Only user info
python3 scripts/sync.py --user-only

# Only study queue
python3 scripts/sync.py --queue-only

# Only reviews
python3 scripts/sync.py --reviews-only

Force Full Sync

python3 scripts/sync.py --full

Database Schema

user

Your account info including level, XP, buncoin, lifetime status.

grammar_points

Grammar content including title, meaning, structure, JLPT level, unit/lesson.

reviews

Your SRS progress on each grammar point (stage, next review, burned status).

study_queue

Items scheduled for future review.

due_items

Items currently available for review (includes is_leech flag).

user_stats

Aggregated statistics (SRS overview, forecasts, JLPT progress, activity).

review_histories

Review session history (last session, last 24h).

sync_meta

Internal table tracking last sync timestamps.

Common Queries

-- Grammar mastery by JLPT level
SELECT jlpt_level, COUNT(*) as total,
       SUM(CASE WHEN burned = 1 THEN 1 ELSE 0 END) as burned
FROM reviews r
JOIN grammar_points g ON r.grammar_point_id = g.id
GROUP BY jlpt_level;

-- Upcoming reviews
SELECT DATE(next_review) as day, COUNT(*)
FROM reviews
WHERE next_review > datetime('now')
GROUP BY day
ORDER BY day
LIMIT 7;

-- Grammar leeches
SELECT g.title, g.meaning, d.streak, r.srs_stage_string
FROM due_items d
JOIN grammar_points g ON d.reviewable_id = g.id
LEFT JOIN reviews r ON d.reviewable_id = r.reviewable_id
WHERE d.is_leech = 1
ORDER BY d.streak ASC;

Query Tools

# Show SRS distribution
python3 scripts/queries.py srs

# Show upcoming review forecast
python3 scripts/queries.py forecast

# Show grammar mastery by JLPT level
python3 scripts/queries.py grammar --jlpt 5

# Show currently due reviews
python3 scripts/queries.py due

# Show grammar leeches
python3 scripts/queries.py leeches

# Show overall progress
python3 scripts/queries.py progress

# Show recent activity
python3 scripts/queries.py activity

API Notes

  • Base URL: https://api.bunpro.jp/api/frontend
  • Auth: Bearer JWT token from browser (not settings API key)
  • Rate limits: Unknown - be reasonable
  • Stability: Community-documented, may change without notice
  • Permission: Reverse-engineered with permission from Bunpro team

Troubleshooting

401 Unauthorized:

  • Token expired (get fresh one from browser)
  • Using wrong token type (need Frontend API Token, not settings API key)
  • Token format should be JWT (eyJ0eXAi...)

500 Server Error:

Empty data:

  • You're in vacation mode (check bunpro.jp)
  • No reviews done yet
  • Different endpoint structure than expected

References

Files

  • scripts/sync.py - Main sync tool with CLI
  • scripts/queries.py - Query helper with common reports
  • references/api-structure.md - Bunpro API reference

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-03-29 07:35 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

data-analysis

Excel / XLSX

ivangdavila
创建、检查和编辑 Microsoft Excel 工作簿及 XLSX 文件,支持可靠的公式、日期、类型、格式、重算及模板保留功能。
★ 367 📥 140,147
data-analysis

Stock Analysis

udiedrichsen
{"answer":"基于雅虎财经数据,分析股票与加密货币。支持投资组合管理、自选股预警、股息分析、8维评分、热门趋势扫描及传闻/早期信号探测。适用于股票分析、持仓追踪、财报异动、加密监控、热门股追踪或提前发掘非主流传闻。"}
★ 270 📥 56,914
data-analysis

A股量化 AkShare

mbpz
A股量化数据分析工具,基于AkShare库获取A股行情、财务数据、板块信息等。用于回答关于A股股票查询、行情数据、财务分析、选股等问题。
★ 164 📥 59,799