{"adoption": {"forks": 461, "observed_at": "2026-08-28T04:06:30.144981+00:00", "stars": 2246}, "canonical_url": "https://ross.abutalabs.com/products/weixinrecordeddemo", "card": {"archived": false, "artifact_type": "library", "description": "仿微信视频拍摄UI, 基于ffmpeg的视频录制编辑", "domain": ["android-tools", "media"], "enriched": true, "function": ["video-processing", "image-processing", "ui-components"], "health_score": 20, "homepage": null, "language": "Java", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Zhaoss/WeiXinRecordedDemo"], "name": "Zhaoss/WeiXinRecordedDemo", "platform": ["jvm"], "pushed_at": "2020-11-16T09:40:18+00:00", "repo": "Zhaoss/WeiXinRecordedDemo", "stars": 2246, "tags": ["ffmpeg", "camera-recording", "wechat-clone", "video-editing", "custom-views", "video", "android"], "topics": ["java", "android", "ffmpeg", "video"], "urls": [], "use_cases": ["record short videos with a WeChat-style camera UI in my Android app", "record video in multiple segments and merge them into one clip", "change video playback speed with ffmpeg on Android", "crop video dimensions or trim video duration on Android", "add doodle drawing and draggable emoji/text overlays to recorded video", "capture photos from the camera with a custom record button"], "what_it_is": "An Android library/demo replicating WeChat's video recording UI, built on ffmpeg (via LanSoEditor) with Camera + MediaCodec encoding. It supports segmented recording, merging, speed changes, cropping, photo capture, doodle drawing, and sticker/text overlays.", "when_to_avoid": ["you need an actively maintained project with recent updates (last release 2020)", "your project targets platforms other than Android", "you need a cross-platform solution like Flutter or React Native video capture"], "when_to_choose": ["building an Android app that needs a WeChat-like short video recording and editing flow", "you want ffmpeg-based video segmenting, merging, speed, and cropping on Android", "you need customizable camera recording UI with progress segments and delete-segment mode"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/weixinrecordeddemo", "repo": "Zhaoss/WeiXinRecordedDemo", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.144981+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:43:58.291406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "10e0a45d07eb53933a7777762f06f4330ed15bd2770ecd51b5d7a773bddc6788", "fetched_at": "2026-08-28T04:06:30.144981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Zhaoss/WeiXinRecordedDemo"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.144981+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:43:58.291406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "10e0a45d07eb53933a7777762f06f4330ed15bd2770ecd51b5d7a773bddc6788", "fetched_at": "2026-08-28T04:06:30.144981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Zhaoss/WeiXinRecordedDemo"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:43:58.291406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "10e0a45d07eb53933a7777762f06f4330ed15bd2770ecd51b5d7a773bddc6788", "fetched_at": "2026-08-28T04:06:30.144981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Zhaoss/WeiXinRecordedDemo"}], "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:06:30.144981+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.144981+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.144981+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:43:58.291406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "10e0a45d07eb53933a7777762f06f4330ed15bd2770ecd51b5d7a773bddc6788", "fetched_at": "2026-08-28T04:06:30.144981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Zhaoss/WeiXinRecordedDemo"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.144981+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.144981+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:43:58.291406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "10e0a45d07eb53933a7777762f06f4330ed15bd2770ecd51b5d7a773bddc6788", "fetched_at": "2026-08-28T04:06:30.144981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Zhaoss/WeiXinRecordedDemo"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.144981+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.144981+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.144981+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:43:58.291406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "10e0a45d07eb53933a7777762f06f4330ed15bd2770ecd51b5d7a773bddc6788", "fetched_at": "2026-08-28T04:06:30.144981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Zhaoss/WeiXinRecordedDemo"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.144981+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:30.144981+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:43:58.291406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "10e0a45d07eb53933a7777762f06f4330ed15bd2770ecd51b5d7a773bddc6788", "fetched_at": "2026-08-28T04:06:30.144981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Zhaoss/WeiXinRecordedDemo"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:43:58.291406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "10e0a45d07eb53933a7777762f06f4330ed15bd2770ecd51b5d7a773bddc6788", "fetched_at": "2026-08-28T04:06:30.144981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Zhaoss/WeiXinRecordedDemo"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:43:58.291406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "10e0a45d07eb53933a7777762f06f4330ed15bd2770ecd51b5d7a773bddc6788", "fetched_at": "2026-08-28T04:06:30.144981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Zhaoss/WeiXinRecordedDemo"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:43:58.291406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "10e0a45d07eb53933a7777762f06f4330ed15bd2770ecd51b5d7a773bddc6788", "fetched_at": "2026-08-28T04:06:30.144981+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Zhaoss/WeiXinRecordedDemo"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3472, "days_push": 2116, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}