VidkNot
VidkNot turns video links into structured knowledge notes. It downloads audio, transcribes speech, generates Markdown notes, and saves them to Obsidian, Feishu, Notion, or Yuque.
| English | 中文 |
Use Cases
- Convert courses, interviews, podcasts, and industry videos into searchable notes
- Save useful short-video content into a personal knowledge base
- Expose video-to-note capability to agents through MCP
- Reduce transcription mistakes with dual-ASR cross-validation
Supported Platforms
| Platform | Type | Status |
|---|---|---|
| YouTube, Vimeo | Long-form video | ✅ Stable via yt-dlp |
| Bilibili | Long-form video | ✅ Stable with subtitle/danmaku |
| Douyin (TikTok China) | Short video | ✅ Cookie-based direct fetch + 4-layer fallback |
| TikTok (International) | Short video | ✅ Stable via yt-dlp |
| Twitter / X | Short video | ✅ Stable via yt-dlp |
| Instagram (Reels) | Short video | ✅ Stable via yt-dlp |
| WeChat Channels (视频号) | Short video | ✅ |
| Xiaohongshu (Image notes) | Image gallery | ✅ 4 bugs fixed in v0.3.3 |
| Xiaohongshu (Video notes) | Short video | ✅ Direct-link extraction from __INITIAL_STATE__ |
| Kuaishou, Weibo | Short video | ⚠️ Framework ready, depends on yt-dlp support |
| Any yt-dlp-supported site | Mixed | ✅ GenericPlatform fallback |
See COOKIE_GUIDE.md for the full capability matrix.
Capabilities
| Capability | Description |
|---|---|
| Video parsing and download | 11 platforms + generic yt-dlp fallback, 4-layer fallback for Douyin |
| Dual-ASR transcription | SiliconFlow SenseVoice + local faster-whisper correction, enabled by default |
| Structured notes | Generates topic, summary, key points, details, quotes, terms, and full transcript |
| Storage targets | Obsidian, Feishu, Notion, Yuque, or Markdown-only output |
| Agent integration | CLI, FastAPI, MCP, and Python API |
Installation
The current GitHub release is v0.3.3. Install from GitHub:
pip install "vidknot @ git+https://github.com/suonian/vidknot.git@v0.3.3"
For development:
git clone https://github.com/suonian/vidknot.git
cd vidknot
pip install -e ".[all]"
FFmpeg must be available locally:
ffmpeg -version
Configuration
Copy .env.example to .env and configure the keys you need:
SILICONFLOW_API_KEY=your_siliconflow_api_key
OPENAI_API_KEY=your_openai_compatible_api_key
# Optional: Feishu
FEISHU_APP_ID=your_feishu_app_id
FEISHU_APP_SECRET=your_feishu_app_secret
FEISHU_FOLDER_TOKEN=your_feishu_folder_token
# Optional: Obsidian
OBSIDIAN_VAULT_PATH=/path/to/obsidian/vault
# Optional: Notion
NOTION_TOKEN=your_notion_token
NOTION_PAGE_ID=your_notion_page_id
# Optional: Yuque
YUQUE_TOKEN=your_yuque_token
YUQUE_LOGIN=your_yuque_login
# Optional: Douyin cookie file
VIDKNOT_DOUYIN_COOKIE_FILE=/path/to/douyin-cookies.txt
Default settings live in config.yaml. Dual-ASR correction is enabled by default:
settings:
enable_correction: true
correction_version: v4
faster_whisper:
model: small
device: cpu
compute_type: int8
v4 is the conservative default. v3 makes broader corrections and carries a higher risk of changing valid text.
Usage
CLI:
# Generate a note and save to the default destination, Obsidian
python -m vidknot "https://v.douyin.com/example/"
# Print output only
python -m vidknot "https://v.douyin.com/example/" --destination none
# Save to Feishu
python -m vidknot "https://v.douyin.com/example/" --destination feishu
# Disable dual-ASR correction
python -m vidknot "https://v.douyin.com/example/" --no-correct
# Check local requirements
python -m vidknot --check-env
MCP:
python -m vidknot --mcp
FastAPI:
uvicorn vidknot.api:app --reload
Python API:
from vidknot import VideoKnowledgePipeline
pipeline = VideoKnowledgePipeline(destination="none")
result = pipeline.run("https://v.douyin.com/example/")
print(result["markdown"])
Output
VidkNot writes Markdown notes with:
- Video title, source URL, and processing metadata
- Topic and summary
- Structured key points and details
- Important quotes
- Terms and explanations
- Timestamped transcript
Documentation
| Document | Purpose |
|---|---|
| INSTALL.md | Local installation and environment checks |
| API_GUIDE.md | Third-party API configuration |
| COOKIE_GUIDE.md | Cookie setup and security |
| DEPENDENCIES.md | Direct dependencies |
| CHANGELOG.md | Version history |
Security And Compliance
- Do not commit
.env, cookie files, or API keys - Only process video content you are allowed to access and use
- Follow the terms of video platforms, cloud services, and note platforms
- Third-party service availability, pricing, and permissions are controlled by their providers
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vidknot-0.3.4.tar.gz.
File metadata
- Download URL: vidknot-0.3.4.tar.gz
- Upload date:
- Size: 107.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26e3c90631ea9ebcd1734a72c65357fdd144e72b2be7d5942c817f920bf8ae34
|
|
| MD5 |
4506f3ac812f8b69d34920e4a26b766c
|
|
| BLAKE2b-256 |
425f290380a6217f7d1c76e5c1cdb7d18dd406a317d6600f86253b840b6271c5
|
File details
Details for the file vidknot-0.3.4-py3-none-any.whl.
File metadata
- Download URL: vidknot-0.3.4-py3-none-any.whl
- Upload date:
- Size: 103.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1895c8a74ac31ece765bd27082ec440c46519b33b8437ddf229ccc740f3ae2a5
|
|
| MD5 |
f1c94aae04c47ca381e2975e9b3a35ba
|
|
| BLAKE2b-256 |
b34241d73f3a2e4928e46ed10548d86491a060f140bd3b988ca0f2b5c37143c0
|