{"adoption": {"forks": 566, "observed_at": "2026-08-28T04:07:39.421458+00:00", "stars": 3044}, "canonical_url": "https://ross.abutalabs.com/products/screcorder", "card": {"archived": false, "artifact_type": "library", "description": "iOS camera engine with Vine-like tap to record, animatable filters, slow motion, segments editing", "domain": ["mobile-development", "media"], "enriched": true, "function": ["video-processing", "audio-processing", "image-processing"], "health_score": 20, "homepage": null, "language": "Objective-C", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["rFlex/SCRecorder"], "name": "rFlex/SCRecorder", "platform": [], "pushed_at": "2021-05-25T11:29:54+00:00", "repo": "rFlex/SCRecorder", "stars": 3044, "tags": ["camera", "video-recording", "core-image", "avfoundation", "video-filters", "slow-motion", "segments", "video-export", "objective-c", "cocoapods", "vine-style", "instagram-style", "video", "audio", "ios", "mobile"], "topics": [], "urls": [], "use_cases": ["record video in short segments with tap-to-record like Vine in an iOS app", "apply real-time animatable video filters to the camera preview and recording", "build an Instagram-style camera screen in Objective-C or Swift", "capture slow motion video on iOS", "delete individual recorded segments and merge the rest into one clip", "save an unfinished recording session and resume it later", "overlay custom UIViews on top of the live camera feed"], "what_it_is": "SCRecorder is an Objective-C framework for iOS that provides a Vine/Instagram-style camera engine built on AVCaptureSession. It supports tap-to-record segmented capture, configurable and animatable Core Image video filters, slow motion, segment removal, and merging/exporting the final audio-video result.", "when_to_avoid": ["you need an actively maintained, Swift-first camera library for modern iOS", "you are building for Android or a cross-platform framework", "you only need playback or editing of existing videos rather than camera recording", "you require features beyond capture such as full NLE-style video editing"], "when_to_choose": ["you need segmented, Vine-like video capture with filters in an iOS app", "you want a higher-level wrapper around AVCaptureSession with session serialization", "your project is Objective-C or Swift and targets older iOS versions", "you need fine-tuned control when merging and exporting recorded segments"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/screcorder", "repo": "rFlex/SCRecorder", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.421458+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.222350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3855990b96c0c9a9955985a5d93da5acf9aa3c1d4035418aae8356ae6b5335b", "fetched_at": "2026-08-28T04:07:39.421458+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rFlex/SCRecorder"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.421458+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.222350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3855990b96c0c9a9955985a5d93da5acf9aa3c1d4035418aae8356ae6b5335b", "fetched_at": "2026-08-28T04:07:39.421458+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rFlex/SCRecorder"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.222350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3855990b96c0c9a9955985a5d93da5acf9aa3c1d4035418aae8356ae6b5335b", "fetched_at": "2026-08-28T04:07:39.421458+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rFlex/SCRecorder"}], "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:07:39.421458+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.421458+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.421458+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.222350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3855990b96c0c9a9955985a5d93da5acf9aa3c1d4035418aae8356ae6b5335b", "fetched_at": "2026-08-28T04:07:39.421458+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rFlex/SCRecorder"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.421458+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.421458+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.222350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3855990b96c0c9a9955985a5d93da5acf9aa3c1d4035418aae8356ae6b5335b", "fetched_at": "2026-08-28T04:07:39.421458+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rFlex/SCRecorder"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.421458+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.421458+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.421458+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.222350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3855990b96c0c9a9955985a5d93da5acf9aa3c1d4035418aae8356ae6b5335b", "fetched_at": "2026-08-28T04:07:39.421458+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rFlex/SCRecorder"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.421458+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.421458+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.222350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3855990b96c0c9a9955985a5d93da5acf9aa3c1d4035418aae8356ae6b5335b", "fetched_at": "2026-08-28T04:07:39.421458+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rFlex/SCRecorder"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.222350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3855990b96c0c9a9955985a5d93da5acf9aa3c1d4035418aae8356ae6b5335b", "fetched_at": "2026-08-28T04:07:39.421458+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rFlex/SCRecorder"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.222350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3855990b96c0c9a9955985a5d93da5acf9aa3c1d4035418aae8356ae6b5335b", "fetched_at": "2026-08-28T04:07:39.421458+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rFlex/SCRecorder"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.222350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3855990b96c0c9a9955985a5d93da5acf9aa3c1d4035418aae8356ae6b5335b", "fetched_at": "2026-08-28T04:07:39.421458+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rFlex/SCRecorder"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4776, "days_push": 1926, "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}}