Skip to main content

VidkNot

VidkNot is a general research platform framework (v0.4.2) that extracts knowledge from 11+ self-media platforms (YouTube, Bilibili, Douyin, Xiaohongshu, Kuaishou, TikTok, Twitter/X, Instagram, WeChat Channels, Weibo, Vimeo). It downloads audio, transcribes speech via dual-ASR cross-validation, generates Markdown notes, and saves them to Obsidian, Feishu, Notion, or Yuque. v0.4.0 added pluggable storage backends, an async periodic scheduler, a batch runner, and a credential-leak-proof subscription source loader; v0.4.2 adds Standard Agent Skill compliance (SKILL.md + --demo mode + scripts/install.sh).

GitHub Release License Python Tests

| 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 (still active in v0.4.2)
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.4.2. Install from GitHub:

pip install "vidknot @ git+https://github.com/suonian/vidknot.git@v0.4.2"

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
docs/PRIVACY.md Privacy guarantees and credential scanning
docs/CONFIG.md Environment variable reference
docs/BACKENDS.md Backend storage configuration
docs/PLATFORMS.md Platform support matrix + TikHub endpoints
docs/DOUYIN_FALLBACK.md Douyin 4-layer fallback strategy
docs/EXPERIENCES.md Field-tested battle scars
docs/EXAMPLES.md Custom backend / task / batch / source recipes
scripts/codex_sample_curator.py Six-gate check for Codex-quality sample candidates

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

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vidknot-0.4.2.tar.gz (130.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vidknot-0.4.2-py3-none-any.whl (121.1 kB view details)

Uploaded Python 3

File details

Details for the file vidknot-0.4.2.tar.gz.

File metadata

  • Download URL: vidknot-0.4.2.tar.gz
  • Upload date:
  • Size: 130.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for vidknot-0.4.2.tar.gz
Algorithm Hash digest
SHA256 29ec445e77ac31bc3fe7432bf0f712df6189d6baedc3d00ee903cb637607c5ad
MD5 e9d3f56bb677090e8631dfef9aa13e26
BLAKE2b-256 3ca3f1a0dbd6eef6b9cfca95e7f04d609cdad832cfeecf87bb8902c79b395fd4

See more details on using hashes here.

File details

Details for the file vidknot-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: vidknot-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 121.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for vidknot-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a11d9bab5b0161ec0b7d62f84bf34300a7f744ef5885cc34a079265effde9228
MD5 a73147090f365b9527f14c0752a71051
BLAKE2b-256 9527d0aa126ab6db5fb3884427f55be0756551ac6c58d29a6ba89b3df2a46c94

See more details on using hashes here.

Release history Release notifications | RSS feed

0.5.0

2 files

This release

0.4.2 This release

2 files

0.4.1

2 files

0.4.0

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page