Japanese & English, straight from YouTube用你喜欢的视频,学日语和英语

Learn the lines
you already love.
下一句,
你喜欢的开始。

Paste a YouTube link. Bunmyaku checks the subtitles three ways.
Highlight anything, and an AI tutor explains it —
then ask follow-ups, take notes, and save it for review.
贴一个 YouTube 链接。文脈用三路证据把字幕做准;
你高亮哪里,AI 老师就讲哪里——讲完还能追问、记笔记、存成卡片复习。

Learn Japanese or English学日语或英语 Explanations in 6 languages6 种讲解语言 For engineers: the pipeline, measured →写给工程师:这条管线是怎么量出来的 →

焦る → 焦らあせるverb动词

to feel rushed; to be in a hurry着急;心急

In this line在这句话里焦ら is the form 焦る takes before ない — so the line is built on “not rushing.”「焦ら」是「焦る」接「ない」时的形态——整句从“不着急”说起。

Sample explanation示例讲解Ask a follow-up →继续追问 →
〜なくてもいいgrammar语法

you don’t have to…; it’s fine not to…不……也可以;不必……

In this line在这句话里Not an order — reassurance. A friend telling you there’s no rush.不是命令,是安慰:朋友在告诉你,不必着急。

Sample explanation示例讲解Ask a follow-up →继续追问 →
〜よsentence-final particle句末助词

adds warmth and conviction — “I’m telling you”带着温度和肯定,像在对你说“真的”

In this line在这句话里It turns a plain statement into a gentle nudge for the listener.让这句话从陈述变成对听者的温柔鼓励。

Sample explanation示例讲解Ask a follow-up →继续追问 →

You don’t have to rush.不用着急哦。

caption track · frame text · speech — all three agree字幕轨 · 画面文字 · 语音——三路一致
Tap any part of the line · sample line and explanation点字幕里的任意一段 · 示例台词与讲解

In one line一句话

Your favorite videos are the textbook.
Subtitles, triple-checked.
Ask until it clicks.
Practice until it sticks.
从你喜欢的视频学语言
字幕三路校验
每一句都能问懂、留下、练会。

Why context为什么是语境

I learned English from
a summer of Harry Potter.
我的英语,是一个暑假的《哈利·波特》教会的。

Word lists and drills never stuck for me.
Scenes did. A line you hear in context
comes with its tone and its moment —
and it’s there the next time you need it.
背单词、刷语法题,在我身上没留下多少。留下来的是场景——在语境里听到的一句话,会连同语气、情境和“下次什么时候用得上”一起被记住。

  1. 01Ninth grade初三

    The summer of Harry Potter《哈利·波特》的那个暑假

    My listening and speaking had stalled, and a TOEFL test was coming up. So instead of drilling, I watched the Harry Potter films every day, all summer long. I walked out of the exam with a score I hadn’t dared hope for — and a British accent I hadn’t planned on.初三那年要考托福,可我的听力和口语怎么也上不去。那个暑假我没怎么刷题,每天都在看《哈利·波特》。结果考出了一个自己都没敢想的高分,还多了一口没想到的英式口音。

  2. 02Before moving to the US出国之前

    How people really talk学人们真正怎么说话

    Before I left to study in the US, I binge-watched The Big Bang Theory and copied the way the characters talked. Later, whenever real life played out like a scene, the line was just there — no translating in my head, no digging for a word I’d memorized.出国读书前,我拼命看《生活大爆炸》,模仿主角们说话的方式。后来每当生活里遇到相似的场景,那句话就能脱口而出——不用在脑子里翻译,也不用去翻背过的单词。

  3. 03Now现在

    Japanese, and a missing tool学日语,缺一个工具

    For Japanese I wanted the same method, but YouTube’s auto-captions are often wrong — and a wrong line teaches you the wrong thing. So I built Bunmyaku for myself: accurate subtitles first, then a tutor for every line. When friends wanted in, I added accounts and six explanation languages.学日语时我想用同样的办法,可 YouTube 自动字幕常常出错——字幕错了,学到的也是错的。于是我先给自己做了文脈:先把字幕做准,再给每句配一位老师。朋友也想用,它就有了账号和六种讲解语言。

