{"adoption": {"forks": 91, "observed_at": "2026-08-28T04:03:18.566485+00:00", "stars": 1034}, "canonical_url": "https://ross.abutalabs.com/products/videoflow", "card": {"archived": false, "artifact_type": "framework", "description": "Python framework that facilitates the quick development of complex video analysis applications and other series-processing based applications in a multiprocessing environment.", "domain": ["computer-vision", "machine-learning", "microservices"], "enriched": true, "function": ["video-processing", "streaming", "message-queue", "machine-learning", "computer-vision", "workflow-automation"], "health_score": 77, "homepage": "https://docs.videoflow.dev", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["videoflow/videoflow"], "name": "videoflow/videoflow", "platform": ["python", "cross-platform"], "pushed_at": "2026-07-29T17:46:39+00:00", "repo": "videoflow/videoflow", "stars": 1034, "tags": ["video-analytics", "dag-pipeline", "nats-jetstream", "object-detection", "object-tracking", "multiprocessing", "distributed-computing", "video", "data-engineering", "containers", "kubernetes", "docker", "linux", "macos"], "topics": ["video-processing", "video-analytics", "video-pipeline", "object-detection", "object-tracking"], "urls": [], "use_cases": ["build a real-time video analytics pipeline", "run object detection and tracking on video streams", "deploy video processing pipelines on Kubernetes", "process camera streams with multiple ML models", "build a distributed stream processing DAG in Python", "analyze surveillance video with pose estimation and segmentation"], "what_it_is": "Videoflow is a Python framework for building distributed video and stream processing pipelines as directed acyclic graphs of producers, processors, and consumers. Pipelines run locally as OS subprocesses or on Kubernetes as containers, communicating over NATS JetStream, with built-in components for object detection, tracking, pose estimation, segmentation, and video I/O.", "when_to_avoid": ["you only need simple single-script video file processing without distribution", "you cannot run a NATS JetStream broker in your environment", "you need a mature, battle-tested framework with a large community", "your use case is not stream or series processing"], "when_to_choose": ["you need distributed or scalable video/stream processing with per-node scaling", "you want a DAG-based pipeline that runs locally and on Kubernetes without code changes", "you need off-the-shelf vision components like detection, tracking, or pose estimation", "you want language-agnostic pipeline components shipped as containers"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/videoflow", "repo": "videoflow/videoflow", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.566485+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:06:36.493163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2caa16000f537fb48b787a6cc8450743915488b9f26a77fec6a91b4e032343cd", "fetched_at": "2026-08-28T04:03:18.566485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/videoflow/videoflow"}, {"content_hash": "66745dace34f487e05fd928fb33e7ea7147bcda2e1062fc92a2569fcd06efc40", "fetched_at": "2026-08-29T13:06:28.166879+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/videoflow/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.566485+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:06:36.493163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2caa16000f537fb48b787a6cc8450743915488b9f26a77fec6a91b4e032343cd", "fetched_at": "2026-08-28T04:03:18.566485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/videoflow/videoflow"}, {"content_hash": "66745dace34f487e05fd928fb33e7ea7147bcda2e1062fc92a2569fcd06efc40", "fetched_at": "2026-08-29T13:06:28.166879+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/videoflow/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:06:36.493163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2caa16000f537fb48b787a6cc8450743915488b9f26a77fec6a91b4e032343cd", "fetched_at": "2026-08-28T04:03:18.566485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/videoflow/videoflow"}, {"content_hash": "66745dace34f487e05fd928fb33e7ea7147bcda2e1062fc92a2569fcd06efc40", "fetched_at": "2026-08-29T13:06:28.166879+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/videoflow/json"}], "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:03:18.566485+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.566485+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.566485+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:06:36.493163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2caa16000f537fb48b787a6cc8450743915488b9f26a77fec6a91b4e032343cd", "fetched_at": "2026-08-28T04:03:18.566485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/videoflow/videoflow"}, {"content_hash": "66745dace34f487e05fd928fb33e7ea7147bcda2e1062fc92a2569fcd06efc40", "fetched_at": "2026-08-29T13:06:28.166879+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/videoflow/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.566485+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.566485+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:06:36.493163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2caa16000f537fb48b787a6cc8450743915488b9f26a77fec6a91b4e032343cd", "fetched_at": "2026-08-28T04:03:18.566485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/videoflow/videoflow"}, {"content_hash": "66745dace34f487e05fd928fb33e7ea7147bcda2e1062fc92a2569fcd06efc40", "fetched_at": "2026-08-29T13:06:28.166879+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/videoflow/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.566485+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.566485+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.566485+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:06:36.493163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2caa16000f537fb48b787a6cc8450743915488b9f26a77fec6a91b4e032343cd", "fetched_at": "2026-08-28T04:03:18.566485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/videoflow/videoflow"}, {"content_hash": "66745dace34f487e05fd928fb33e7ea7147bcda2e1062fc92a2569fcd06efc40", "fetched_at": "2026-08-29T13:06:28.166879+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/videoflow/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.566485+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.566485+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:06:36.493163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2caa16000f537fb48b787a6cc8450743915488b9f26a77fec6a91b4e032343cd", "fetched_at": "2026-08-28T04:03:18.566485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/videoflow/videoflow"}, {"content_hash": "66745dace34f487e05fd928fb33e7ea7147bcda2e1062fc92a2569fcd06efc40", "fetched_at": "2026-08-29T13:06:28.166879+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/videoflow/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:06:36.493163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2caa16000f537fb48b787a6cc8450743915488b9f26a77fec6a91b4e032343cd", "fetched_at": "2026-08-28T04:03:18.566485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/videoflow/videoflow"}, {"content_hash": "66745dace34f487e05fd928fb33e7ea7147bcda2e1062fc92a2569fcd06efc40", "fetched_at": "2026-08-29T13:06:28.166879+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/videoflow/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:06:36.493163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2caa16000f537fb48b787a6cc8450743915488b9f26a77fec6a91b4e032343cd", "fetched_at": "2026-08-28T04:03:18.566485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/videoflow/videoflow"}, {"content_hash": "66745dace34f487e05fd928fb33e7ea7147bcda2e1062fc92a2569fcd06efc40", "fetched_at": "2026-08-29T13:06:28.166879+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/videoflow/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:06:36.493163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2caa16000f537fb48b787a6cc8450743915488b9f26a77fec6a91b4e032343cd", "fetched_at": "2026-08-28T04:03:18.566485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/videoflow/videoflow"}, {"content_hash": "66745dace34f487e05fd928fb33e7ea7147bcda2e1062fc92a2569fcd06efc40", "fetched_at": "2026-08-29T13:06:28.166879+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/videoflow/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2697, "days_push": 35, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}