{"adoption": {"forks": 224, "observed_at": "2026-08-28T04:05:39.319465+00:00", "stars": 1808}, "canonical_url": "https://ross.abutalabs.com/products/video_note_generator", "card": {"archived": false, "artifact_type": "application", "description": "一键将视频转换为优质小红书笔记，自动优化内容和配图", "domain": ["social-media", "developer-tools", "media"], "enriched": true, "function": ["speech-recognition", "nlp", "llm-inference", "video-processing", "audio-processing", "http-server", "cli", "web-scraping", "image-processing"], "health_score": 50, "homepage": null, "language": "Python", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["whotto/Video_note_generator"], "name": "whotto/Video_note_generator", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2025-10-30T04:21:09+00:00", "repo": "whotto/Video_note_generator", "stars": 1808, "tags": ["xiaohongshu", "video-to-text", "whisper", "content-creation", "social-media-notes", "fastapi", "openrouter", "unsplash", "transcription", "batch-processing", "natural-language-processing", "automation", "web-server"], "topics": [], "urls": [], "use_cases": ["convert a video into a xiaohongshu note", "transcribe video audio to text with whisper", "batch generate social media posts from video urls", "turn a bilibili video into a blog article", "auto-generate titles and hashtags for short video content", "extract notes and key points from long videos", "repurpose video content for social media"], "what_it_is": "A Python tool that converts video URLs into polished Xiaohongshu (Little Red Book) notes and blog articles. It downloads videos, transcribes audio with Whisper, and uses LLMs via OpenRouter to generate optimized titles, content, tags, and Unsplash images, with a V2.0 FastAPI web interface.", "when_to_avoid": ["you need a no-API-key offline solution (it requires OpenRouter and Unsplash keys)", "you target platforms other than Xiaohongshu with different content styles", "you need production-grade reliability or a permissive license (no license is provided)"], "when_to_choose": ["you want to repurpose video or livestream content into Xiaohongshu notes or blog posts automatically", "you need batch processing of many video URLs with AI-optimized copywriting", "you want automatic transcription plus LLM-based content polishing in one pipeline"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/video_note_generator", "repo": "whotto/Video_note_generator", "role": "main", "score": 43}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.319465+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:21:24.801436+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae0d382f3825a890ae66b5a5952650f24659ffb3c213499b83cafcce78d48b4", "fetched_at": "2026-08-28T04:05:39.319465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whotto/Video_note_generator"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.319465+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:21:24.801436+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae0d382f3825a890ae66b5a5952650f24659ffb3c213499b83cafcce78d48b4", "fetched_at": "2026-08-28T04:05:39.319465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whotto/Video_note_generator"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:21:24.801436+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae0d382f3825a890ae66b5a5952650f24659ffb3c213499b83cafcce78d48b4", "fetched_at": "2026-08-28T04:05:39.319465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whotto/Video_note_generator"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.319465+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.319465+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.319465+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:21:24.801436+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae0d382f3825a890ae66b5a5952650f24659ffb3c213499b83cafcce78d48b4", "fetched_at": "2026-08-28T04:05:39.319465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whotto/Video_note_generator"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.319465+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.319465+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:21:24.801436+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae0d382f3825a890ae66b5a5952650f24659ffb3c213499b83cafcce78d48b4", "fetched_at": "2026-08-28T04:05:39.319465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whotto/Video_note_generator"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.319465+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.319465+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.319465+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:21:24.801436+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae0d382f3825a890ae66b5a5952650f24659ffb3c213499b83cafcce78d48b4", "fetched_at": "2026-08-28T04:05:39.319465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whotto/Video_note_generator"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.319465+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.319465+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:21:24.801436+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae0d382f3825a890ae66b5a5952650f24659ffb3c213499b83cafcce78d48b4", "fetched_at": "2026-08-28T04:05:39.319465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whotto/Video_note_generator"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:21:24.801436+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae0d382f3825a890ae66b5a5952650f24659ffb3c213499b83cafcce78d48b4", "fetched_at": "2026-08-28T04:05:39.319465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whotto/Video_note_generator"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:21:24.801436+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae0d382f3825a890ae66b5a5952650f24659ffb3c213499b83cafcce78d48b4", "fetched_at": "2026-08-28T04:05:39.319465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whotto/Video_note_generator"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:21:24.801436+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae0d382f3825a890ae66b5a5952650f24659ffb3c213499b83cafcce78d48b4", "fetched_at": "2026-08-28T04:05:39.319465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/whotto/Video_note_generator"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 49, "longevity": 45, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 630, "days_push": 307, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 43, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}