Subtitles you can trust字幕 · 三路校验

Auto-captions guess.
Bunmyaku gets a second opinion — and a third.
自动字幕靠猜,文脈三方对证

Every line can get up to three independent opinions: the text burned into the frame, the video’s caption track, and the speech itself. When two agree, they outvote the third. When no two agree, the line is flagged for you to decide.每一句字幕最多可以过三位“证人”:画面里印着的字、视频自带的字幕轨、真实的语音。两方一致而第三方不同,就以这两方为准;谁也说服不了谁,这一句就标出来交给你判断。

00:00:00 → 00:00:03
adopted · 94%已采用 · 94% 94% is the minimum confidence for a two-to-one vote (capped at 99%), not any one source’s own score.94% 是“二比一”裁决的可信度下限(上限 99%),不是哪一路自己的分数。

Three opinions三位证人

  1. OCR 画面字幕 Frame text画面里印着的字

    00:00:00–00:00:03

    outvoted 2:1 · replaced二比一落选 · 已替换

  2. YouTube 字幕 Caption track视频自带字幕轨

    1 · 00:00:00,000 --> 00:00:03,000

    agrees with the speech与语音一致

  3. Whisper 语音转录 Speech真实语音

    speech check window ±1.5 s语音核验窗口 ±1.5 秒

    agrees with the captions与字幕轨一致

Speech and captions outvote the frame → their version replaces the OCR text.语音与字幕轨一致、与画面不同 → 以二者的共识替换 OCR 结果。

three-source-adjudication

One line you can trust. is adopted at 94%, the minimum for a two-to-one vote.一句可信的字幕:被采用,可信度 94%,这是二比一裁决的下限。

One line, decided · synthetic test case单句裁决示意 · 合成测试用例

How every line is decided每一句是怎么定下来的

  1. Frame text is complete and consistent画面字幕完整、前后一致

    Used as is, with the caption track kept alongside for reference.直接采用,字幕轨附在旁边作参考。

    burned-caption-ocr
  2. Frame text is suspicious or missing画面字幕可疑,或者干脆没有

    Speech recognition runs on just those parts.只对这些片段跑语音识别。

    whisper-verification
  3. Two against one两方对一方

    The two that agree win, at 94% to 99% confidence.以一致的两方为准,可信度最低记 94%,最高 99%。

    three-source-adjudication
  4. No two agree三方各说各的

    The frame text stays but is marked for review, with the other sources’ versions listed as candidates (候选字幕 · N); any line under 90% also gets an amber stripe. Pick a candidate, or fix it yourself.先保留画面字幕并标记待复核,另外两方的说法列为候选(「候选字幕 · N」);可信度低于 90% 的句子还会加一道琥珀色竖条。由你挑一个候选,或者手动改。

    needsReviewuser-corrected

Not every video has all three: no caption track → speech carries it; no burned-in text → captions are spot-checked against sampled speech.不是每个视频都要三路齐上:没有字幕轨,就靠语音;画面里没有硬字幕,就抽几段语音去核对字幕轨。

When nobody can settle a line, the app says so, and you have the last word.哪一句三方都定不下来,应用会直说,最后由你拍板。

文脈BUNMYAKU智能混合字幕
0:12

不用着急也没关系哦。

OCR 画面字幕 · 61%

候选字幕 · 1

当前字幕来源:OCR 画面字幕

候选来源:Whisper 语音转录 不用着急也没关系哦。 采用这个版本
手动修正整句讲解

An amber stripe marks a line below 90%. Swap in the other source’s version with one click (采用这个版本), or fix it yourself with 手动修正. The underlined character is the misread one.琥珀色竖条表示这一句可信度低于 90%。另一位“证人”给出的版本点「采用这个版本」就能换上;也可以点「手动修正」自己改。带下划线的就是认错的那个字。

Reconstruction · sample content界面示意 · 示例内容

The learning loop学习闭环

One line.
Ask away.
一句话,问到懂为止。

