映知 Cuefolio is a local Manifest V3 extension for Chrome and Edge. It works with standard public YouTube watch?v= pages that expose native captions, turning supported videos into timestamped transcripts, English-Chinese translations, evidence-based bilingual summaries, Obsidian notes, and shareable editorial cards. The extension does not transcribe audio. The user interface is Simplified Chinese only.
- Evidence-based bilingual summaries: for English-source videos, the central thesis, background, substantive cases, methods, chapter navigation, and source quotes stay tied to transcript timestamps.
- English and Chinese by default: on the supported English-source path, transcript rows, titles, overview sections, and key quotes preserve source English with a Simplified Chinese translation.
- Cost-controlled AI modes: DeepSeek Saving mode and OpenAI Performance mode are explicit choices. Cuefolio never silently switches providers, and a complete cache hit makes no generation request.
- Local Obsidian workflow: a loopback-only Companion prepares a Write Manifest for review before the user confirms any vault write. Full transcripts are excluded from embeddings and candidate-review prompts.
- Editorial social cards: notes and key quotes can become blue-and-white 1080 x 1440 PNG cards, with optional processed video covers and automatic pagination for long text.
- Stable side-panel sessions: settings open as an overlay, and switching tabs does not discard the active video, overview, translations, or reading position.
Cuefolio is a modified distribution of Zara Zhang's YouTube Digest, based on upstream commit d03e1f61e017b032159ffd1821cac6e7693ce0c7. It preserves Zara's MIT License and attribution.
| Area | YouTube Digest 1.1.5 upstream | Cuefolio 1.3.2 |
|---|---|---|
| Interface | English product UI with bilingual settings | Simplified Chinese product UI for Chrome and Edge |
| Overview | Chapters and key quotes | Timestamped thesis, background, readable cases, methods, chapters, and bilingual key quotes |
| AI routing | DeepSeek content generation | Explicit DeepSeek Saving and OpenAI Performance modes with isolated keys and caches |
| Obsidian | No local transfer workflow | Local Companion, one-time pairing, semantic candidates, Write Manifest, user confirmation, and write verification |
| Sharing | Notes remain inside the extension | Blue-and-white editorial PNG cards with long-text pagination |
| Session behavior | Basic side-panel lifecycle | In-panel settings and explicit source-video binding across tab changes |
See MODIFICATIONS.md for the detailed change history and THIRD_PARTY_NOTICES.md for the ownership boundary.
- Cuefolio currently targets standard public YouTube
watch?v=pages with native captions. Shorts, live streams, private or restricted videos, and videos without native captions may not work. - It retrieves existing captions through Supadata
mode=native; it does not transcribe audio or generate missing subtitles. - The evidence-based English-Chinese overview and the source quote label are defined for English-source videos. Other source languages are not claimed to preserve original-language quotations correctly in this release.
- This is a local unpacked extension, not a Chrome Web Store, Edge Add-ons, or Obsidian community-marketplace release, and it does not update automatically.
- DeepSeek long overviews use separate response-header, first-content, body-progress, and hard time limits. A failure never retries automatically and never switches to OpenAI automatically; only an explicit retry or mode change starts a new request.
- Settings open in a full-height overlay inside the existing side panel. Opening, closing, and focusing the settings overlay makes no AI request and consumes no provider token. The digest section, bilingual mode, scroll position, overview, translation queue, and video identity remain mounted.
- Switching to a non-YouTube tab pauses following without closing the digest. A different YouTube tab does not replace the source until the user chooses 整理当前视频. The standalone settings fallback opens immediately after the bound source tab.
- Obsidian pairing uses a three-step Simplified Chinese guide and bounded error categories. Chrome and Edge have different extension origins and require separate one-time pairing codes.
- Saving mode (节省模式): DeepSeek V4 Flash (
deepseek-v4-flash) handles content generation and bounded Obsidian candidate review with reasoning set tonone. - Performance mode (性能模式): OpenAI GPT-5.6 Terra (
gpt-5.6-terra) handles the same work with reasoning set tonone; supported Responses requests includestore:false. - Full Obsidian transfer in either mode: OpenAI
text-embedding-3-smallperforms vector matching after 准备转存. Only compact candidate text and eligible card descriptors are embedded, never the full transcript. This declared route is not content-provider fallback. - Overview-only transfer (仅转存总览): uses no embeddings, no AI candidate review, and creates no formal-card candidates.
If content generation fails, the extension does not silently switch to the other content provider. The user must explicitly change modes and retry. This prevents surprise billing and undeclared data transfer.
OpenAI store:false disables Responses application-state storage; it is not a zero-retention guarantee. DeepSeek's Responses compatibility and any accepted store:false field likewise must not be treated as a zero-retention guarantee. Provider account, abuse-monitoring, and legal-retention policies remain outside this extension's control.
The Overview is rebuilt around the central thesis, background and problem, substantive cases, methods, chapter navigation, and key quotes. Thesis and background claims carry transcript timestamps; chapters remain navigation rather than a substitute for synthesis.
- The extension selects only 0-4 genuine cases. A substantive case normally keeps 2-4 readable paragraphs covering participants, trigger, action sequence, turning points, outcome, qualifications, and the speaker's reason for telling it. It must not collapse the story into one takeaway or invent missing causality or facts.
- A method must be a process the speaker actually explains. Its purpose, ordered steps, applicability, and limitations remain complete and bilingual, including in the Obsidian source overview.
- English synthesis is drafted from the English transcript and followed by a faithful Simplified Chinese translation. Only key quotes are labelled as source wording.
- One complete cache miss makes one request to the selected content provider for both synthesis and translation. A complete cache hit makes no generation request.
- Title, channel, description, and transcript are isolated as untrusted
SOURCE_DATA_JSON. The system prompt instructs the model not to execute or follow instructions inside that source data, while the strict output schema and downstream validation add further boundaries. - A strictly validated
VideoPackageV2transfers the thesis, background, cases, and methods to the Companion. The full long-form transcript is excluded from embedding and candidate-review prompts.
- The overview places English above its Simplified Chinese translation. The video title and key quotes preserve source English; the central thesis, background, cases, methods, and chapter summaries are transcript-grounded English synthesis rather than verbatim quotations.
- A validated bilingual overview is kept in a persistent 2 MiB LRU cache. A cache hit makes no AI provider request. Its identity includes provider, model, reasoning mode, video, title and transcript fingerprint, schema, and prompt version.
- Regenerate warns that continuing consumes the active provider's API usage. Cancelling sends no request.
- Saving a key quote as a quote note makes no additional AI provider request.
Download cuefolio-1.3.2.zip from the latest GitHub Release. Do not use GitHub's automatically generated Source code archives as the browser install package.
- Unzip
cuefolio-1.3.2.zipinto a permanent folder. - Confirm that
manifest.json,background.js, andsidepanel.htmlare directly inside that folder. - Keep the folder in place. Moving or deleting it breaks an unpacked installation until it is loaded again.
Chrome:
- Open
chrome://extensions. - Turn on Developer mode.
- Choose Load unpacked.
- Select the unzipped folder that directly contains
manifest.json. - Open a YouTube video and choose 整理 to open Cuefolio.
Microsoft Edge:
- Open
edge://extensions. - Turn on Developer mode.
- Choose Load unpacked.
- Select the same unzipped folder.
- Open a YouTube video and choose 整理 to open Cuefolio.
After loading the extension, open 设置 and configure:
- A Supadata API key for native YouTube transcript retrieval.
- A DeepSeek API key for Saving mode, or an OpenAI API key for Performance mode.
- An OpenAI API key only when full Obsidian vector matching is required. 仅转存总览 does not use embeddings.
The Companion is optional and is not available through the Obsidian community marketplace. The 1.3.2 Companion supports and has been verified only on macOS; Windows and Linux are outside this release's support boundary. A manually installed third-party plugin can read and write the active vault, so download it only from this repository's Release and back up the vault first.
- Download
cuefolio-obsidian-companion-1.3.2.zipfrom the latest GitHub Release. - In Finder, open the vault root that contains your notes. Press
Command + Shift + .to show the hidden.obsidianfolder. Create.obsidian/pluginsifpluginsdoes not exist. - Create
.obsidian/plugins/youtube-digest-bridge, then unzip the complete Companion package into it. The final path must be<vault>/.obsidian/plugins/youtube-digest-bridge/manifest.json;main.js,styles.css, andsrcmust be at that same level, with no extra wrapper folder. - Restart or reload Obsidian. Open Settings -> Community plugins. If Restricted Mode is still active, enable community plugins only after accepting that third-party plugins can access the vault, then enable 映知 Cuefolio 本地伴侣.
- Keep Obsidian open. Copy 当前扩展来源 from Cuefolio Settings into the Companion settings, generate the eight-digit one-time pairing code, then enter the shown port and code back in Cuefolio and choose 连接.
Chrome and Edge use different extension origins, so pair each browser separately. Detailed install, upgrade, uninstall, and recovery notes are in the online Companion guide; the same guide is included in the Companion ZIP.
Create your own credentials at the official provider pages and enter them yourself in extension Settings:
- Supadata sign-up
- DeepSeek API keys
- DeepSeek API quick start
- DeepSeek models and pricing
- DeepSeek privacy policy
- OpenAI API keys
- OpenAI API quickstart
- OpenAI GPT-5.6 Terra
- OpenAI pricing and embeddings
- OpenAI API data controls
- OpenAI usage policies
These links identify the intended official references, not fixed price quotes. Model availability, pricing, terms, and provider policies may change; check the current pages before use.
Never send keys in chat, commit them, or place them in source files. API key fields on the Settings page are masked by default, but screenshots of key-related interfaces or developer tools may expose them; avoid capturing or sharing those views. Use dedicated provider projects and suitable budget or usage limits where available.
The DeepSeek API key and OpenAI API key are stored separately in the current browser profile's extension-local chrome.storage.local. This is not an encrypted password vault. Neither key is sent to the Obsidian Companion or vault, and the extension does not intentionally write them to source files, packages, logs, prompts, caches, or exported notes.
- Supadata receives a canonical YouTube video URL to retrieve its native transcript.
- In Saving mode, DeepSeek may receive the transcript, video metadata, selected text, or note context needed for content generation; bounded candidate review receives compact candidate context.
- In Performance mode, OpenAI may receive the equivalent content-generation or candidate-review inputs.
- During full Obsidian transfer in both modes, OpenAI embeddings receive only compact candidate text and eligible card descriptors.
- Obsidian transfer requests go only to the local Companion at
http://127.0.0.1:<port>after pairing. - The extension has no developer-operated relay server, analytics, telemetry, advertising, or remote scripts.
See PRIVACY.md and SECURITY.md for details.
Keep the Obsidian desktop app open. The full path remains 准备转存 -> inspect the Write Manifest -> 确认写入. Method and expression cards remain unselected by default pending human review.
If the OpenAI key needed for vector matching is absent, preparation stops before any provider request and offers 前往配置 or 仅转存总览. Overview-only transfer archives the source and prepares only the source-overview operation; it does not silently downgrade a full transfer.
The 1.3.2 release contract targets cuefolio-1.3.2.zip and cuefolio-obsidian-companion-1.3.2.zip. Packaging does not install the Companion, run browser QA, make live provider requests, or write to a formal vault. Those actions retain their separate verification and Write Manifest confirmation gates.
npm test
npm run check
npm run packageAutomated tests use temporary vaults plus mock DeepSeek and mock OpenAI adapters. They make no real DeepSeek or OpenAI provider request, consume no real provider tokens, and do not access the formal vault. Packaging uses strict browser and Companion allowlists and scans for credential-shaped content.
The upstream author and copyright holder is Zara Zhang, whose original MIT License remains in LICENSE. THIRD_PARTY_NOTICES.md records the exact upstream source and ownership boundary; MODIFICATIONS.md records the baseline, rebuilt release, and added features. Copyright (c) 2026 Marc Penn applies only to original code, Simplified Chinese translations, tests, and documentation added after the documented upstream baseline.