| .github/workflows | ||
| src | ||
| test | ||
| .editorconfig | ||
| .gitignore | ||
| DEPLOY_AND_TEST.md | ||
| esbuild.config.mjs | ||
| LICENSE | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| RELEASE_CHECKLIST.md | ||
| styles.css | ||
| tsconfig.json | ||
| version-bump.mjs | ||
| versions.json | ||
StackTube for Obsidian
Sync your YouTube knowledge notes straight into your Obsidian vault.
StackTube monitors the YouTube channels you care about, runs each new video through an AI pipeline (Gemini + Claude), and turns it into a structured, searchable note. This plugin pulls those finished notes into your vault as plain Markdown — no lock‑in, you own the files.
Videos stream by. Knowledge should stack up.
What it does
- Pulls AI‑structured notes from the StackTube API into your vault on a schedule (or on demand).
- Writes clean Markdown with YAML frontmatter (
video_id,channel,title,video_url,published_at,language,tags) so Dataview, graph view, and search just work. - No duplicates — each video is written once, identified by
video_id. - Resumes where it left off after a restart.
- Ribbon icon & status bar — one‑click sync, at‑a‑glance last‑sync time and progress count.
- Sync on startup (optional) and an initial sync range (all / last 90 / last 30 days) for the very first pull.
- Your notes are ordinary
.mdfiles. Nothing is locked to this plugin.
This plugin is a thin client: all analysis happens on the StackTube server. The plugin only fetches and writes files.
Capture a frame (new in v0.2.0)
Notes with a 📷 "frame slot" (a deep-linked callout at a specific timestamp) get a Capture button in reading view. Clicking it opens a small player:
- Watch the moment — skip the ad, seek, or pause however you like.
- Press Capture this frame when the shot is right.
- Confirm the preview, then Save.
The image is saved to <folder>/attachments/<video_id>-<seconds>.jpg and embedded in the note right after the slot. Re‑capturing the same slot won't duplicate the embed.
Captured frames are saved to your vault only — never uploaded to our servers. Server sync of captured frames is planned for a later release (opt-in).
You can hide the Capture buttons from Settings → StackTube → Frame capture.
Requirements
- A StackTube account with at least one monitored channel and some analyzed videos.
- A StackTube API key (Settings → Obsidian → Create new key). The key is shown once — copy it somewhere safe.
Install
From the Community Plugins (recommended, once approved)
- Obsidian → Settings → Community plugins → Browse.
- Search “StackTube”, install, and enable.
Beta install via BRAT
- Install the BRAT community plugin.
- BRAT → Add beta plugin →
bije0327/obsidian-stacktube. - Enable StackTube in Community plugins.
Manual install
- Download
main.js,manifest.json, andstyles.cssfrom the latest release. - Copy them into
<your vault>/.obsidian/plugins/stacktube/. - Reload Obsidian and enable StackTube in Community plugins.
Setup
- Open Settings → StackTube.
- Paste your API key.
- (Optional) Adjust Server URL (default
https://stacktube.io), Notes folder (defaultStackTube), and Sync interval (minutes;0= manual only). - Click 연결 테스트 / Test connection — you should see a success notice with your plan.
- Run StackTube: Sync new notes from the command palette, or wait for the next automatic sync.
Notes land in <folder>/<channel>/<YYYY-MM-DD>-<title>.md.
Privacy & data ownership
The plugin talks only to the server URL you configure (StackTube by default), authenticated with your API key — to pull your analyzed notes. It writes plain Markdown files into your vault — readable, portable, and yours. Your API key is stored locally in the plugin's data.json and is never logged.
Captured frames are saved to your vault only — never uploaded to our servers.
Development
npm install
npm run dev # watch build
npm run build # type-check + production build → main.js
node --import tsx test/run.ts # (or bundle test/run.ts) E2E against a mock server
See test/run.ts for the end‑to‑end harness (pagination, dedup, watermark resume, frontmatter, filename safety).
License
MIT © unstackd