Highlight a word, or the whole line.
The tutor reads it in context and gives you
the reading, meaning, nuance and an example.
Still fuzzy? Keep asking.
Then the thread is summed up in your own note.
高亮一个词,或者整句。
AI 老师结合前后文讲清读音、含义、语感和例句;
不懂就接着问,最后把整段对话总结成属于你的学习笔记。

Walkthrough — pick a step to play it演示步骤,点任意一步单独播放

5 / 5Save: explanation, thread and note become one card, filed in the collection with its video and the moment it came from (0:16).收藏:讲解、对话和笔记合成一张卡片,连同视频和时间点(0:16)一起存进学习记录。

文脈BUNMYAKU · 从语境学日语 学习台收藏3 翻译与讲解English
02
东京散步:在咖啡店听到的自然日语

拖动高亮任意词组或句子,也可以使用整句讲解

已收藏到学习记录
字幕0:16
  1. 0:12

    今日はちょっと早起きして、近所の喫茶店に来ています。

    I got up a little early today and came to a café near my place.今天稍微早起了一点,来到了附近的咖啡店。
  2. 0:16

    ここは落ち着いた雰囲気で、つい長居しちゃうんですよね。

    It's so calm in here that I always end up staying longer than I meant to.这里氛围很安静,让人不知不觉就会待很久。
    讲解选中内容「つい長居しちゃう 手动修正 整句讲解
  3. 0:21

    せっかくなので、今日は気になっていたプリンも頼んでみました。

    Since I'm here anyway, I finally ordered the pudding I'd been curious about.难得来一次,今天也点了之前一直很想尝尝的布丁。
03
AI 语境讲解

已选择「つい長居しちゃう

つい ながい しちゃう

adverb + verb (casual contraction)副词+动词(口语缩约)

end up staying longer than you meant to不知不觉就待久了

在这句话里

The café is so comfortable that the speaker loses track of time and stays a long while.说话人因为咖啡店气氛舒适,常常没有意识到时间就坐了很久。

语感

A light "I didn't plan to, it just happened": a little rueful, a little warm.带有‘本来没打算这样,但自然就发生了’的轻微无奈或亲切感。

面白くて、つい最後まで読んじゃった。

It was so good I ended up reading to the very end.太有意思了,不知不觉就读到了最后。
视频语境

今日はちょっと早起きして、近所の喫茶店に来ています。

ここは落ち着いた雰囲気で、つい長居しちゃうんですよね。

せっかくなので、今日は気になっていたプリンも頼んでみました。

学习标签
口语N3缩约表达
使用场景
日常会话咖啡店表达感受
+ 收藏讲解、对话和笔记
继续追问

围绕这个词句、语感或语法继续问 AI

2 轮

Why しちゃう here?这里为什么用「しちゃう」?

AI

ちゃう is the casual contraction of てしまう. Besides marking the action as done, it adds "couldn't help it, it just happened". 長居します is still correct, but loses that unplanned, slightly rueful feel.这里的「ちゃう」是「てしまう」的口语缩约。它除了表示动作完成,还常带有‘不由得、结果就……’的语感;换成「長居します」虽然语法正确,但会少掉这种自然发生和轻微无奈的感觉。

How would I say it formally?正式场合怎么说?

AI

You can say つい長居してしまいます.可以说「つい長居してしまいます」。

例如:这里为什么不能用「てしまいます」? 发送追问
重新总结笔记
NOTEThe casual, natural feel of つい〜ちゃうつい〜ちゃう」的自然口语语感
  • つい = without meaning to; can't help itつい=不知不觉、忍不住
  • 〜ちゃう = casual contraction of 〜てしまう〜ちゃう〜てしまう的口语缩约
  • In formal settings, use 〜てしまいます instead正式场合可改用「〜てしまいます
0:16 · 0 次练习

つい長居しちゃう

つい ながい しちゃう

end up staying longer than you meant to不知不觉就待久了

学习笔记 · 2 轮追问The casual, natural feel of つい〜ちゃうつい〜ちゃう」的自然口语语感
来自视频东京散步 · 0:16 处回到出处

Reconstruction · sample content. The interface is shown as it ships, in Simplified Chinese; translations and explanations come in six languages.界面示意 · 示例内容。界面为产品实际样式(简体中文);译文和讲解可在六种语言之间切换。

Explanation language (demo)讲解语言(示意)

Switches the subtitle translations and the explanation card, as the app's 翻译与讲解 setting does; the sample thread stays in the page language.和产品里的“翻译与讲解”设置一样,切换字幕译文和讲解卡;示例对话保持页面语言。

Try it on a real video · Log in →在真正的工具里走一遍 · 登录 →

Review复习

Today’s “aha,”
saved for tomorrow.
今天的“原来如此”明天还在

Every card keeps the line, your note
and the exact second it came from.
Filter by JLPT level, scene, kind or status,
then drill with flash cards or dictation.
每张卡片都带着原句、你的笔记和视频里的那一秒。按 JLPT、场景、类型、状态筛选,再用闪卡或听写来练。

文脈BUNMYAKU 学习台收藏 6
收藏 · 你的个人语言资料库

学习记录

每条解释都保留原视频、时间点和使用场景,方便回到真实语境。

JLPT(日语)
场景scene
类型kind
状态status
当前筛选:6 听写练习 · 6 题 卡片练习 · 6
0:16 · 3 次练习

つい長居しちゃう

つい ながい しちゃう

不知不觉就待久了

N3日常会话表达感受短语学习中
回到出处 ↩
1:05 · 0 次练习

焦らなくてもいいよ

あせらなくても いいよ

不用着急哦

N3影视对白表达感受句子新收藏
回到出处 ↩
0:03 · 5 次练习

今日は雨です

きょうは あめです

今天下雨

N5日常会话句子已掌握
回到出处 ↩
0:16 · 1 次练习

落ち着いた雰囲気

おちついた ふんいき

安静、让人放松的氛围

N3餐饮短语新收藏
回到出处 ↩
0:21 · 2 次练习

せっかく

せっかく

难得、特意

N2旅行餐饮学习中
回到出处 ↩
4:18 · 4 次练习

また明日

また あした

明天见

未标注影视对白短语已掌握
回到出处 ↩
Reconstruction · sample content — the collection page, “学习记录”界面示意 · 示例内容 —— 收藏页“学习记录”

Flash card卡片练习recall first, then turn it over先回想,再翻面核对

正面 · 1 / 6

つい ながい しちゃう

学习中口语N3缩约表达日常会话咖啡店表达感受
来自视频东京散步0:16 处回到出处 ↩
背面
含义meaning
不知不觉就待久了
基本形dictionary form
長居する
词性part of speech
副词+动词(口语缩约)
语法grammar
  • つい〜てしまう
  • 〜ちゃう〜てしまう的口语形式)
语感与细微差别nuance
本来没打算,却自然就这样了——带点无奈,也很亲切。
学习笔记 · 2 轮追问note · 2 follow-ups
つい〜ちゃう」的自然口语语感正式场合可改用「〜てしまいます」。

Dictation听写练习type the whole line you hear; a rule grades it写下听到的整句,再由规则判定

原视频听写1 / 6
0:16 – 0:21 Sample · no audio on this page示例 · 本页不播放音频
No Japanese keyboard? Try one:没有日文输入法?点一个试试:

答案

卡片读音つい ながい しちゃう

规则判定:部分正确
Reconstruction · sample content — flash card and dictation, with the product's real grading rule界面示意 · 示例内容 —— 闪卡与听写,判定规则与产品一致
  1. 1Exact match with the whole source line after normalizing (NFKC, lowercase, spaces and punctuation removed)归一化后(NFKC、小写、去掉空格和标点)与整句原文完全一致正确
  2. 2Otherwise, matches the card's saved reading (katakana folded to hiragana)否则,与卡片保存的读音一致(片假名按平假名比对)部分正确
  3. 3Anything else其余情况需复习

You typed the card's reading , not the whole line as written — so the rule says partial, and you rated yourself “unsure”.你写的是卡片读音 ,不是整句原文——所以规则判定为部分正确,你自评为“模糊”。

Engineering notes工程笔记

Not a wrapper.
A measured pipeline.
不是调一个接口,
一条量过的管线

The hard part isn’t the chat. It’s getting a line you can trust out of a noisy video, fast and cheap: plain code wherever code can decide, a small model for the bulk of the reading, and a large model only for the steps that need real judgment.难的不是聊天,而是又快又省地从嘈杂的视频里拿到一句可信的字幕:能用确定性代码判断的就不用模型,大量的读取交给小模型,大模型只留给真正需要判断的环节。

01Model routing模型分工

Each job goes to the cheapest tool that can do it;
a model is called only where code can't decide.
每件事都交给能胜任的最便宜的工具;
代码判断不了的地方,才轮到模型。

  1. Read the caption track读取字幕轨

    Parser解析器code · no model代码 · 不用模型

    It’s already there, usually proofread once by whoever published it, and the cheapest thing to fetch — so it always gets a say.字幕轨是现成的,通常已经有人校对过一遍,抓取也最省事——所以它一定是判断依据之一。

  2. Locate the subtitles, pick the frames worth reading找到字幕,挑出值得读的帧

    Probe frames · DeepSeek vision · OpenCV change gate探测抽帧 · DeepSeek 视觉 · OpenCV 变化闸门a few probe frames read the layout; the gate watches every candidate frame少量探测帧判断版面,闸门盯住每一帧候选code + a few vision calls代码 + 少量视觉调用

    Probe frames show which language the burned-in subtitles are in and where they sit, so OCR reads only the subtitle band, and only when it changes — faster and far cheaper.探测抽帧先弄清画面字幕是什么语言、在画面什么位置;OCR 就只读字幕那一条,而且只在它变化时才读——更快,也省得多。

  3. Read burned-in subtitle text识别画面里的硬字幕

    PP-OCRv5 mobile · CPU · Cloud Runbatched · highly concurrent · scales with demand批量处理 · 高并发 · 按需扩缩small model小模型

    A small model on plain CPUs costs little per frame and runs fast in parallel; it is billed only while it runs and scales to zero between videos.小模型跑在普通 CPU 上,每帧成本很低,多路并发速度快;只在运行时计费,没有视频时缩到零。

  4. Settle disputed lines裁决有争议的台词

    Whisper large-v3-turbo · Workers AIonly the spans that are disputed or not covered只处理有争议或没覆盖到的片段speech model语音模型

    When the frame text is usable, speech is asked only about the spans in doubt, not the whole video.画面字幕能用时,只拿有疑问的片段去问语音,而不是整段重听。

  5. Translate, explain, follow up, summarize翻译、讲解、追问、总结

    deepseek-flashthinking off · JSON mode关闭思考 · JSON 模式large model大模型

    Every line needs real language understanding here, so this is the one step where every line goes to the large model.这一步每句都要真正理解语言,所以只有这里每一句都交给大模型。

02OCR funnelOCR 漏斗

A candidate frame every 200 ms,
and only about one in four goes to OCR.
The catch: the change gate must never miss a subtitle change,
so at least one frame goes through every 750 ms.
每 200 毫秒一帧候选,最后只有约四分之一送去 OCR;
代价是变化闸门绝不能漏掉一次字幕变化,所以每隔 750 毫秒必须强制取一帧。

Illustrative · representative tiles, not every frame示意 · 代表性图块,并非逐帧
Illustrative tile field, not one tile per real frame: four shard lanes of candidate frames; a change gate sweeps across them; about one frame in four lights up and is cropped to its subtitle band, which is sent into trays of 10 for OCR; the rest are dimmed.示意图,图块并非逐帧对应:四条分片轨道上排着候选帧,变化闸门扫过,约四分之一的帧被点亮并裁成字幕带,按每批 10 张装进托盘送去 OCR;其余变暗。
  • shard lanes, decoded in parallel on 4 vCPU分片轨道,4 核并行解码
  • change gate, one candidate every 200 ms变化闸门,每 200 毫秒一帧候选
  • content_change
  • forced_gap (750 ms)(750 毫秒)
  • subtitle band (ROI) sent to OCR送去 OCR 的字幕带(ROI)
  • skipped by the gate被闸门跳过

The tiles are illustrative: a representative sample laid out in 4 shard lanes, not every frame; which tiles light up follows the real gate rule. The numbers are real, from the first complete run (234.7 s) on the 7:34 test video: ≈2,270 = 7:34 ÷ 200 ms. (That run used 5 shards; today's pipeline uses 4.) Frame sizes compare a cropped scan frame with an uncropped probe frame.图块只是示意:按 4 个分片排列的代表性样本,并非每一帧都画了出来;哪些图块入选,按的是真实的闸门规则。数字是真实的,来自 7 分 34 秒测试视频上的第一次完整运行(234.7 秒):约 2,270 = 7 分 34 秒 ÷ 200 毫秒。(那次运行用了 5 个分片,现在的管线用 4 个。)每帧大小对比的是裁剪后的扫描帧和未裁剪的探测帧。

  1. 01 · Decode01 · 解码 ≈2,270 candidate frames
    (one every 200 ms)
    个候选帧
    (每 200 毫秒一帧)
  2. 02 · Change gate02 · 变化闸门 596 selected · ≈1 in 4
    on a content change
    or the 750 ms forced gap
    帧入选 · 约每 4 帧 1 帧
    字幕有变化,或距上一帧满 750 毫秒
  3. 03 · Crop in decode, encode once03 · 解码时裁剪,只编码一次 12.6KB per cropped frame, vs 67.5 KB uncropped · −81%每帧(裁剪后),不裁是 67.5 KB · −81%
  4. 04 · Batch and send04 · 分批发送 batches of up to 10 · 20 requests in flight每批最多 10 张 · 同时 20 个请求 PP-OCRv5 mobile · Cloud Run · 0→20 instances实例 0→20

03Profiling notebook性能排查笔记

Processing time came down from 234.7 s,
one measured hypothesis at a time:
149.3 s at release, 123.5 s at best.
一次 234.7 秒的视频处理进度,靠一条条实测过的假设,
优化到了发布时的 149.3 秒(最好的一次 123.5 秒)。

Pipeline stages · select a hypothesis to see where it acted管线各环节 · 点选一条假设,看它作用在哪一环

  1. decode解码
  2. gate闸门
  3. crop裁剪
  4. encode编码
  5. upload上传
  6. batch分批
  7. OCR
  8. merge合并
  9. translate翻译

1.6×at release发布版 · 149.3 s

1.9×best observed观测最好 · 123.5 s

Select a hypothesis in the log to draw its measured result on this same scale.在右侧日志里点一条假设,它的实测结果会画在同一把尺子上。

Total run time on the same 7:34 video: 234.7 s first complete run, 149.3 s at v1 release (1.6× faster), 123.5 s best observed (1.9×). The media-ocr step fell from 141.9 to 94.2 to 82.8 s. The 60 s target is not met.同一个 7 分 34 秒视频的总耗时:第一次完整运行 234.7 秒,v1 发布版 149.3 秒(快 1.6×),观测最好 123.5 秒(1.9×)。media-ocr 这一步从 141.9 秒降到 94.2 秒、再到 82.8 秒。60 秒目标尚未达到。
Run time by run, seconds各次运行耗时(秒)
Run运行Total总耗时media-ocr
First complete run第一次完整运行234.7141.9
v1 release runv1 发布版运行149.394.2
Best observed观测最好123.582.8
Same 7:34 video for all three. Single runs; same-config spread ≈16 s, so 149.3 s is a conservative release figure and 123.5 s a best case.三次都是同一个 7 分 34 秒的视频。都是单次运行;同一配置反复跑,波动约 16 秒,所以 149.3 秒是偏保守的发布版数字,123.5 秒是最好情况。

The 60 s target isn't met yet — it's the next milestone.60 秒的目标还没达到,这是下一个里程碑。

04Batch-size benchmark批大小基准测试

Measured on cold starts — the case a scale-to-zero service actually pays for — batches of 10 were both the cheapest per video and the fastest of the four sizes.按冷启动来测(能缩到零的服务,付的就是这种情况),每批 10 张的单视频成本最低,吞吐也是四档里最高的。

Cold cost per video · USD冷启动 · 每个视频的成本(美元)

43% cold cost at b=10 vs b=1b=10 的冷启动成本比 b=1 低 43%

Cold throughput · images/s冷启动吞吐 · 张/秒

11.95 images/s at b=10, the highest of the fourb=10 每秒 11.95 张,四档中最高

Cloud Run batch-size benchmark, cold start, video B (397 images)Cloud Run 批大小基准,冷启动,视频 B(397 张)
Batch size批大小Cold cost per video (USD)冷启动单视频成本(美元)Cold images/s冷启动张/秒
10.0130410.89
60.0113010.25
80.0107310.86
100.0074711.95

How it was built怎么做出来的

One builder,
thirteen days.
一个人,十三天

From a local tool for my own study
to a multi-user cloud product with accounts,
private data and a benchmarked video pipeline:
187 commits, September 11–23, 2026.
从给自己学习用的本地小工具,到有账号、私人数据
和经过基准测试的视频管线的多用户云端产品
2026 年 9 月 11 日至 23 日,187 次提交。

Commits per day · Sep 11–23, 2026每日提交数 · 2026 年 9 月 11–23 日

Busiest day Sep 2064 commits: CI green · email verification最忙的一天是 9 月 20 日64 次提交——CI 转绿 · 邮箱验证

Bar chart of commits per day from September 11 to 23, 2026. The busiest day was September 20, with 64 commits; 187 commits in total over 11 active days; no commits on September 15 and 16.2026 年 9 月 11 日至 23 日每日提交数柱状图。最忙的一天是 9 月 20 日,64 次提交;11 个有提交的日子共 187 次;9 月 15、16 日没有提交。

  1. 1MVP — local, single userMVP:本地、单用户
  2. 12Cloudflare Whisper接入 Cloudflare Whisper
  3. 5
  4. 10Accounts + multi-tenant data账号系统与多租户数据
  5. 0
  6. 0
  7. 9Container staging容器预发环境
  8. 37CI + end-to-end testsCI 与端到端测试
  9. 2
  10. 64CI green · email verificationCI 转绿 · 邮箱验证
  11. 1Cloud Run benchmarkCloud Run 基准测试
  12. 28Streaming OCR流式 OCR
  13. 18v1 freeze + Koreanv1 冻结 · 新增韩语
Source: git log, all branches, author dates in JST · as of Sep 23, 2026来源:git log(全部分支,按东京时间的提交日期统计)· 截至 2026 年 9 月 23 日
commits次提交
187
active days out of thirteen十三天里有提交的天数
11/ 13
tests passing at v1个测试,v1 时全部通过
622
lines of code, excluding tests行代码(不含测试)
32,600
database migrations次数据库迁移
19

Method做法

I designed the architecture, the execution plan, the model-routing policy and every acceptance gate. Codex coding agents wrote much of the implementation under that governance, with independent review and a written evidence trail.

架构、执行计划、模型路由策略和每一道验收关卡由我设计;大量实现由 Codex 编码代理在这套治理下完成,并经过独立审查与基于证据的状态追踪。

Stack技术栈

Edge & jobs边缘与任务
Cloudflare Workers · Workflows · Queues
Media媒体处理
Cloudflare Containers (4 vCPU) · Google Cloud Run (PP-OCRv5 mobile)
Data数据
Cloudflare D1 · R2
Models模型
Workers AI (Whisper large-v3-turbo) · DeepSeek
Accounts账号
Better Auth

Start learning开始学习

Learn the lines
you already love.
下一句,
你喜欢的开始。

Log in to Bunmyaku登录文脈

New here?还没有账号? Create an account注册一个

Your subtitle fixes, notes and cards are yours alone,
and they follow you to every device.
你改过的字幕、记下的笔记和存下的卡片只属于你的账号,
而且可以跨设备同步。